This commit was manufactured by cvs2svn to create tag 'R3_3_1'.
diff --git a/docs/org.eclipse.wst.common.api.doc/.project b/docs/org.eclipse.wst.common.api.doc/.project
new file mode 100644
index 0000000..304f818
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.wst.common.api.doc</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/docs/org.eclipse.wst.common.api.doc/META-INF/MANIFEST.MF b/docs/org.eclipse.wst.common.api.doc/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..d42a974
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.wst.common.api.doc; singleton:=true
+Bundle-Version: 1.0.1.qualifier
+Bundle-Vendor: %providerName 
+Bundle-Localization: plugin
+Bundle-ActivationPolicy: lazy
+
diff --git a/docs/org.eclipse.wst.common.api.doc/about.html b/docs/org.eclipse.wst.common.api.doc/about.html
new file mode 100644
index 0000000..2199df3
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/about.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+
+<BODY lang="EN-US">
+
+<H3>About This Content</H3>
+
+<P>June, 2008</P>
+
+<H3>License</H3>
+
+<P>The Eclipse Foundation makes available all content in this plug-in 
+("Content"). Unless otherwise indicated below, the Content is provided to you 
+under the terms and conditions of the Eclipse Public License Version 1.0 
+("EPL"). A copy of the EPL is available at
+<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
+For purposes of the EPL, "Program" will mean the Content.</P>
+
+<P>If you did not receive this Content directly from the Eclipse Foundation, the 
+Content is being redistributed by another party ("Redistributor") and different 
+terms and conditions may apply to your use of any object code in the Content. 
+Check the Redistributor’s license that was provided with the Content. If no such 
+license exists, contact the Redistributor. Unless otherwise indicated below, the 
+terms and conditions of the EPL still apply to any source code in the Content 
+and such source code may be obtained at
+<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/book.css b/docs/org.eclipse.wst.common.api.doc/book.css
new file mode 100644
index 0000000..84d8880
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/book.css
@@ -0,0 +1 @@
+@import "../PRODUCT_PLUGIN/book.css";
diff --git a/docs/org.eclipse.wst.common.api.doc/build.properties b/docs/org.eclipse.wst.common.api.doc/build.properties
new file mode 100644
index 0000000..6a7e3b1
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/build.properties
@@ -0,0 +1,10 @@
+bin.includes = META-INF/,\
+               about.html,\
+               envjavadoctoc.xml,\
+               plugin.properties,\
+               plugin.xml,\
+               reference/,\
+               topicsEnv_Reference.xml,\
+               topics_ExtPoint_Reference.xml,\
+               book.css,\
+               schema.css
diff --git a/docs/org.eclipse.wst.common.api.doc/buildEnvJavadoc.xml b/docs/org.eclipse.wst.common.api.doc/buildEnvJavadoc.xml
new file mode 100644
index 0000000..8c1c2a4
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/buildEnvJavadoc.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project
+    name="javadoc"
+    default="main"
+    basedir=".">
+	
+    <property
+        name="buildDirectory"
+        value="${basedir}/../.." />
+
+    <!-- = = = standard properties pattern = = = -->
+    <!-- 
+        First get environment variables
+        Note to be cross-platform, "environment variables" are only appropriate for 
+        some variables, e.g. ones we set, since properties are case sensitive, even if 
+        the environment variables on your operating system are not, e.g. it will 
+        be ${env.Path} not ${env.PATH} on Windows -->
+    <property environment="env" />
+
+    <!-- 
+        Let users override standard properties, if desired.
+        If this directory/files does not exist, then it will be ignored, 
+        and defaults used.
+    -->
+    <property
+        file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" />
+
+
+
+    <property file="envjavadoc.properties" />
+    <property
+        name="outputDir"
+        value="${basedir}" />
+
+    <target
+        name="main"
+        depends="javadoc, packagetoc"
+        description="Builds Plugin Javadoc" />
+
+    <target
+        name="javadoc"
+        depends="getSkipJavaDocParam"
+        unless="doskipJavaDoc">
+    	<echo message="basedir: ${basedir}" />
+    	<echo message="outputdir: ${outputDir}" />
+        <echo message="classpath: ${J2SE-1.5}" />
+        <echo message="buildDirectory: ${buildDirectory}" />
+
+        <javadoc
+            access="public"
+            author="false"
+            destdir="${outputDir}/reference/envapi"
+            doctitle="${api.title}"
+            nodeprecated="false"
+            nodeprecatedlist="false"
+            noindex="false"
+            nonavbar="false"
+            notree="false"
+            Encoding="ISO-8859-1"
+            packagenames="${api.packages}"
+            sourcepath="${plugin.sourcefolders}"
+            splitindex="true"
+            use="true"
+            version="true"
+            breakiterator="yes"
+            verbose="false"
+        	classpath=""
+            failonerror="false">
+        	
+            <classpath>
+                <fileset dir="${buildDirectory}/plugins">
+                    <include name="**/*.jar" />
+                </fileset>
+            </classpath>
+            
+
+        </javadoc>
+    </target>
+
+    <target name="packagetoc">
+        <loadfile
+            failonerror="false"
+            property="wtp.packages"
+            srcFile="${outputDir}/reference/envapi/package-list">
+            <filterchain>
+                <filterreader
+                    classname="org.apache.tools.ant.filters.PrefixLines">
+                    <param
+                        name="prefix"
+                        value="&lt;/package&gt;&lt;package&gt;" />
+                </filterreader>
+                <striplinebreaks />
+            </filterchain>
+        </loadfile>
+
+        <!-- Create packages.xml file -->
+        <echo file="envpackages.xml">
+            &lt;packages&gt;&lt;package&gt;${wtp.packages}&lt;/package&gt;&lt;/packages&gt;
+        </echo>
+
+        <xslt
+            basedir="${basedir}"
+            in="envpackages.xml"
+            out="envjavadoctoc.xml"
+            style="envjavadocToc.xsl">
+            <outputproperty
+                name="method"
+                value="xml" />
+            <outputproperty
+                name="indent"
+                value="yes" />
+        </xslt>
+    </target>
+    
+    <target
+        name="getSkipJavaDocParam"
+        if="skipJavaDoc">
+        <echo message="skipJavaDoc: ${skipJavaDoc}" />
+        <condition property="doskipJavaDoc">
+            <equals
+                arg1="${skipJavaDoc}"
+                arg2="true"
+                trim="true"
+                casesensitive="false" />
+        </condition>
+    </target>
+</project>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.common.api.doc/buildExtDocs.properties b/docs/org.eclipse.wst.common.api.doc/buildExtDocs.properties
new file mode 100644
index 0000000..7d39157
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/buildExtDocs.properties
@@ -0,0 +1,12 @@
+################################################################
+# Information for extension point overview document
+################################################################
+# Overview document title
+title = URI resolver Extension Points
+header = URI resolver Extension Points 
+# Introduction paragraph
+overview = The following extension points can be used to extend the capabilities of the URI resolver. 
+
+# A list of the extension points that should be included in the
+# extension point documentation.
+listed-ext-points=org.eclipse.wst.common.uriresolver
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.common.api.doc/buildExtDocs.xml b/docs/org.eclipse.wst.common.api.doc/buildExtDocs.xml
new file mode 100644
index 0000000..9872f57
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/buildExtDocs.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="Build Extension Point Documentation" default="createExtDocs" basedir=".">
+
+	<property file="buildExtDocs.properties"/>
+	<property name="outputDir" value="${basedir}"/>
+    <property name="apioutputDir" value="${outputDir}${file.separator}reference${file.separator}ext"/>
+
+	<target name="createExtDocs" depends="buildExtDocs, createDocListings"/>
+	
+	<target name="buildExtDocs" depends="buildJSFExtDocs"/>
+		
+ 	<target name="buildJSFExtDocs">
+ 		
+ 		<!-- cleanup old -->
+ 		<delete>
+ 	 		<fileset dir="${apioutputDir}" casesensitive="yes" id="ext-docs-list-ent">
+ 	 			<include name="*.html"/>
+ 			</fileset>
+ 		</delete>
+ 		
+ 		<!-- generate new html from ext-pt schemas -->
+ 		<pde.convertSchemaToHTML manifest="../org.eclipse.wst.common.uriresolver/plugin.xml" destination="${apioutputDir}" />
+ 		
+ 		<!-- Get the list of extension doc files. -->
+ 		<fileset dir="${apioutputDir}" casesensitive="yes" id="ext-docs-list-ent" >
+ 			<include name="*.html"/>
+		</fileset>
+ 		
+ 		<!-- Convert the list to an XML representation. -->
+ 		<pathconvert property="ext-doc-ent" refid="ext-docs-list-ent" pathsep="&lt;/file&gt;/n/n&lt;file&gt;" >
+ 			<map from="${apioutputDir}${file.separator}" to=""/>
+ 		</pathconvert>
+ 		<echo file="extdocs.xml">&lt;files component="webservice"&gt;&lt;file&gt;${ext-doc-ent}&lt;/file&gt;&lt;/files&gt;</echo>
+ 		 						
+ 	</target>
+	
+	<target name="createDocListings">
+		<delete file="${apioutputDir}${file.separator}index.html"/>
+		<!-- Create the overview document. -->
+		<xslt basedir="${basedir}" in="extDocListings.xml" out="${apioutputDir}${file.separator}index.html" style="extDocOverview.xsl">
+	  		<param name="title" expression="${title}"/>
+	  		<param name="header" expression="${header}"/>
+	  		<param name="overview" expression="${overview}"/>
+			<param name="listed-ext-points" expression="${listed-ext-points}"/>
+		</xslt>
+			
+		<!-- Create the extention point toc. -->
+		<xslt basedir="${basedir}" in="extDocListings.xml" out="topics_ExtPoint_Reference.xml" style="extDocToc.xsl">
+			<param name="listed-ext-points" expression="${listed-ext-points}"/>
+			<outputproperty name="method" value="xml"/>
+			<outputproperty name="indent" value="yes"/>
+		</xslt>
+			
+	</target>
+</project>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.common.api.doc/envjavadoc.properties b/docs/org.eclipse.wst.common.api.doc/envjavadoc.properties
new file mode 100644
index 0000000..3e3ab3e
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/envjavadoc.properties
@@ -0,0 +1,9 @@
+
+plugin.sourcefolders=../org.eclipse.wst.common.environment/src;
+
+api.packages=org.eclipse.wst.common.environment,\
+org.eclipse.wst.common.environment.uri,
+
+
+api.title=Web Tools Platform: Environment framework API documentation
+
diff --git a/docs/org.eclipse.wst.common.api.doc/envjavadocToc.xsl b/docs/org.eclipse.wst.common.api.doc/envjavadocToc.xsl
new file mode 100644
index 0000000..0ab196c
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/envjavadocToc.xsl
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version="1.0"
+    xmlns:xalan="http://xml.apache.org/xslt"
+    exclude-result-prefixes="xalan">
+    
+     <xsl:template match="packages">
+     <xsl:text disable-output-escaping="yes">
+&lt;?NLS TYPE="org.eclipse.help.toc"?&gt;
+	 </xsl:text>
+	 <toc label="Javadoc Packages Reference">
+	 <xsl:for-each select="package">
+	 <xsl:sort select="text()"/>
+	 	<xsl:if test="text() != ''">
+	 		<topic label="{text()}" href="reference/envapi/{translate(text(),'.','/')}/package-summary.html"/>
+	 	</xsl:if>
+	 </xsl:for-each>
+	
+	 </toc> 
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/docs/org.eclipse.wst.common.api.doc/envjavadoctoc.xml b/docs/org.eclipse.wst.common.api.doc/envjavadoctoc.xml
new file mode 100644
index 0000000..3153169
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/envjavadoctoc.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?NLS TYPE="org.eclipse.help.toc"?>
+	 <toc label="Javadoc Packages Reference">
+<topic href="reference/envapi/org/eclipse/wst/common/environment/package-summary.html" label="org.eclipse.wst.common.environment"/>
+<topic href="reference/envapi/org/eclipse/wst/common/environment/uri/package-summary.html" label="org.eclipse.wst.common.environment.uri"/>
+</toc>
diff --git a/docs/org.eclipse.wst.common.api.doc/envpackages.xml b/docs/org.eclipse.wst.common.api.doc/envpackages.xml
new file mode 100644
index 0000000..a7a473a
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/envpackages.xml
@@ -0,0 +1,3 @@
+
+            <packages><package></package><package>org.eclipse.wst.common.environment</package><package>org.eclipse.wst.common.environment.uri</package></packages>
+        
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.common.api.doc/extDocListings.xml b/docs/org.eclipse.wst.common.api.doc/extDocListings.xml
new file mode 100644
index 0000000..cc708fa
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/extDocListings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components>
+	<component name="URI Resolver API" id="uriresolver" file="extdocs.xml"/>
+</components>
diff --git a/docs/org.eclipse.wst.common.api.doc/extDocOverview.xsl b/docs/org.eclipse.wst.common.api.doc/extDocOverview.xsl
new file mode 100644
index 0000000..07ab2c7
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/extDocOverview.xsl
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version="1.0"
+    xmlns:xalan="http://xml.apache.org/xslt">
+    <xsl:param name="title"/>
+    <xsl:param name="header"/>
+    <xsl:param name="overview"/>
+    <xsl:param name="listed-ext-points"/>
+    
+    <xsl:template match="components">
+    	
+    	<xsl:text disable-output-escaping="yes">
+    	&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"&gt;
+		</xsl:text>
+		<html>
+		<head>
+		<xsl:text disable-output-escaping="yes">
+		&lt;meta name="copyright" content="Copyright (c) 2008 IBM Corporation and others. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." &gt;
+
+   		&lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&gt;
+   		</xsl:text>
+   		<title><xsl:value-of select="$title"/></title>
+   		<xsl:text disable-output-escaping="yes">
+		&lt;LINK REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css"&gt;
+		</xsl:text>
+		</head>
+		<body link="#0000FF" vlink="#800080">
+
+		<center>
+		<h1><xsl:value-of select="$header"/></h1>
+		</center>
+
+		<xsl:value-of select="$overview"/>
+    	<xsl:for-each select="component">
+    		<xsl:sort select="@id"/>
+    		<h3><a name="{@id}"></a><xsl:value-of select="@name"/></h3>
+    		<ul>
+    			<xsl:for-each select="document(@file)/files/file">
+    				<xsl:sort select="text()"/>
+    				<!-- <xsl:if test="contains($listed-ext-points, translate(substring(text(), 0, string-length(text()) - 4),'_','.'))"> --> 
+  						<li>
+  							<a href="{text()}"><xsl:value-of select="translate(substring(text(), 0, string-length(text()) - 4),'_','.')"/></a> 
+  						</li>
+  					<!-- </xsl:if> -->
+    			</xsl:for-each>
+    		</ul>
+    	</xsl:for-each>
+    	</body>
+		</html>
+    </xsl:template>
+</xsl:stylesheet>
diff --git a/docs/org.eclipse.wst.common.api.doc/extDocToc.xsl b/docs/org.eclipse.wst.common.api.doc/extDocToc.xsl
new file mode 100644
index 0000000..c6b2741
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/extDocToc.xsl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version="1.0"
+    xmlns:xalan="http://xml.apache.org/xslt"
+    exclude-result-prefixes="xalan">
+    <xsl:param name="listed-ext-points"/>
+    
+     <xsl:template match="components">
+     	<xsl:text disable-output-escaping="yes">
+&lt;?NLS TYPE="org.eclipse.help.toc"?&gt;
+	 	</xsl:text>
+	 	<toc label="Extension Points Reference">
+	 		<xsl:for-each select="document(component/@file)/files/file">
+	 			<xsl:sort select="text()"/>
+	 			<!-- <xsl:if test="contains($listed-ext-points, translate(substring(text(), 0, string-length(text()) - 4),'_','.'))"> -->
+	 				<topic label="{translate(substring(text(), 0, string-length(text()) - 4),'_','.')}" href="reference/ext/{text()}">
+	 				</topic>
+	 			<!-- </xsl:if> -->
+	 		</xsl:for-each>
+	 	</toc> 
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/docs/org.eclipse.wst.common.api.doc/extdocs.xml b/docs/org.eclipse.wst.common.api.doc/extdocs.xml
new file mode 100644
index 0000000..c259563
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/extdocs.xml
@@ -0,0 +1 @@
+<files component="webservice"><file>org_eclipse_wst_common_uriresolver_resolverExtensions.html</file></files>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.common.api.doc/plugin.properties b/docs/org.eclipse.wst.common.api.doc/plugin.properties
new file mode 100644
index 0000000..13d7183
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2008 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+providerName=Eclipse.org
+pluginName=Environment API Documentation
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.common.api.doc/plugin.xml b/docs/org.eclipse.wst.common.api.doc/plugin.xml
new file mode 100644
index 0000000..0763848
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/plugin.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+	
+<!--
+ =============================================================================  
+ Define Subsection Table of Contents
+ ============================================================================= 
+--> 
+	
+	<extension point="org.eclipse.help.toc">
+		<toc file="topicsEnv_Reference.xml"/>
+		<toc file="envjavadoctoc.xml"/>
+		<toc file="topics_ExtPoint_Reference.xml"/>
+	</extension>
+</plugin>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/allclasses-frame.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/allclasses-frame.html
new file mode 100644
index 0000000..38c6b30
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/allclasses-frame.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment" target="classFrame">Choice</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment" target="classFrame">EnvironmentException</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment" target="classFrame">EnvironmentService</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment" target="classFrame"><I>IEnvironment</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment" target="classFrame"><I>ILog</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment" target="classFrame"><I>IStatusHandler</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri" target="classFrame"><I>IURI</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri" target="classFrame"><I>IURIFactory</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri" target="classFrame"><I>IURIFilter</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri" target="classFrame"><I>IURIScheme</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri" target="classFrame"><I>IURIVisitor</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment" target="classFrame">NullStatusHandler</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri" target="classFrame">SimpleURIFactory</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment" target="classFrame">StatusException</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri" target="classFrame">URIException</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/allclasses-noframe.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/allclasses-noframe.html
new file mode 100644
index 0000000..89c13e5
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/allclasses-noframe.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment">EnvironmentService</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment"><I>IEnvironment</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment"><I>ILog</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment"><I>IStatusHandler</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri"><I>IURI</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri"><I>IURIFactory</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri"><I>IURIFilter</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri"><I>IURIScheme</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri"><I>IURIVisitor</I></A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment">NullStatusHandler</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri">SimpleURIFactory</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A>
+<BR>
+<A HREF="org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/constant-values.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/constant-values.html
new file mode 100644
index 0000000..1d7e34a
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/constant-values.html
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Constant Field Values
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Constant Field Values";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#org.eclipse">org.eclipse.*</A>
+</UL>
+
+<A NAME="org.eclipse"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left"><FONT SIZE="+2">
+org.eclipse.*</FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">org.eclipse.wst.common.environment.<A HREF="org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.common.environment.ILog.ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/common/environment/ILog.html#ERROR">ERROR</A></CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.common.environment.ILog.INFO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/common/environment/ILog.html#INFO">INFO</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.common.environment.ILog.OK"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/common/environment/ILog.html#OK">OK</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.common.environment.ILog.WARNING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/common/environment/ILog.html#WARNING">WARNING</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/deprecated-list.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/deprecated-list.html
new file mode 100644
index 0000000..44b4730
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/deprecated-list.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+Deprecated List
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Deprecated List";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+</UL>
+
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/help-doc.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/help-doc.html
new file mode 100644
index 0000000..0a43a50
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/help-doc.html
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+API Help
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="API Help";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Overview</H3>
+<BLOCKQUOTE>
+
+<P>
+The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
+<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Annotation Type</H3>
+<BLOCKQUOTE>
+
+<P>
+Each annotation type has its own separate page with the following sections:<UL>
+<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
+</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Enum</H3>
+<BLOCKQUOTE>
+
+<P>
+Each enum has its own separate page with the following sections:<UL>
+<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
+</BLOCKQUOTE>
+<H3>
+Use</H3>
+<BLOCKQUOTE>
+Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</BLOCKQUOTE>
+<H3>
+Tree (Class Hierarchy)</H3>
+<BLOCKQUOTE>
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
+</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Index</H3>
+<BLOCKQUOTE>
+The <A HREF="index-files/index-1.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames.  All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<H3>
+Constant Field Values</H3>
+The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-1.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-1.html
new file mode 100644
index 0000000..51620e5
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-1.html
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+A-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="A-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV LETTER&nbsp;
+&nbsp;<A HREF="index-2.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_A_"><!-- --></A><H2>
+<B>A</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIFilter.html#accepts(org.eclipse.wst.common.environment.uri.IURI)"><B>accepts(IURI)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>
+<DD>Filters the given IURI.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#append(org.eclipse.wst.common.environment.uri.IURI)"><B>append(IURI)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#asFile()"><B>asFile()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#asString()"><B>asString()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#asURL()"><B>asURL()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV LETTER&nbsp;
+&nbsp;<A HREF="index-2.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-10.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-10.html
new file mode 100644
index 0000000..4f21c8d
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-10.html
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+R-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="R-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-9.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-11.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-10.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-10.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_R_"><!-- --></A><H2>
+<B>R</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#registerScheme(java.lang.String, org.eclipse.wst.common.environment.uri.IURIScheme)"><B>registerScheme(String, IURIScheme)</B></A> - 
+Method in class org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri">SimpleURIFactory</A>
+<DD>This method registers a scheme for a particular protocol.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#rename(org.eclipse.wst.common.environment.uri.IURI)"><B>rename(IURI)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>Renames or moves the resource identified by this IURI
+ to the new IURI.
+<DT><A HREF="../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])"><B>report(IStatus, Choice[])</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A>
+<DD>Reports the given Status and set of possible responses.
+<DT><A HREF="../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus)"><B>report(IStatus)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A>
+<DD>Reports the given Status with implied options to either
+ continue or abort.
+<DT><A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html#report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])"><B>report(IStatus, Choice[])</B></A> - 
+Method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment">NullStatusHandler</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html#report(org.eclipse.core.runtime.IStatus)"><B>report(IStatus)</B></A> - 
+Method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment">NullStatusHandler</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/IStatusHandler.html#reportError(org.eclipse.core.runtime.IStatus)"><B>reportError(IStatus)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A>
+<DD>Report the given Error Status.
+<DT><A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html#reportError(org.eclipse.core.runtime.IStatus)"><B>reportError(IStatus)</B></A> - 
+Method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment">NullStatusHandler</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/IStatusHandler.html#reportInfo(org.eclipse.core.runtime.IStatus)"><B>reportInfo(IStatus)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A>
+<DD>Report the given Info Status.
+<DT><A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html#reportInfo(org.eclipse.core.runtime.IStatus)"><B>reportInfo(IStatus)</B></A> - 
+Method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment">NullStatusHandler</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-9.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-11.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-10.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-10.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-11.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-11.html
new file mode 100644
index 0000000..04193f3
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-11.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+S-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="S-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-10.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-12.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-11.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-11.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_S_"><!-- --></A><H2>
+<B>S</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/Choice.html#setDescription(java.lang.String)"><B>setDescription(String)</B></A> - 
+Method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>
+<DD>Sets the description.
+<DT><A HREF="../org/eclipse/wst/common/environment/Choice.html#setLabel(java.lang.String)"><B>setLabel(String)</B></A> - 
+Method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>
+<DD>Sets the label.
+<DT><A HREF="../org/eclipse/wst/common/environment/Choice.html#setShortcut(char)"><B>setShortcut(char)</B></A> - 
+Method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>
+<DD>Sets the shortcut.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri"><B>SimpleURIFactory</B></A> - Class in <A HREF="../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A><DD>This class provides a default implementation of the IURIFactory interface.<DT><A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#SimpleURIFactory()"><B>SimpleURIFactory()</B></A> - 
+Constructor for class org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri">SimpleURIFactory</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment"><B>StatusException</B></A> - Exception in <A HREF="../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A><DD>This is the exception class used by StatusHandlers to tell their
+ callers that processing should stop.<DT><A HREF="../org/eclipse/wst/common/environment/StatusException.html#StatusException(org.eclipse.core.runtime.IStatus)"><B>StatusException(IStatus)</B></A> - 
+Constructor for exception org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A>
+<DD>Creates a new StatusException with the given Status.
+<DT><A HREF="../org/eclipse/wst/common/environment/StatusException.html#StatusException(org.eclipse.wst.common.environment.Choice)"><B>StatusException(Choice)</B></A> - 
+Constructor for exception org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A>
+<DD>Creates a new StatusException with the given Choice.
+<DT><A HREF="../org/eclipse/wst/common/environment/StatusException.html#StatusException(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice)"><B>StatusException(IStatus, Choice)</B></A> - 
+Constructor for exception org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A>
+<DD>Creates a new StatusException with the given Choice
+ and status object.
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-10.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-12.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-11.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-11.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-12.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-12.html
new file mode 100644
index 0000000..47292e7
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-12.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+T-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="T-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-11.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-13.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-12.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-12.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_T_"><!-- --></A><H2>
+<B>T</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#toString()"><B>toString()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html#toString()"><B>toString()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#touchFolder()"><B>touchFolder()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>Creates a new folder resource at the location identified by
+ the IURI.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#touchLeaf()"><B>touchLeaf()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>Creates a new, empty resource at the location identified by
+ the IURI.
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-11.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-13.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-12.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-12.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-13.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-13.html
new file mode 100644
index 0000000..47b07c4
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-13.html
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+U-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="U-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-12.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-14.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-13.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-13.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_U_"><!-- --></A><H2>
+<B>U</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri"><B>URIException</B></A> - Exception in <A HREF="../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A><DD>This is the base class for most exceptions thrown by IURI classes.<DT><A HREF="../org/eclipse/wst/common/environment/uri/URIException.html#URIException(org.eclipse.core.runtime.IStatus)"><B>URIException(IStatus)</B></A> - 
+Constructor for exception org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A>
+<DD>Creates a new URIException with the given Status.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/URIException.html#URIException(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.uri.IURI)"><B>URIException(IStatus, IURI)</B></A> - 
+Constructor for exception org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A>
+<DD>Creates a new URIException for the given Status and IURI,
+ each of which may be null.
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-12.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-14.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-13.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-13.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-14.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-14.html
new file mode 100644
index 0000000..536a9ad
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-14.html
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+V-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="V-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-13.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-15.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-14.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-14.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_V_"><!-- --></A><H2>
+<B>V</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html#validate(org.eclipse.wst.common.environment.uri.IURI)"><B>validate(IURI)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#visit(org.eclipse.wst.common.environment.uri.IURIVisitor)"><B>visit(IURIVisitor)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>Visits this resource and its decendants in pre-order fashion.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#visit(org.eclipse.wst.common.environment.uri.IURIVisitor, org.eclipse.wst.common.environment.uri.IURIFilter)"><B>visit(IURIVisitor, IURIFilter)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>As for visit(IURIVisitor), except only resource URIs that are
+ accepted by the given filter are visited.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIVisitor.html#visit(org.eclipse.wst.common.environment.uri.IURI)"><B>visit(IURI)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A>
+<DD>Visits the given IURI.
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-13.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-15.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-14.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-14.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-15.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-15.html
new file mode 100644
index 0000000..7fa2023
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-15.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+W-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="W-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-14.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;NEXT LETTER</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-15.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-15.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_W_"><!-- --></A><H2>
+<B>W</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#WARNING"><B>WARNING</B></A> - 
+Static variable in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>This constant indicates that a logging message is warning.
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-14.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;NEXT LETTER</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-15.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-15.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-2.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-2.html
new file mode 100644
index 0000000..d00fc3d
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-2.html
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+C-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="C-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-1.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-3.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_C_"><!-- --></A><H2>
+<B>C</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment"><B>Choice</B></A> - Class in <A HREF="../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A><DD>This class is used by the IStatusHandler interface.<DT><A HREF="../org/eclipse/wst/common/environment/Choice.html#Choice()"><B>Choice()</B></A> - 
+Constructor for class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>
+<DD>Constructor for Choice.
+<DT><A HREF="../org/eclipse/wst/common/environment/Choice.html#Choice(char, java.lang.String)"><B>Choice(char, String)</B></A> - 
+Constructor for class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>
+<DD>Constructor for Choice.
+<DT><A HREF="../org/eclipse/wst/common/environment/Choice.html#Choice(char, java.lang.String, java.lang.String)"><B>Choice(char, String, String)</B></A> - 
+Constructor for class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>
+<DD>Constructor for Choice.
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-1.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-3.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-3.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-3.html
new file mode 100644
index 0000000..d0daf37
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-3.html
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+E-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="E-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-2.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-4.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-3.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-3.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_E_"><!-- --></A><H2>
+<B>E</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment"><B>EnvironmentException</B></A> - Exception in <A HREF="../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A><DD>This is the exception class for conditions raised by the IEnvironment.<DT><A HREF="../org/eclipse/wst/common/environment/EnvironmentException.html#EnvironmentException()"><B>EnvironmentException()</B></A> - 
+Constructor for exception org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A>
+<DD>Creates a new EnvironmentException.
+<DT><A HREF="../org/eclipse/wst/common/environment/EnvironmentException.html#EnvironmentException(org.eclipse.core.runtime.IStatus)"><B>EnvironmentException(IStatus)</B></A> - 
+Constructor for exception org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A>
+<DD>Creates a new EnvironmentException.
+<DT><A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment"><B>EnvironmentService</B></A> - Class in <A HREF="../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A><DD>This class creates a console environment.<DT><A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html#EnvironmentService()"><B>EnvironmentService()</B></A> - 
+Constructor for class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment">EnvironmentService</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#erase()"><B>erase()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>Erases the resource identified by this IURI.
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#ERROR"><B>ERROR</B></A> - 
+Static variable in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>This constant indicates that a logging message is an error.
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-2.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-4.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-3.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-3.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-4.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-4.html
new file mode 100644
index 0000000..a2b9fff
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-4.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+G-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="G-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-3.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-5.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-4.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-4.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_G_"><!-- --></A><H2>
+<B>G</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/StatusException.html#getChoice()"><B>getChoice()</B></A> - 
+Method in exception org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/Choice.html#getDescription()"><B>getDescription()</B></A> - 
+Method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>
+<DD>Gets the description.
+<DT><A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html#getEclipseConsoleEnvironment()"><B>getEclipseConsoleEnvironment()</B></A> - 
+Static method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment">EnvironmentService</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html#getEclipseLog()"><B>getEclipseLog()</B></A> - 
+Static method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment">EnvironmentService</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html#getEclipseScheme()"><B>getEclipseScheme()</B></A> - 
+Static method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment">EnvironmentService</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html#getFileScheme()"><B>getFileScheme()</B></A> - 
+Static method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment">EnvironmentService</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#getInputStream()"><B>getInputStream()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/Choice.html#getLabel()"><B>getLabel()</B></A> - 
+Method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>
+<DD>Gets the label.
+<DT><A HREF="../org/eclipse/wst/common/environment/IEnvironment.html#getLog()"><B>getLog()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment">IEnvironment</A>
+<DD>Returns a logging facility.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#getOutputStream()"><B>getOutputStream()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/Choice.html#getShortcut()"><B>getShortcut()</B></A> - 
+Method in class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>
+<DD>Gets the shortcut.
+<DT><A HREF="../org/eclipse/wst/common/environment/EnvironmentException.html#getStatus()"><B>getStatus()</B></A> - 
+Method in exception org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A>
+<DD>Returns the Status object.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/URIException.html#getStatus()"><B>getStatus()</B></A> - 
+Method in exception org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/IEnvironment.html#getStatusHandler()"><B>getStatusHandler()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment">IEnvironment</A>
+<DD>Returns a status handler.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/URIException.html#getURI()"><B>getURI()</B></A> - 
+Method in exception org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/IEnvironment.html#getURIFactory()"><B>getURIFactory()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment">IEnvironment</A>
+<DD>Returns a IURI factory.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#getURIScheme()"><B>getURIScheme()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-3.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-5.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-4.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-4.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-5.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-5.html
new file mode 100644
index 0000000..bf18c37
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-5.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+I-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="I-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-4.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-6.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-5.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-5.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_I_"><!-- --></A><H2>
+<B>I</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment"><B>IEnvironment</B></A> - Interface in <A HREF="../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A><DD>An IEnvironment provides the means for getting a 
+ 
+ A log for writing messages to a logging facility,
+ A progress monitor for receiving progress information,
+ A status handler for receiving and processing status reports,
+ A factory for the handling of URIs (resources).<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment"><B>ILog</B></A> - Interface in <A HREF="../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A><DD>ILog objects provide a means for logging information for FFDC etc.<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#INFO"><B>INFO</B></A> - 
+Static variable in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>This constant indicates that a logging message is informational.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#isAvailableAsFile()"><B>isAvailableAsFile()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#isAvailableAsURL()"><B>isAvailableAsURL()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#isEnabled()"><B>isEnabled()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>Returns true if logging is enabled.
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#isEnabled(java.lang.String)"><B>isEnabled(String)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>Returns true if this debug option is set to true.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#isHierarchical()"><B>isHierarchical()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html#isHierarchical()"><B>isHierarchical()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#isLeaf()"><B>isLeaf()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#isPresent()"><B>isPresent()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#isReadable()"><B>isReadable()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#isRelative()"><B>isRelative()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment"><B>IStatusHandler</B></A> - Interface in <A HREF="../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A><DD>Processes status events raised by the caller and returns an
+ indication of choices made by the recipient of the status and
+ may raise an exception against the caller to have them abort
+ procesing.<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html#isValid(org.eclipse.wst.common.environment.uri.IURI)"><B>isValid(IURI)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#isWritable()"><B>isWritable()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURI</B></A> - Interface in <A HREF="../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A><DD>A IURI represents a Univeral Resource Identifer.<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIFactory</B></A> - Interface in <A HREF="../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A><DD>This is a factory for creating new IURI and IURIScheme objects.<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIFilter</B></A> - Interface in <A HREF="../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A><DD>This interface is implemented by classes that visit or list URIs.<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIScheme</B></A> - Interface in <A HREF="../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A><DD>A IURIScheme represents a single scheme for some a family of
+ Univeral Resource Identifiers.<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIVisitor</B></A> - Interface in <A HREF="../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A><DD>This interface is implemented by classes that visit URIs.</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-4.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-6.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-5.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-5.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-6.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-6.html
new file mode 100644
index 0000000..7a177d4
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-6.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+L-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="L-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-5.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-7.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-6.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-6.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_L_"><!-- --></A><H2>
+<B>L</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#list()"><B>list()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>Returns a list of URIs for the immediate children of the given
+ hierarchical, non-leaf IURI.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#list(org.eclipse.wst.common.environment.uri.IURIFilter)"><B>list(IURIFilter)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>As for list(), except only URIs that are accepted by the given
+ filter are returned in the array.
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#log(int, int, java.lang.Object, java.lang.String, java.lang.Throwable)"><B>log(int, int, Object, String, Throwable)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>Logs a <code>Throwable</code>.
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#log(int, java.lang.String, int, java.lang.Object, java.lang.String, java.lang.Throwable)"><B>log(int, String, int, Object, String, Throwable)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>Logs a <code>Throwable</code>.
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#log(int, int, java.lang.Object, java.lang.String, org.eclipse.core.runtime.IStatus)"><B>log(int, int, Object, String, IStatus)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>Logs a <code>Status</code>.
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#log(int, java.lang.String, int, java.lang.Object, java.lang.String, org.eclipse.core.runtime.IStatus)"><B>log(int, String, int, Object, String, IStatus)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>Logs a <code>Status</code>.
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#log(int, int, java.lang.Object, java.lang.String, java.lang.Object)"><B>log(int, int, Object, String, Object)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>Logs an <code>Object</code>.
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#log(int, java.lang.String, int, java.lang.Object, java.lang.String, java.lang.Object)"><B>log(int, String, int, Object, String, Object)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>Logs an <code>Object</code>.
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-5.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-7.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-6.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-6.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-7.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-7.html
new file mode 100644
index 0000000..6f53689
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-7.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+N-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="N-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-7.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_N_"><!-- --></A><H2>
+<B>N</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.lang.String)"><B>newURI(String)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A>
+<DD>Creates and returns a new IURI for the given string.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.net.URL)"><B>newURI(URL)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A>
+<DD>Creates and returns a new IURI for the given URL.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(java.lang.String)"><B>newURI(String)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(java.net.URL)"><B>newURI(URL)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(org.eclipse.wst.common.environment.uri.IURI)"><B>newURI(IURI)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURI(java.lang.String)"><B>newURI(String)</B></A> - 
+Method in class org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri">SimpleURIFactory</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURI(java.net.URL)"><B>newURI(URL)</B></A> - 
+Method in class org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri">SimpleURIFactory</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURIScheme(java.lang.String)"><B>newURIScheme(String)</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A>
+<DD>Creates and returns a new IURIScheme for the given scheme string.
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURIScheme(java.lang.String)"><B>newURIScheme(String)</B></A> - 
+Method in class org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri">SimpleURIFactory</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment"><B>NullStatusHandler</B></A> - Class in <A HREF="../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A><DD>This class provides a default implementation of the IStatusHandler interface.<DT><A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html#NullStatusHandler()"><B>NullStatusHandler()</B></A> - 
+Constructor for class org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment">NullStatusHandler</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-7.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-8.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-8.html
new file mode 100644
index 0000000..520d72c
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-8.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+O-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="O-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-7.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-9.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-8.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-8.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_O_"><!-- --></A><H2>
+<B>O</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/ILog.html#OK"><B>OK</B></A> - 
+Static variable in interface org.eclipse.wst.common.environment.<A HREF="../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A>
+<DD>This constant indicates that a logging message is Ok.
+<DT><A HREF="../org/eclipse/wst/common/environment/package-summary.html"><B>org.eclipse.wst.common.environment</B></A> - package org.eclipse.wst.common.environment<DD>&nbsp;<DT><A HREF="../org/eclipse/wst/common/environment/uri/package-summary.html"><B>org.eclipse.wst.common.environment.uri</B></A> - package org.eclipse.wst.common.environment.uri<DD>&nbsp;</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-7.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-9.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-8.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-8.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-9.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-9.html
new file mode 100644
index 0000000..1c8838c
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index-files/index-9.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+P-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="P-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-8.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-10.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-9.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-9.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A NAME="main"></A>
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+<A NAME="_P_"><!-- --></A><H2>
+<B>P</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/wst/common/environment/uri/IURI.html#parent()"><B>parent()</B></A> - 
+Method in interface org.eclipse.wst.common.environment.uri.<A HREF="../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-8.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-10.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-9.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-9.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">E</A> <A HREF="index-4.html">G</A> <A HREF="index-5.html">I</A> <A HREF="index-6.html">L</A> <A HREF="index-7.html">N</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">R</A> <A HREF="index-11.html">S</A> <A HREF="index-12.html">T</A> <A HREF="index-13.html">U</A> <A HREF="index-14.html">V</A> <A HREF="index-15.html">W</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/index.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index.html
new file mode 100644
index 0000000..8e3862b
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/index.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Tue May 20 13:02:58 EDT 2008-->
+<TITLE>
+Generated Documentation (Untitled)
+</TITLE>
+<SCRIPT type="text/javascript">
+    targetPage = "" + window.location.search;
+    if (targetPage != "" && targetPage != "undefined")
+       targetPage = targetPage.substring(1);
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+</HEAD>
+<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
+<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
+<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</FRAMESET>
+<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="overview-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/Choice.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/Choice.html
new file mode 100644
index 0000000..3a43b7f
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/Choice.html
@@ -0,0 +1,414 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:54 EDT 2008 -->
+<TITLE>
+Choice
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.Choice class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Choice";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Choice.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/Choice.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Choice.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment</FONT>
+<BR>
+Class Choice</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.common.environment.Choice</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Choice</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+This class is used by the IStatusHandler interface.
+ It allows code that is reporting status to specify choices to the user
+ which this reporting code can react to.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html#Choice()">Choice</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor for Choice.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html#Choice(char, java.lang.String)">Choice</A></B>(char&nbsp;shortcut,
+       java.lang.String&nbsp;label)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor for Choice.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html#Choice(char, java.lang.String, java.lang.String)">Choice</A></B>(char&nbsp;shortcut,
+       java.lang.String&nbsp;label,
+       java.lang.String&nbsp;description)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor for Choice.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html#getDescription()">getDescription</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the description.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html#getLabel()">getLabel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the label.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;char</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html#getShortcut()">getShortcut</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the shortcut.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html#setDescription(java.lang.String)">setDescription</A></B>(java.lang.String&nbsp;description)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the description.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html#setLabel(java.lang.String)">setLabel</A></B>(java.lang.String&nbsp;label)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the label.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html#setShortcut(char)">setShortcut</A></B>(char&nbsp;shortcut)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the shortcut.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Choice()"><!-- --></A><H3>
+Choice</H3>
+<PRE>
+public <B>Choice</B>()</PRE>
+<DL>
+<DD>Constructor for Choice.
+<P>
+</DL>
+<HR>
+
+<A NAME="Choice(char, java.lang.String)"><!-- --></A><H3>
+Choice</H3>
+<PRE>
+public <B>Choice</B>(char&nbsp;shortcut,
+              java.lang.String&nbsp;label)</PRE>
+<DL>
+<DD>Constructor for Choice.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>shortcut</CODE> - the single letter shortcut for this choice.<DD><CODE>label</CODE> - the label to be displayed to the user for this choice.</DL>
+</DL>
+<HR>
+
+<A NAME="Choice(char, java.lang.String, java.lang.String)"><!-- --></A><H3>
+Choice</H3>
+<PRE>
+public <B>Choice</B>(char&nbsp;shortcut,
+              java.lang.String&nbsp;label,
+              java.lang.String&nbsp;description)</PRE>
+<DL>
+<DD>Constructor for Choice.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>shortcut</CODE> - the single letter shortcut for this choice.<DD><CODE>label</CODE> - the label to be displayed to the user for this choice.<DD><CODE>description</CODE> - the description for this choice.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getLabel()"><!-- --></A><H3>
+getLabel</H3>
+<PRE>
+public java.lang.String <B>getLabel</B>()</PRE>
+<DL>
+<DD>Gets the label.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns a String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLabel(java.lang.String)"><!-- --></A><H3>
+setLabel</H3>
+<PRE>
+public void <B>setLabel</B>(java.lang.String&nbsp;label)</PRE>
+<DL>
+<DD>Sets the label.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>label</CODE> - The label to set</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDescription()"><!-- --></A><H3>
+getDescription</H3>
+<PRE>
+public java.lang.String <B>getDescription</B>()</PRE>
+<DL>
+<DD>Gets the description.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns a String</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDescription(java.lang.String)"><!-- --></A><H3>
+setDescription</H3>
+<PRE>
+public void <B>setDescription</B>(java.lang.String&nbsp;description)</PRE>
+<DL>
+<DD>Sets the description.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>description</CODE> - The description to set</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getShortcut()"><!-- --></A><H3>
+getShortcut</H3>
+<PRE>
+public char <B>getShortcut</B>()</PRE>
+<DL>
+<DD>Gets the shortcut.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns a char</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setShortcut(char)"><!-- --></A><H3>
+setShortcut</H3>
+<PRE>
+public void <B>setShortcut</B>(char&nbsp;shortcut)</PRE>
+<DL>
+<DD>Sets the shortcut.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>shortcut</CODE> - The shortcut to set</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Choice.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/Choice.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Choice.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/EnvironmentException.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/EnvironmentException.html
new file mode 100644
index 0000000..c0ddfd0
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/EnvironmentException.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:55 EDT 2008 -->
+<TITLE>
+EnvironmentException
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.EnvironmentException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="EnvironmentException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/EnvironmentException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/EnvironmentException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="EnvironmentException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment</FONT>
+<BR>
+Class EnvironmentException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.common.environment.EnvironmentException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>EnvironmentException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+This is the exception class for conditions raised by the IEnvironment.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#org.eclipse.wst.common.environment.EnvironmentException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html#EnvironmentException()">EnvironmentException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new EnvironmentException.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html#EnvironmentException(org.eclipse.core.runtime.IStatus)">EnvironmentException</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new EnvironmentException.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;org.eclipse.core.runtime.IStatus</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html#getStatus()">getStatus</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Status object.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="EnvironmentException()"><!-- --></A><H3>
+EnvironmentException</H3>
+<PRE>
+public <B>EnvironmentException</B>()</PRE>
+<DL>
+<DD>Creates a new EnvironmentException.
+<P>
+</DL>
+<HR>
+
+<A NAME="EnvironmentException(org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+EnvironmentException</H3>
+<PRE>
+public <B>EnvironmentException</B>(org.eclipse.core.runtime.IStatus&nbsp;status)</PRE>
+<DL>
+<DD>Creates a new EnvironmentException.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the status for this exception.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getStatus()"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public org.eclipse.core.runtime.IStatus <B>getStatus</B>()</PRE>
+<DL>
+<DD>Returns the Status object.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the status for this exception.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/EnvironmentException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/EnvironmentException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="EnvironmentException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/EnvironmentService.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/EnvironmentService.html
new file mode 100644
index 0000000..8d3a0bf
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/EnvironmentService.html
@@ -0,0 +1,321 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:55 EDT 2008 -->
+<TITLE>
+EnvironmentService
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.EnvironmentService class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="EnvironmentService";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/EnvironmentService.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/EnvironmentService.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="EnvironmentService.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment</FONT>
+<BR>
+Class EnvironmentService</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.common.environment.EnvironmentService</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>EnvironmentService</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+This class creates a console environment.  It also contains static
+ conviences methods for creating an ILog object as well as an Eclipse and
+ File Scheme.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html#EnvironmentService()">EnvironmentService</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment">IEnvironment</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html#getEclipseConsoleEnvironment()">getEclipseConsoleEnvironment</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html#getEclipseLog()">getEclipseLog</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html#getEclipseScheme()">getEclipseScheme</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html#getFileScheme()">getFileScheme</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="EnvironmentService()"><!-- --></A><H3>
+EnvironmentService</H3>
+<PRE>
+public <B>EnvironmentService</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getEclipseConsoleEnvironment()"><!-- --></A><H3>
+getEclipseConsoleEnvironment</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment">IEnvironment</A> <B>getEclipseConsoleEnvironment</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>returns an Eclipse console environment.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEclipseLog()"><!-- --></A><H3>
+getEclipseLog</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A> <B>getEclipseLog</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>returns an Eclipse logger.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEclipseScheme()"><!-- --></A><H3>
+getEclipseScheme</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A> <B>getEclipseScheme</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>returns an Eclipse scheme.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFileScheme()"><!-- --></A><H3>
+getFileScheme</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A> <B>getFileScheme</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>returns a File scheme.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/EnvironmentService.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/EnvironmentService.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="EnvironmentService.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/IEnvironment.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/IEnvironment.html
new file mode 100644
index 0000000..b22426e
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/IEnvironment.html
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:55 EDT 2008 -->
+<TITLE>
+IEnvironment
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.IEnvironment interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IEnvironment";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IEnvironment.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/IEnvironment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IEnvironment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment</FONT>
+<BR>
+Interface IEnvironment</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IEnvironment</B></DL>
+</PRE>
+
+<P>
+An IEnvironment provides the means for getting a 
+ <ol>
+ <li>A log for writing messages to a logging facility,</li>
+ <li>A progress monitor for receiving progress information,</li>
+ <li>A status handler for receiving and processing status reports,</li>
+ <li>A factory for the handling of URIs (resources).</li>
+ </ol>
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html#getLog()">getLog</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a logging facility.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html#getStatusHandler()">getStatusHandler</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a status handler.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html#getURIFactory()">getURIFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a IURI factory.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getLog()"><!-- --></A><H3>
+getLog</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A> <B>getLog</B>()</PRE>
+<DL>
+<DD>Returns a logging facility.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>returns a logging facility.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatusHandler()"><!-- --></A><H3>
+getStatusHandler</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A> <B>getStatusHandler</B>()</PRE>
+<DL>
+<DD>Returns a status handler.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>returns a status handler.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getURIFactory()"><!-- --></A><H3>
+getURIFactory</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A> <B>getURIFactory</B>()</PRE>
+<DL>
+<DD>Returns a IURI factory.
+ Hint: Implementers should insure that the Factory they return
+ has a reference to this IEnvironment so that IURI objects can
+ report progress and announce status.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>returns a URI factory.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IEnvironment.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/IEnvironment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IEnvironment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/ILog.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/ILog.html
new file mode 100644
index 0000000..0f108cd
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/ILog.html
@@ -0,0 +1,527 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:55 EDT 2008 -->
+<TITLE>
+ILog
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.ILog interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ILog";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILog.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/ILog.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILog.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment</FONT>
+<BR>
+Interface ILog</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ILog</B></DL>
+</PRE>
+
+<P>
+ILog objects provide a means for logging information for FFDC etc.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#ERROR">ERROR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constant indicates that a logging message is an error.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#INFO">INFO</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constant indicates that a logging message is informational.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#OK">OK</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constant indicates that a logging message is Ok.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#WARNING">WARNING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constant indicates that a logging message is warning.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#isEnabled()">isEnabled</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if logging is enabled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#isEnabled(java.lang.String)">isEnabled</A></B>(java.lang.String&nbsp;option)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if this debug option is set to true.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#log(int, int, java.lang.Object, java.lang.String, org.eclipse.core.runtime.IStatus)">log</A></B>(int&nbsp;severity,
+    int&nbsp;messageNum,
+    java.lang.Object&nbsp;caller,
+    java.lang.String&nbsp;method,
+    org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Logs a <code>Status</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#log(int, int, java.lang.Object, java.lang.String, java.lang.Object)">log</A></B>(int&nbsp;severity,
+    int&nbsp;messageNum,
+    java.lang.Object&nbsp;caller,
+    java.lang.String&nbsp;method,
+    java.lang.Object&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Logs an <code>Object</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#log(int, int, java.lang.Object, java.lang.String, java.lang.Throwable)">log</A></B>(int&nbsp;severity,
+    int&nbsp;messageNum,
+    java.lang.Object&nbsp;caller,
+    java.lang.String&nbsp;method,
+    java.lang.Throwable&nbsp;throwable)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Logs a <code>Throwable</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#log(int, java.lang.String, int, java.lang.Object, java.lang.String, org.eclipse.core.runtime.IStatus)">log</A></B>(int&nbsp;severity,
+    java.lang.String&nbsp;option,
+    int&nbsp;messageNum,
+    java.lang.Object&nbsp;caller,
+    java.lang.String&nbsp;method,
+    org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Logs a <code>Status</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#log(int, java.lang.String, int, java.lang.Object, java.lang.String, java.lang.Object)">log</A></B>(int&nbsp;severity,
+    java.lang.String&nbsp;option,
+    int&nbsp;messageNum,
+    java.lang.Object&nbsp;caller,
+    java.lang.String&nbsp;method,
+    java.lang.Object&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Logs an <code>Object</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html#log(int, java.lang.String, int, java.lang.Object, java.lang.String, java.lang.Throwable)">log</A></B>(int&nbsp;severity,
+    java.lang.String&nbsp;option,
+    int&nbsp;messageNum,
+    java.lang.Object&nbsp;caller,
+    java.lang.String&nbsp;method,
+    java.lang.Throwable&nbsp;throwable)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Logs a <code>Throwable</code>.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OK"><!-- --></A><H3>
+OK</H3>
+<PRE>
+static final int <B>OK</B></PRE>
+<DL>
+<DD>This constant indicates that a logging message is Ok.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.eclipse.wst.common.environment.ILog.OK">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="INFO"><!-- --></A><H3>
+INFO</H3>
+<PRE>
+static final int <B>INFO</B></PRE>
+<DL>
+<DD>This constant indicates that a logging message is informational.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.eclipse.wst.common.environment.ILog.INFO">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="WARNING"><!-- --></A><H3>
+WARNING</H3>
+<PRE>
+static final int <B>WARNING</B></PRE>
+<DL>
+<DD>This constant indicates that a logging message is warning.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.eclipse.wst.common.environment.ILog.WARNING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ERROR"><!-- --></A><H3>
+ERROR</H3>
+<PRE>
+static final int <B>ERROR</B></PRE>
+<DL>
+<DD>This constant indicates that a logging message is an error.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.eclipse.wst.common.environment.ILog.ERROR">Constant Field Values</A></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="isEnabled()"><!-- --></A><H3>
+isEnabled</H3>
+<PRE>
+boolean <B>isEnabled</B>()</PRE>
+<DL>
+<DD>Returns true if logging is enabled.
+ There is no requirement to call this method before attempting
+ a call to one of the <code>log</code> methods, as they will
+ quietly do nothing if logging is disabled. This method can be
+ useful, however, anywhere the cost of building up the parameters
+ to a log method might be high and best avoided except when logging
+ is enabled.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>True if logging is enabled, and false otherwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEnabled(java.lang.String)"><!-- --></A><H3>
+isEnabled</H3>
+<PRE>
+boolean <B>isEnabled</B>(java.lang.String&nbsp;option)</PRE>
+<DL>
+<DD>Returns true if this debug option is set to true.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>option</CODE> - this debug option string.
+<DT><B>Returns:</B><DD>returns true if this debug option is set to true.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="log(int, int, java.lang.Object, java.lang.String, java.lang.Throwable)"><!-- --></A><H3>
+log</H3>
+<PRE>
+void <B>log</B>(int&nbsp;severity,
+         int&nbsp;messageNum,
+         java.lang.Object&nbsp;caller,
+         java.lang.String&nbsp;method,
+         java.lang.Throwable&nbsp;throwable)</PRE>
+<DL>
+<DD>Logs a <code>Throwable</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>severity</CODE> - The severity of the logging entry.<DD><CODE>messageNum</CODE> - The message number.<DD><CODE>caller</CODE> - The object (for non-static methods) or class (for
+ static methods) doing the logging.<DD><CODE>method</CODE> - The simple name of the method doing the loging.<DD><CODE>throwable</CODE> - The Throwable to log.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="log(int, java.lang.String, int, java.lang.Object, java.lang.String, java.lang.Throwable)"><!-- --></A><H3>
+log</H3>
+<PRE>
+void <B>log</B>(int&nbsp;severity,
+         java.lang.String&nbsp;option,
+         int&nbsp;messageNum,
+         java.lang.Object&nbsp;caller,
+         java.lang.String&nbsp;method,
+         java.lang.Throwable&nbsp;throwable)</PRE>
+<DL>
+<DD>Logs a <code>Throwable</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>severity</CODE> - The severity of the logging entry.<DD><CODE>option</CODE> - this debug option string.<DD><CODE>messageNum</CODE> - The message number.<DD><CODE>caller</CODE> - The object (for non-static methods) or class (for
+ static methods) doing the logging.<DD><CODE>method</CODE> - The simple name of the method doing the loging.<DD><CODE>throwable</CODE> - The Throwable to log.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="log(int, int, java.lang.Object, java.lang.String, org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+log</H3>
+<PRE>
+void <B>log</B>(int&nbsp;severity,
+         int&nbsp;messageNum,
+         java.lang.Object&nbsp;caller,
+         java.lang.String&nbsp;method,
+         org.eclipse.core.runtime.IStatus&nbsp;status)</PRE>
+<DL>
+<DD>Logs a <code>Status</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>severity</CODE> - The severity of the logging entry.<DD><CODE>messageNum</CODE> - The message number.<DD><CODE>caller</CODE> - The object (for non-static methods) or class (for
+ static methods) doing the logging.<DD><CODE>method</CODE> - The simple name of the method doing the loging.<DD><CODE>status</CODE> - The Status to log.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="log(int, java.lang.String, int, java.lang.Object, java.lang.String, org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+log</H3>
+<PRE>
+void <B>log</B>(int&nbsp;severity,
+         java.lang.String&nbsp;option,
+         int&nbsp;messageNum,
+         java.lang.Object&nbsp;caller,
+         java.lang.String&nbsp;method,
+         org.eclipse.core.runtime.IStatus&nbsp;status)</PRE>
+<DL>
+<DD>Logs a <code>Status</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>severity</CODE> - The severity of the logging entry.<DD><CODE>option</CODE> - this debug option string.<DD><CODE>messageNum</CODE> - The message number.<DD><CODE>caller</CODE> - The object (for non-static methods) or class (for
+ static methods) doing the logging.<DD><CODE>method</CODE> - The simple name of the method doing the loging.<DD><CODE>status</CODE> - The Status to log.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="log(int, int, java.lang.Object, java.lang.String, java.lang.Object)"><!-- --></A><H3>
+log</H3>
+<PRE>
+void <B>log</B>(int&nbsp;severity,
+         int&nbsp;messageNum,
+         java.lang.Object&nbsp;caller,
+         java.lang.String&nbsp;method,
+         java.lang.Object&nbsp;object)</PRE>
+<DL>
+<DD>Logs an <code>Object</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>severity</CODE> - The severity of the logging entry.<DD><CODE>messageNum</CODE> - The message number.<DD><CODE>caller</CODE> - The object (for non-static methods) or class (for
+ static methods) doing the logging.<DD><CODE>method</CODE> - The simple name of the method doing the loging.<DD><CODE>object</CODE> - The Object to log.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="log(int, java.lang.String, int, java.lang.Object, java.lang.String, java.lang.Object)"><!-- --></A><H3>
+log</H3>
+<PRE>
+void <B>log</B>(int&nbsp;severity,
+         java.lang.String&nbsp;option,
+         int&nbsp;messageNum,
+         java.lang.Object&nbsp;caller,
+         java.lang.String&nbsp;method,
+         java.lang.Object&nbsp;object)</PRE>
+<DL>
+<DD>Logs an <code>Object</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>severity</CODE> - The severity of the logging entry.<DD><CODE>option</CODE> - this debug option string.<DD><CODE>messageNum</CODE> - The message number.<DD><CODE>caller</CODE> - The object (for non-static methods) or class (for
+ static methods) doing the logging.<DD><CODE>method</CODE> - The simple name of the method doing the loging.<DD><CODE>object</CODE> - The Object to log.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILog.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/ILog.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILog.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/IStatusHandler.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/IStatusHandler.html
new file mode 100644
index 0000000..a8c55de
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/IStatusHandler.html
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:55 EDT 2008 -->
+<TITLE>
+IStatusHandler
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.IStatusHandler interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IStatusHandler";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IStatusHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/IStatusHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IStatusHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment</FONT>
+<BR>
+Interface IStatusHandler</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment">NullStatusHandler</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IStatusHandler</B></DL>
+</PRE>
+
+<P>
+Processes status events raised by the caller and returns an
+ indication of choices made by the recipient of the status and
+ may raise an exception against the caller to have them abort
+ procesing.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus)">report</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reports the given Status with implied options to either
+ continue or abort.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])">report</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+       <A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>[]&nbsp;choices)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reports the given Status and set of possible responses.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#reportError(org.eclipse.core.runtime.IStatus)">reportError</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report the given Error Status.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#reportInfo(org.eclipse.core.runtime.IStatus)">reportInfo</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report the given Info Status.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])"><!-- --></A><H3>
+report</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A> <B>report</B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+              <A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>[]&nbsp;choices)</PRE>
+<DL>
+<DD>Reports the given Status and set of possible responses.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the status to report.<DD><CODE>choices</CODE> - the choices that will be displayed to the user.
+<DT><B>Returns:</B><DD>returns the choice made by the user/handler.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="report(org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+report</H3>
+<PRE>
+void <B>report</B>(org.eclipse.core.runtime.IStatus&nbsp;status)
+            throws <A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A></PRE>
+<DL>
+<DD>Reports the given Status with implied options to either
+ continue or abort.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the status to report.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A></CODE> - Throws an exception if the handler decides the caller
+ should stop processing.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reportError(org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+reportError</H3>
+<PRE>
+void <B>reportError</B>(org.eclipse.core.runtime.IStatus&nbsp;status)</PRE>
+<DL>
+<DD>Report the given Error Status.  No user feedback is provided.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the error status to report.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reportInfo(org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+reportInfo</H3>
+<PRE>
+void <B>reportInfo</B>(org.eclipse.core.runtime.IStatus&nbsp;status)</PRE>
+<DL>
+<DD>Report the given Info Status.  No user feedback is provided.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the info status to report.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IStatusHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/IStatusHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IStatusHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/NullStatusHandler.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/NullStatusHandler.html
new file mode 100644
index 0000000..6bf0059
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/NullStatusHandler.html
@@ -0,0 +1,351 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:55 EDT 2008 -->
+<TITLE>
+NullStatusHandler
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.NullStatusHandler class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="NullStatusHandler";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/NullStatusHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/NullStatusHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NullStatusHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment</FONT>
+<BR>
+Class NullStatusHandler</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.common.environment.NullStatusHandler</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>NullStatusHandler</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></DL>
+</PRE>
+
+<P>
+This class provides a default implementation of the IStatusHandler interface.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html#NullStatusHandler()">NullStatusHandler</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html#report(org.eclipse.core.runtime.IStatus)">report</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reports the given Status with implied options to either
+ continue or abort.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html#report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])">report</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+       <A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>[]&nbsp;choices)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reports the given Status and set of possible responses.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html#reportError(org.eclipse.core.runtime.IStatus)">reportError</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report the given Error Status.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html#reportInfo(org.eclipse.core.runtime.IStatus)">reportInfo</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report the given Info Status.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="NullStatusHandler()"><!-- --></A><H3>
+NullStatusHandler</H3>
+<PRE>
+public <B>NullStatusHandler</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])"><!-- --></A><H3>
+report</H3>
+<PRE>
+public <A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A> <B>report</B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+                     <A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>[]&nbsp;choices)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])">IStatusHandler</A></CODE></B></DD>
+<DD>Reports the given Status and set of possible responses.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])">report</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the status to report.<DD><CODE>choices</CODE> - the choices that will be displayed to the user.
+<DT><B>Returns:</B><DD>returns the choice made by the user/handler.<DT><B>See Also:</B><DD><CODE>org.eclipse.env.common.IStatusHandler#report(org.eclipse.core.runtime.IStatus, org.eclipse.env.common.Choice[])</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="report(org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+report</H3>
+<PRE>
+public void <B>report</B>(org.eclipse.core.runtime.IStatus&nbsp;status)
+            throws <A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus)">IStatusHandler</A></CODE></B></DD>
+<DD>Reports the given Status with implied options to either
+ continue or abort.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus)">report</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the status to report.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A></CODE> - Throws an exception if the handler decides the caller
+ should stop processing.<DT><B>See Also:</B><DD><CODE>org.eclipse.env.common.IStatusHandler#report(org.eclipse.core.runtime.IStatus)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reportError(org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+reportError</H3>
+<PRE>
+public void <B>reportError</B>(org.eclipse.core.runtime.IStatus&nbsp;status)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#reportError(org.eclipse.core.runtime.IStatus)">IStatusHandler</A></CODE></B></DD>
+<DD>Report the given Error Status.  No user feedback is provided.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#reportError(org.eclipse.core.runtime.IStatus)">reportError</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the error status to report.<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#reportError(org.eclipse.core.runtime.IStatus)"><CODE>IStatusHandler.reportError(org.eclipse.core.runtime.IStatus)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reportInfo(org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+reportInfo</H3>
+<PRE>
+public void <B>reportInfo</B>(org.eclipse.core.runtime.IStatus&nbsp;status)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#reportInfo(org.eclipse.core.runtime.IStatus)">IStatusHandler</A></CODE></B></DD>
+<DD>Report the given Info Status.  No user feedback is provided.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#reportInfo(org.eclipse.core.runtime.IStatus)">reportInfo</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the info status to report.<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#reportInfo(org.eclipse.core.runtime.IStatus)"><CODE>IStatusHandler.reportInfo(org.eclipse.core.runtime.IStatus)</CODE></A></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/NullStatusHandler.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/NullStatusHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NullStatusHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/StatusException.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/StatusException.html
new file mode 100644
index 0000000..fc891ca
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/StatusException.html
@@ -0,0 +1,329 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:56 EDT 2008 -->
+<TITLE>
+StatusException
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.StatusException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="StatusException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StatusException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/StatusException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StatusException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment</FONT>
+<BR>
+Class StatusException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">org.eclipse.wst.common.environment.EnvironmentException</A>
+              <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.common.environment.StatusException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>StatusException</B><DT>extends <A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A></DL>
+</PRE>
+
+<P>
+This is the exception class used by StatusHandlers to tell their
+ callers that processing should stop.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#org.eclipse.wst.common.environment.StatusException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html#StatusException(org.eclipse.wst.common.environment.Choice)">StatusException</A></B>(<A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>&nbsp;choice)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new StatusException with the given Choice.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html#StatusException(org.eclipse.core.runtime.IStatus)">StatusException</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new StatusException with the given Status.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html#StatusException(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice)">StatusException</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+                <A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>&nbsp;choice)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new StatusException with the given Choice
+ and status object.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html#getChoice()">getChoice</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.common.environment.EnvironmentException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class org.eclipse.wst.common.environment.<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html#getStatus()">getStatus</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="StatusException(org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+StatusException</H3>
+<PRE>
+public <B>StatusException</B>(org.eclipse.core.runtime.IStatus&nbsp;status)</PRE>
+<DL>
+<DD>Creates a new StatusException with the given Status.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the status for this exception.</DL>
+</DL>
+<HR>
+
+<A NAME="StatusException(org.eclipse.wst.common.environment.Choice)"><!-- --></A><H3>
+StatusException</H3>
+<PRE>
+public <B>StatusException</B>(<A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>&nbsp;choice)</PRE>
+<DL>
+<DD>Creates a new StatusException with the given Choice.
+ The Choice may be null.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>choice</CODE> - the choice for this exception.</DL>
+</DL>
+<HR>
+
+<A NAME="StatusException(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice)"><!-- --></A><H3>
+StatusException</H3>
+<PRE>
+public <B>StatusException</B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+                       <A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>&nbsp;choice)</PRE>
+<DL>
+<DD>Creates a new StatusException with the given Choice
+ and status object. The Choice may be null.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the status for this exception.<DD><CODE>choice</CODE> - the choice for this exception.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getChoice()"><!-- --></A><H3>
+getChoice</H3>
+<PRE>
+public <A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A> <B>getChoice</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns the Choice object inside this exception.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StatusException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/StatusException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StatusException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/Choice.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/Choice.html
new file mode 100644
index 0000000..c6e7fb3
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/Choice.html
@@ -0,0 +1,243 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Class org.eclipse.wst.common.environment.Choice
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.wst.common.environment.Choice";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useChoice.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Choice.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.common.environment.Choice</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment"><B>org.eclipse.wst.common.environment</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A> in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> that return <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></CODE></FONT></TD>
+<TD><CODE><B>StatusException.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/StatusException.html#getChoice()">getChoice</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></CODE></FONT></TD>
+<TD><CODE><B>NullStatusHandler.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html#report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])">report</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+       <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>[]&nbsp;choices)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></CODE></FONT></TD>
+<TD><CODE><B>IStatusHandler.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])">report</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+       <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>[]&nbsp;choices)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reports the given Status and set of possible responses.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> with parameters of type <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></CODE></FONT></TD>
+<TD><CODE><B>NullStatusHandler.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html#report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])">report</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+       <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>[]&nbsp;choices)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></CODE></FONT></TD>
+<TD><CODE><B>IStatusHandler.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice[])">report</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+       <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>[]&nbsp;choices)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reports the given Status and set of possible responses.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> with parameters of type <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/StatusException.html#StatusException(org.eclipse.wst.common.environment.Choice)">StatusException</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>&nbsp;choice)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new StatusException with the given Choice.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/StatusException.html#StatusException(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.Choice)">StatusException</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+                <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A>&nbsp;choice)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new StatusException with the given Choice
+ and status object.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useChoice.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Choice.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/EnvironmentException.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/EnvironmentException.html
new file mode 100644
index 0000000..72ce9ff
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/EnvironmentException.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Class org.eclipse.wst.common.environment.EnvironmentException
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.wst.common.environment.EnvironmentException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useEnvironmentException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="EnvironmentException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.common.environment.EnvironmentException</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment"><B>org.eclipse.wst.common.environment</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A> in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A> in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the exception class used by StatusHandlers to tell their
+ callers that processing should stop.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useEnvironmentException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="EnvironmentException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/EnvironmentService.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/EnvironmentService.html
new file mode 100644
index 0000000..7c2b465
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/EnvironmentService.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Class org.eclipse.wst.common.environment.EnvironmentService
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.wst.common.environment.EnvironmentService";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useEnvironmentService.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="EnvironmentService.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.common.environment.EnvironmentService</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.common.environment.EnvironmentService
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useEnvironmentService.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="EnvironmentService.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/IEnvironment.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/IEnvironment.html
new file mode 100644
index 0000000..0a3c635
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/IEnvironment.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.common.environment.IEnvironment
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.wst.common.environment.IEnvironment";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useIEnvironment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IEnvironment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.common.environment.IEnvironment</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment">IEnvironment</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment"><B>org.eclipse.wst.common.environment</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment">IEnvironment</A> in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> that return <A HREF="../../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment">IEnvironment</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment">IEnvironment</A></CODE></FONT></TD>
+<TD><CODE><B>EnvironmentService.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/EnvironmentService.html#getEclipseConsoleEnvironment()">getEclipseConsoleEnvironment</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useIEnvironment.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IEnvironment.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/ILog.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/ILog.html
new file mode 100644
index 0000000..51cea3d
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/ILog.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.common.environment.ILog
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.wst.common.environment.ILog";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useILog.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILog.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.common.environment.ILog</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment"><B>org.eclipse.wst.common.environment</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A> in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> that return <A HREF="../../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A></CODE></FONT></TD>
+<TD><CODE><B>EnvironmentService.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/EnvironmentService.html#getEclipseLog()">getEclipseLog</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A></CODE></FONT></TD>
+<TD><CODE><B>IEnvironment.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/IEnvironment.html#getLog()">getLog</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a logging facility.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useILog.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILog.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/IStatusHandler.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/IStatusHandler.html
new file mode 100644
index 0000000..98fefe3
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/IStatusHandler.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.common.environment.IStatusHandler
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.wst.common.environment.IStatusHandler";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useIStatusHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IStatusHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.common.environment.IStatusHandler</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment"><B>org.eclipse.wst.common.environment</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A> in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> that implement <A HREF="../../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment">NullStatusHandler</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class provides a default implementation of the IStatusHandler interface.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> that return <A HREF="../../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></CODE></FONT></TD>
+<TD><CODE><B>IEnvironment.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/IEnvironment.html#getStatusHandler()">getStatusHandler</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a status handler.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useIStatusHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IStatusHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/NullStatusHandler.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/NullStatusHandler.html
new file mode 100644
index 0000000..56dd580
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/NullStatusHandler.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Class org.eclipse.wst.common.environment.NullStatusHandler
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.wst.common.environment.NullStatusHandler";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useNullStatusHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NullStatusHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.common.environment.NullStatusHandler</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.common.environment.NullStatusHandler
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useNullStatusHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NullStatusHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/StatusException.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/StatusException.html
new file mode 100644
index 0000000..7782208
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/class-use/StatusException.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Class org.eclipse.wst.common.environment.StatusException
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.wst.common.environment.StatusException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useStatusException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StatusException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.common.environment.StatusException</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment"><B>org.eclipse.wst.common.environment</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A> in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> that throw <A HREF="../../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>NullStatusHandler.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html#report(org.eclipse.core.runtime.IStatus)">report</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IStatusHandler.</B><B><A HREF="../../../../../../org/eclipse/wst/common/environment/IStatusHandler.html#report(org.eclipse.core.runtime.IStatus)">report</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reports the given Status with implied options to either
+ continue or abort.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/\class-useStatusException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StatusException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-frame.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-frame.html
new file mode 100644
index 0000000..85e1e09
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-frame.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+org.eclipse.wst.common.environment
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../org/eclipse/wst/common/environment/package-summary.html" target="classFrame">org.eclipse.wst.common.environment</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="IEnvironment.html" title="interface in org.eclipse.wst.common.environment" target="classFrame"><I>IEnvironment</I></A>
+<BR>
+<A HREF="ILog.html" title="interface in org.eclipse.wst.common.environment" target="classFrame"><I>ILog</I></A>
+<BR>
+<A HREF="IStatusHandler.html" title="interface in org.eclipse.wst.common.environment" target="classFrame"><I>IStatusHandler</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Choice.html" title="class in org.eclipse.wst.common.environment" target="classFrame">Choice</A>
+<BR>
+<A HREF="EnvironmentService.html" title="class in org.eclipse.wst.common.environment" target="classFrame">EnvironmentService</A>
+<BR>
+<A HREF="NullStatusHandler.html" title="class in org.eclipse.wst.common.environment" target="classFrame">NullStatusHandler</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="EnvironmentException.html" title="class in org.eclipse.wst.common.environment" target="classFrame">EnvironmentException</A>
+<BR>
+<A HREF="StatusException.html" title="class in org.eclipse.wst.common.environment" target="classFrame">StatusException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-summary.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-summary.html
new file mode 100644
index 0000000..3589bfb
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-summary.html
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+org.eclipse.wst.common.environment
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.wst.common.environment";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/uri/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<H2>
+Package org.eclipse.wst.common.environment
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment">IEnvironment</A></B></TD>
+<TD>An IEnvironment provides the means for getting a 
+ 
+ A log for writing messages to a logging facility,
+ A progress monitor for receiving progress information,
+ A status handler for receiving and processing status reports,
+ A factory for the handling of URIs (resources).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment">ILog</A></B></TD>
+<TD>ILog objects provide a means for logging information for FFDC etc.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A></B></TD>
+<TD>Processes status events raised by the caller and returns an
+ indication of choices made by the recipient of the status and
+ may raise an exception against the caller to have them abort
+ procesing.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A></B></TD>
+<TD>This class is used by the IStatusHandler interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment">EnvironmentService</A></B></TD>
+<TD>This class creates a console environment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment">NullStatusHandler</A></B></TD>
+<TD>This class provides a default implementation of the IStatusHandler interface.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A></B></TD>
+<TD>This is the exception class for conditions raised by the IEnvironment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">StatusException</A></B></TD>
+<TD>This is the exception class used by StatusHandlers to tell their
+ callers that processing should stop.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/uri/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-tree.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-tree.html
new file mode 100644
index 0000000..c386fbc
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-tree.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+org.eclipse.wst.common.environment Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.wst.common.environment Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/uri/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+Hierarchy For Package org.eclipse.wst.common.environment
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="../../../../../org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment"><B>Choice</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment"><B>EnvironmentService</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="../../../../../org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment"><B>NullStatusHandler</B></A> (implements org.eclipse.wst.common.environment.<A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A>)
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">java.lang.Exception<UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="../../../../../org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment"><B>EnvironmentException</B></A><UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="../../../../../org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment"><B>StatusException</B></A></UL>
+</UL>
+</UL>
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="../../../../../org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment"><B>IEnvironment</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="../../../../../org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment"><B>ILog</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="../../../../../org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment"><B>IStatusHandler</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/wst/common/environment/uri/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-use.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-use.html
new file mode 100644
index 0000000..0f6a23d
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/package-use.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Package org.eclipse.wst.common.environment
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Package org.eclipse.wst.common.environment";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.eclipse.wst.common.environment</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment"><B>org.eclipse.wst.common.environment</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> used by <A HREF="../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/wst/common/environment/class-use/Choice.html#org.eclipse.wst.common.environment"><B>Choice</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class is used by the IStatusHandler interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/wst/common/environment/class-use/EnvironmentException.html#org.eclipse.wst.common.environment"><B>EnvironmentException</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the exception class for conditions raised by the IEnvironment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/wst/common/environment/class-use/IEnvironment.html#org.eclipse.wst.common.environment"><B>IEnvironment</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An IEnvironment provides the means for getting a 
+ 
+ A log for writing messages to a logging facility,
+ A progress monitor for receiving progress information,
+ A status handler for receiving and processing status reports,
+ A factory for the handling of URIs (resources).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/wst/common/environment/class-use/ILog.html#org.eclipse.wst.common.environment"><B>ILog</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ILog objects provide a means for logging information for FFDC etc.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/wst/common/environment/class-use/IStatusHandler.html#org.eclipse.wst.common.environment"><B>IStatusHandler</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes status events raised by the caller and returns an
+ indication of choices made by the recipient of the status and
+ may raise an exception against the caller to have them abort
+ procesing.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/wst/common/environment/class-use/StatusException.html#org.eclipse.wst.common.environment"><B>StatusException</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the exception class used by StatusHandlers to tell their
+ callers that processing should stop.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/common/environment/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURI.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURI.html
new file mode 100644
index 0000000..47b12f8
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURI.html
@@ -0,0 +1,811 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:56 EDT 2008 -->
+<TITLE>
+IURI
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.uri.IURI interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IURI";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IURI.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/IURI.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURI.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment.uri</FONT>
+<BR>
+Interface IURI</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IURI</B></DL>
+</PRE>
+
+<P>
+A IURI represents a Univeral Resource Identifer.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#append(org.eclipse.wst.common.environment.uri.IURI)">append</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;relativeURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.io.File</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#asFile()">asFile</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#asString()">asString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.net.URL</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#asURL()">asURL</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#erase()">erase</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Erases the resource identified by this IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.io.InputStream</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#getInputStream()">getInputStream</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.io.OutputStream</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#getOutputStream()">getOutputStream</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#getURIScheme()">getURIScheme</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#isAvailableAsFile()">isAvailableAsFile</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#isAvailableAsURL()">isAvailableAsURL</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#isHierarchical()">isHierarchical</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#isLeaf()">isLeaf</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#isPresent()">isPresent</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#isReadable()">isReadable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#isRelative()">isRelative</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#isWritable()">isWritable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#list()">list</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a list of URIs for the immediate children of the given
+ hierarchical, non-leaf IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#list(org.eclipse.wst.common.environment.uri.IURIFilter)">list</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>&nbsp;uriFilter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As for list(), except only URIs that are accepted by the given
+ filter are returned in the array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#parent()">parent</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#rename(org.eclipse.wst.common.environment.uri.IURI)">rename</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;newURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Renames or moves the resource identified by this IURI
+ to the new IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#touchFolder()">touchFolder</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new folder resource at the location identified by
+ the IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#touchLeaf()">touchLeaf</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new, empty resource at the location identified by
+ the IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#visit(org.eclipse.wst.common.environment.uri.IURIVisitor)">visit</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A>&nbsp;uriVisitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visits this resource and its decendants in pre-order fashion.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#visit(org.eclipse.wst.common.environment.uri.IURIVisitor, org.eclipse.wst.common.environment.uri.IURIFilter)">visit</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A>&nbsp;uriVisitor,
+      <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>&nbsp;uriFilter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As for visit(IURIVisitor), except only resource URIs that are
+ accepted by the given filter are visited.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns the string form of the IURI.
+ The resource need not exist.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getURIScheme()"><!-- --></A><H3>
+getURIScheme</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A> <B>getURIScheme</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns the IURIScheme for the scheme of this IURI.
+ The resource need not exist.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isPresent()"><!-- --></A><H3>
+isPresent</H3>
+<PRE>
+boolean <B>isPresent</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns true iff the resource identified by this IURI exists.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isLeaf()"><!-- --></A><H3>
+isLeaf</H3>
+<PRE>
+boolean <B>isLeaf</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns true iff the resource identified by this IURI exists
+ and is a leaf. Returns true always for non-hierarchical schemes.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isReadable()"><!-- --></A><H3>
+isReadable</H3>
+<PRE>
+boolean <B>isReadable</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns true iff the resource identified by this IURI exists
+ and is readable. A readable leaf resource indicates that an
+ input stream can be opened on the resource. A readable folder
+ resource indicates that the children of the folder, if any,
+ can be determined via the list() or visit() methods.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isWritable()"><!-- --></A><H3>
+isWritable</H3>
+<PRE>
+boolean <B>isWritable</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns true iff the resource identified by this IURI exists
+ and is writable. A writable leaf resource indicates that an
+ output stream can be opened on the resource. A writable folder
+ resource indicates that new resources can be created in the folder.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isHierarchical()"><!-- --></A><H3>
+isHierarchical</H3>
+<PRE>
+boolean <B>isHierarchical</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns true iff this IURI belongs to a hierarchical scheme.
+ The resource need not exist.
+ this.isHierarchical() == this.getURIScheme().isHierarchical().</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isRelative()"><!-- --></A><H3>
+isRelative</H3>
+<PRE>
+boolean <B>isRelative</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns true iff this IURI is a relative IURI.
+ The resource need not exist.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="parent()"><!-- --></A><H3>
+parent</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>parent</B>()
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns the IURI of the folder containing this IURI.
+ The resource need not exist.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if there is no parent URI.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="append(org.eclipse.wst.common.environment.uri.IURI)"><!-- --></A><H3>
+append</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>append</B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;relativeURI)
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>relativeURI</CODE> - a relative URI.
+<DT><B>Returns:</B><DD>Returns a new, normalized IURI formed by appending the given
+ relative IURI to this IURI. Both URIs must be hierarchical.
+ The resulting IURI will always be hierarchical. The given
+ IURI must be relative. This IURI can be relative or absolute.
+ the resulting IURI will be equivalently relative or absolute.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if relativeURI is not relative.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInputStream()"><!-- --></A><H3>
+getInputStream</H3>
+<PRE>
+java.io.InputStream <B>getInputStream</B>()
+                                   throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Gets an InputStream for reading from the resource
+ identified by this leaf or non-hierarchical IURI.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if a stream for this URI can not be created.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOutputStream()"><!-- --></A><H3>
+getOutputStream</H3>
+<PRE>
+java.io.OutputStream <B>getOutputStream</B>()
+                                     throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Gets an OutputStream for writing to the resource
+ identified by this leaf or non-hierarchical IURI.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if a stream for this URI can not be created.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="touchLeaf()"><!-- --></A><H3>
+touchLeaf</H3>
+<PRE>
+void <B>touchLeaf</B>()
+               throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Creates a new, empty resource at the location identified by
+ the IURI. On completion, this.isLeaf() == true. If a leaf
+ resource already exists, this method does nothing. If a
+ non-leaf resource already exists under this IURI, creation
+ will fail and an exception will be thrown.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs touching this leaf resource.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="touchFolder()"><!-- --></A><H3>
+touchFolder</H3>
+<PRE>
+void <B>touchFolder</B>()
+                 throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Creates a new folder resource at the location identified by
+ the IURI. The scheme of the IURI must be hierarchical.
+ On completion, this.isLeaf() == false. If a folder resource
+ already exists, this method does nothing. If a leaf resource
+ already exists under this IURI, creation will fail and an
+ exception will be thrown.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs touching this folder resource.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="erase()"><!-- --></A><H3>
+erase</H3>
+<PRE>
+void <B>erase</B>()
+           throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Erases the resource identified by this IURI.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs erasing this resource.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rename(org.eclipse.wst.common.environment.uri.IURI)"><!-- --></A><H3>
+rename</H3>
+<PRE>
+void <B>rename</B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;newURI)
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Renames or moves the resource identified by this IURI
+ to the new IURI.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>newURI</CODE> - the new URI name for this URI.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs renaming this resource.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="visit(org.eclipse.wst.common.environment.uri.IURIVisitor)"><!-- --></A><H3>
+visit</H3>
+<PRE>
+void <B>visit</B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A>&nbsp;uriVisitor)
+           throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Visits this resource and its decendants in pre-order fashion.
+ For each resource, whether a folder or a leaf, the given
+ IURIVisitor's visit() method is called with the IURI of the
+ resource. If IURIVisitor.visit() returns false, the visiting
+ algorithm will "prune" the decendants of the resource and
+ carry on visiting the rest of the tree. If IURIVisitor.visit()
+ returns true, the visiting algorithm will continue its walk
+ down the resource's descendants.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uriVisitor</CODE> - the visitor that will be called for each resource visited.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs visiting this resource and its children.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="visit(org.eclipse.wst.common.environment.uri.IURIVisitor, org.eclipse.wst.common.environment.uri.IURIFilter)"><!-- --></A><H3>
+visit</H3>
+<PRE>
+void <B>visit</B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A>&nbsp;uriVisitor,
+           <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>&nbsp;uriFilter)
+           throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>As for visit(IURIVisitor), except only resource URIs that are
+ accepted by the given filter are visited. If a folder resource
+ fails to be accepted by the filter, this will not prevent the
+ visiting algorithm from walking the resource's descendants.
+ It remains the job of the visitor to choose whether or not to
+ prune a branch by returning false or true.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uriVisitor</CODE> - the visitor that will be called for each resource visited.<DD><CODE>uriFilter</CODE> - the resource filter.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs visiting this resource and its children.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="list()"><!-- --></A><H3>
+list</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>[] <B>list</B>()
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Returns a list of URIs for the immediate children of the given
+ hierarchical, non-leaf IURI. This method never returns null,
+ though it may return a zero length array.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>returns the children for this URI.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs locating the children for this URI.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="list(org.eclipse.wst.common.environment.uri.IURIFilter)"><!-- --></A><H3>
+list</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>[] <B>list</B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>&nbsp;uriFilter)
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>As for list(), except only URIs that are accepted by the given
+ filter are returned in the array. This method never returns null,
+ though it may return a zero length array.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uriFilter</CODE> - the child filter.
+<DT><B>Returns:</B><DD>returns the filtered children for this URI.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs locating the children for this URI.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAvailableAsURL()"><!-- --></A><H3>
+isAvailableAsURL</H3>
+<PRE>
+boolean <B>isAvailableAsURL</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns true if the asURL() method is fair game,
+ in other words, if this IURI can be converted into a URL.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asURL()"><!-- --></A><H3>
+asURL</H3>
+<PRE>
+java.net.URL <B>asURL</B>()
+                   throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns a URL object for the resource under this IURI.
+ There are many URIs and URISchemes for which this method
+ will fail and throw an exception. It should be used only
+ in cases where URIs are known to be representable as URLs.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs returning this URL.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAvailableAsFile()"><!-- --></A><H3>
+isAvailableAsFile</H3>
+<PRE>
+boolean <B>isAvailableAsFile</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns true if the asFile() method is fair game,
+ in other words, if this IURI can be converted into a File.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asFile()"><!-- --></A><H3>
+asFile</H3>
+<PRE>
+java.io.File <B>asFile</B>()
+                    throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns a File object for the resource under this IURI.
+ There are many URIs and URISchemes for which this method
+ will fail and throw an exception. It should be used only
+ in cases where URIs are known to be backed by physical files.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs returning this File.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asString()"><!-- --></A><H3>
+asString</H3>
+<PRE>
+java.lang.String <B>asString</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns the IURI as a string.
+ Equivalent to toString().</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IURI.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/IURI.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURI.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIFactory.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIFactory.html
new file mode 100644
index 0000000..c275e19
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIFactory.html
@@ -0,0 +1,277 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:56 EDT 2008 -->
+<TITLE>
+IURIFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.uri.IURIFactory interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IURIFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IURIFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/IURIFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment.uri</FONT>
+<BR>
+Interface IURIFactory</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri">SimpleURIFactory</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IURIFactory</B></DL>
+</PRE>
+
+<P>
+This is a factory for creating new IURI and IURIScheme objects.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.lang.String)">newURI</A></B>(java.lang.String&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURI for the given string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.net.URL)">newURI</A></B>(java.net.URL&nbsp;url)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURI for the given URL.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURIScheme(java.lang.String)">newURIScheme</A></B>(java.lang.String&nbsp;schemeOrURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURIScheme for the given scheme string.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="newURI(java.lang.String)"><!-- --></A><H3>
+newURI</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>newURI</B>(java.lang.String&nbsp;uri)
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Creates and returns a new IURI for the given string.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uri</CODE> - the uri to be created.
+<DT><B>Returns:</B><DD>the new URI.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if the uri parameter is not a valid URI.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="newURI(java.net.URL)"><!-- --></A><H3>
+newURI</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>newURI</B>(java.net.URL&nbsp;url)
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Creates and returns a new IURI for the given URL.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>url</CODE> - the url to use to create this URI
+<DT><B>Returns:</B><DD>the new URI.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if the url parameter is not a valid url.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="newURIScheme(java.lang.String)"><!-- --></A><H3>
+newURIScheme</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A> <B>newURIScheme</B>(java.lang.String&nbsp;schemeOrURI)
+                        throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Creates and returns a new IURIScheme for the given scheme string.
+ If the string contains no colons, the entire string is interpretted
+ as the name of the scheme. If the string contains a colon, then the
+ substring up to but excluding the first colon is interpretted as the
+ name of the scheme, meaning the caller can pass in any IURI string in
+ order to get a IURIScheme object.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>schemeOrURI</CODE> - the scheme or URI from which to create the scheme.
+<DT><B>Returns:</B><DD>the new Scheme.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if schemeOrUri parameter does not contain
+ a valid scheme or URI name.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IURIFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/IURIFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIFilter.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIFilter.html
new file mode 100644
index 0000000..66346b5
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIFilter.html
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:56 EDT 2008 -->
+<TITLE>
+IURIFilter
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.uri.IURIFilter interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IURIFilter";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IURIFilter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/IURIFilter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIFilter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment.uri</FONT>
+<BR>
+Interface IURIFilter</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IURIFilter</B></DL>
+</PRE>
+
+<P>
+This interface is implemented by classes that visit or list URIs.
+ Refer to <CODE>IURI#getChildren</CODE>.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html#accepts(org.eclipse.wst.common.environment.uri.IURI)">accepts</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filters the given IURI.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="accepts(org.eclipse.wst.common.environment.uri.IURI)"><!-- --></A><H3>
+accepts</H3>
+<PRE>
+boolean <B>accepts</B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)
+                throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Filters the given IURI.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uri</CODE> - The resource to filter.<DD><CODE>uri</CODE> - the uri that will be accepted or rejected.
+<DT><B>Returns:</B><DD>True if the resource matches the filter,
+ false if it does not.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - If the filter fails to analyze the resource.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IURIFilter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/IURIFilter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIFilter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIScheme.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIScheme.html
new file mode 100644
index 0000000..e05d4f0
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIScheme.html
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:56 EDT 2008 -->
+<TITLE>
+IURIScheme
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.uri.IURIScheme interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IURIScheme";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IURIScheme.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/IURIScheme.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIScheme.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment.uri</FONT>
+<BR>
+Interface IURIScheme</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IURIScheme</B></DL>
+</PRE>
+
+<P>
+A IURIScheme represents a single scheme for some a family of
+ Univeral Resource Identifiers. Examples include "file", "http"
+ and "platform" (Eclipse).
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#isHierarchical()">isHierarchical</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#isValid(org.eclipse.wst.common.environment.uri.IURI)">isValid</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(org.eclipse.wst.common.environment.uri.IURI)">newURI</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(java.lang.String)">newURI</A></B>(java.lang.String&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(java.net.URL)">newURI</A></B>(java.net.URL&nbsp;url)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;org.eclipse.core.runtime.IStatus</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#validate(org.eclipse.wst.common.environment.uri.IURI)">validate</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="newURI(java.lang.String)"><!-- --></A><H3>
+newURI</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>newURI</B>(java.lang.String&nbsp;uri)
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uri</CODE> - the URI to be created.
+<DT><B>Returns:</B><DD>Returns a new IURI.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if the uri specified is not valid or
+ can not be created.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="newURI(java.net.URL)"><!-- --></A><H3>
+newURI</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>newURI</B>(java.net.URL&nbsp;url)
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>url</CODE> - the url used to create the URI.
+<DT><B>Returns:</B><DD>Returns a new IURI.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if the url specified is not valid or
+ can not be created.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="newURI(org.eclipse.wst.common.environment.uri.IURI)"><!-- --></A><H3>
+newURI</H3>
+<PRE>
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>newURI</B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uri</CODE> - the URI to be created.
+<DT><B>Returns:</B><DD>Returns a new IURI.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if the uri specified is not valid or
+ can not be created.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns the proper name of the scheme.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isHierarchical()"><!-- --></A><H3>
+isHierarchical</H3>
+<PRE>
+boolean <B>isHierarchical</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns true if and only if this is a hierarchical scheme.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isValid(org.eclipse.wst.common.environment.uri.IURI)"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+boolean <B>isValid</B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uri</CODE> - the uri to check for validity.
+<DT><B>Returns:</B><DD>Returns true if and only if the given IURI satisfies the
+ grammatical requirements of the scheme. Absolute URIs must
+ begin with "<scheme>:". Relative URIs must either not contain
+ a colon, ":", or it must begin with "./".</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validate(org.eclipse.wst.common.environment.uri.IURI)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+org.eclipse.core.runtime.IStatus <B>validate</B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uri</CODE> - the uri to check for validity.
+<DT><B>Returns:</B><DD>Returns a Status object indicating whether or not the given
+ IURI is valid. The severity and message of the Status object
+ will describe this.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IURIScheme.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/IURIScheme.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIScheme.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIVisitor.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIVisitor.html
new file mode 100644
index 0000000..2a53e07
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/IURIVisitor.html
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:56 EDT 2008 -->
+<TITLE>
+IURIVisitor
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.uri.IURIVisitor interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IURIVisitor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IURIVisitor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/IURIVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment.uri</FONT>
+<BR>
+Interface IURIVisitor</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IURIVisitor</B></DL>
+</PRE>
+
+<P>
+This interface is implemented by classes that visit URIs.
+ Refer to <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#visit(org.eclipse.wst.common.environment.uri.IURIVisitor)"><CODE>IURI.visit(org.eclipse.wst.common.environment.uri.IURIVisitor)</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html#visit(org.eclipse.wst.common.environment.uri.IURI)">visit</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visits the given IURI.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="visit(org.eclipse.wst.common.environment.uri.IURI)"><!-- --></A><H3>
+visit</H3>
+<PRE>
+boolean <B>visit</B>(<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)
+              throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD>Visits the given IURI.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uri</CODE> - The resource to visit.
+<DT><B>Returns:</B><DD>True if the resource's descendants should be visited,
+ or false if they should not be visited.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - If the visit method fails.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IURIVisitor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/IURIVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/SimpleURIFactory.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/SimpleURIFactory.html
new file mode 100644
index 0000000..e98ca97
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/SimpleURIFactory.html
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:56 EDT 2008 -->
+<TITLE>
+SimpleURIFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.uri.SimpleURIFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="SimpleURIFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/SimpleURIFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SimpleURIFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment.uri</FONT>
+<BR>
+Class SimpleURIFactory</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.common.environment.uri.SimpleURIFactory</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>SimpleURIFactory</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></DL>
+</PRE>
+
+<P>
+This class provides a default implementation of the IURIFactory interface.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#SimpleURIFactory()">SimpleURIFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURI(java.lang.String)">newURI</A></B>(java.lang.String&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURI for the given string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURI(java.net.URL)">newURI</A></B>(java.net.URL&nbsp;url)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURI for the given URL.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURIScheme(java.lang.String)">newURIScheme</A></B>(java.lang.String&nbsp;schemeOrURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURIScheme for the given scheme string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#registerScheme(java.lang.String, org.eclipse.wst.common.environment.uri.IURIScheme)">registerScheme</A></B>(java.lang.String&nbsp;protocol,
+               <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A>&nbsp;scheme)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method registers a scheme for a particular protocol.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="SimpleURIFactory()"><!-- --></A><H3>
+SimpleURIFactory</H3>
+<PRE>
+public <B>SimpleURIFactory</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="newURI(java.lang.String)"><!-- --></A><H3>
+newURI</H3>
+<PRE>
+public <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>newURI</B>(java.lang.String&nbsp;uri)
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.lang.String)">IURIFactory</A></CODE></B></DD>
+<DD>Creates and returns a new IURI for the given string.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.lang.String)">newURI</A></CODE> in interface <CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uri</CODE> - the uri to be created.
+<DT><B>Returns:</B><DD>Creates and returns a new IURI for the given string.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs creating this URI.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="newURI(java.net.URL)"><!-- --></A><H3>
+newURI</H3>
+<PRE>
+public <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>newURI</B>(java.net.URL&nbsp;url)
+            throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.net.URL)">IURIFactory</A></CODE></B></DD>
+<DD>Creates and returns a new IURI for the given URL.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.net.URL)">newURI</A></CODE> in interface <CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>url</CODE> - the url to use to create this uri.
+<DT><B>Returns:</B><DD>Creates and returns a new IURI for the given URL.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs creating this URI.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="newURIScheme(java.lang.String)"><!-- --></A><H3>
+newURIScheme</H3>
+<PRE>
+public <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A> <B>newURIScheme</B>(java.lang.String&nbsp;schemeOrURI)
+                        throws <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURIScheme(java.lang.String)">IURIFactory</A></CODE></B></DD>
+<DD>Creates and returns a new IURIScheme for the given scheme string.
+ If the string contains no colons, the entire string is interpretted
+ as the name of the scheme. If the string contains a colon, then the
+ substring up to but excluding the first colon is interpretted as the
+ name of the scheme, meaning the caller can pass in any IURI string in
+ order to get a IURIScheme object.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURIScheme(java.lang.String)">newURIScheme</A></CODE> in interface <CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>schemeOrURI</CODE> - the scheme name or URI from which this scheme is 
+ to be created.
+<DT><B>Returns:</B><DD>Creates and returns a new IURIScheme for the given scheme string.
+ If the string contains no colons, the entire string is interpretted
+ as the name of the scheme. If the string contains a colon, then the
+ substring up to but excluding the first colon is interpretted as the
+ name of the scheme, meaning the caller can pass in any IURI string in
+ order to get a IURIScheme object.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></CODE> - if an error occurs creating this URI scheme.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="registerScheme(java.lang.String, org.eclipse.wst.common.environment.uri.IURIScheme)"><!-- --></A><H3>
+registerScheme</H3>
+<PRE>
+public void <B>registerScheme</B>(java.lang.String&nbsp;protocol,
+                           <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A>&nbsp;scheme)</PRE>
+<DL>
+<DD>This method registers a scheme for a particular protocol.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>protocol</CODE> - the protocol.<DD><CODE>scheme</CODE> - the scheme.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/SimpleURIFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SimpleURIFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/URIException.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/URIException.html
new file mode 100644
index 0000000..cc7d62d
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/URIException.html
@@ -0,0 +1,323 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:56 EDT 2008 -->
+<TITLE>
+URIException
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.uri.URIException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="URIException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/URIException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/URIException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="URIException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.common.environment.uri</FONT>
+<BR>
+Class URIException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.common.environment.uri.URIException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>URIException</B><DT>extends java.lang.Exception</DL>
+</PRE>
+
+<P>
+This is the base class for most exceptions thrown by IURI classes.
+ Every URIException carries a IURI and a Status, each of which may
+ be null. The getMessage() method as inherited from Exception will
+ return the message from the URIExceptin's Status object, if any.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>1.0</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../serialized-form.html#org.eclipse.wst.common.environment.uri.URIException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html#URIException(org.eclipse.core.runtime.IStatus)">URIException</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new URIException with the given Status.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html#URIException(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.uri.IURI)">URIException</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+             <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new URIException for the given Status and IURI,
+ each of which may be null.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;org.eclipse.core.runtime.IStatus</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html#getStatus()">getStatus</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html#getURI()">getURI</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="URIException(org.eclipse.core.runtime.IStatus)"><!-- --></A><H3>
+URIException</H3>
+<PRE>
+public <B>URIException</B>(org.eclipse.core.runtime.IStatus&nbsp;status)</PRE>
+<DL>
+<DD>Creates a new URIException with the given Status.
+ The status may be null.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the staus for this exception.</DL>
+</DL>
+<HR>
+
+<A NAME="URIException(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.uri.IURI)"><!-- --></A><H3>
+URIException</H3>
+<PRE>
+public <B>URIException</B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+                    <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</PRE>
+<DL>
+<DD>Creates a new URIException for the given Status and IURI,
+ each of which may be null.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the status for this exception.<DD><CODE>uri</CODE> - the uri that caused this exception.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getStatus()"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public org.eclipse.core.runtime.IStatus <B>getStatus</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>returns the Status object inside this exception.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getURI()"><!-- --></A><H3>
+getURI</H3>
+<PRE>
+public <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>getURI</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>returns the IURI inside this exception.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/URIException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/URIException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="URIException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURI.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURI.html
new file mode 100644
index 0000000..a45c18e
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURI.html
@@ -0,0 +1,348 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.common.environment.uri.IURI
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.wst.common.environment.uri.IURI";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useIURI.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURI.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.common.environment.uri.IURI</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment.uri"><B>org.eclipse.wst.common.environment.uri</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment.uri"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> that return <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#append(org.eclipse.wst.common.environment.uri.IURI)">append</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;relativeURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>URIException.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/URIException.html#getURI()">getURI</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>[]</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#list()">list</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a list of URIs for the immediate children of the given
+ hierarchical, non-leaf IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>[]</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#list(org.eclipse.wst.common.environment.uri.IURIFilter)">list</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>&nbsp;uriFilter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As for list(), except only URIs that are accepted by the given
+ filter are returned in the array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIScheme.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(org.eclipse.wst.common.environment.uri.IURI)">newURI</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>SimpleURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURI(java.lang.String)">newURI</A></B>(java.lang.String&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIScheme.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(java.lang.String)">newURI</A></B>(java.lang.String&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.lang.String)">newURI</A></B>(java.lang.String&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURI for the given string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>SimpleURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURI(java.net.URL)">newURI</A></B>(java.net.URL&nbsp;url)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIScheme.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(java.net.URL)">newURI</A></B>(java.net.URL&nbsp;url)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.net.URL)">newURI</A></B>(java.net.URL&nbsp;url)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURI for the given URL.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#parent()">parent</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> with parameters of type <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>IURIFilter.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html#accepts(org.eclipse.wst.common.environment.uri.IURI)">accepts</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filters the given IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#append(org.eclipse.wst.common.environment.uri.IURI)">append</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;relativeURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>IURIScheme.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#isValid(org.eclipse.wst.common.environment.uri.IURI)">isValid</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIScheme.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(org.eclipse.wst.common.environment.uri.IURI)">newURI</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#rename(org.eclipse.wst.common.environment.uri.IURI)">rename</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;newURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Renames or moves the resource identified by this IURI
+ to the new IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;org.eclipse.core.runtime.IStatus</CODE></FONT></TD>
+<TD><CODE><B>IURIScheme.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#validate(org.eclipse.wst.common.environment.uri.IURI)">validate</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>IURIVisitor.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html#visit(org.eclipse.wst.common.environment.uri.IURI)">visit</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visits the given IURI.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> with parameters of type <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/URIException.html#URIException(org.eclipse.core.runtime.IStatus, org.eclipse.wst.common.environment.uri.IURI)">URIException</A></B>(org.eclipse.core.runtime.IStatus&nbsp;status,
+             <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new URIException for the given Status and IURI,
+ each of which may be null.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useIURI.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURI.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIFactory.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIFactory.html
new file mode 100644
index 0000000..3efc62c
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIFactory.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.common.environment.uri.IURIFactory
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.wst.common.environment.uri.IURIFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useIURIFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.common.environment.uri.IURIFactory</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment"><B>org.eclipse.wst.common.environment</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment.uri"><B>org.eclipse.wst.common.environment.uri</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A> in <A HREF="../../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> that return <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></CODE></FONT></TD>
+<TD><CODE><B>IEnvironment.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/IEnvironment.html#getURIFactory()">getURIFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a IURI factory.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment.uri"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A> in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> that implement <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri">SimpleURIFactory</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class provides a default implementation of the IURIFactory interface.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useIURIFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIFilter.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIFilter.html
new file mode 100644
index 0000000..0902757
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIFilter.html
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.common.environment.uri.IURIFilter
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.wst.common.environment.uri.IURIFilter";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useIURIFilter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIFilter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.common.environment.uri.IURIFilter</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment.uri"><B>org.eclipse.wst.common.environment.uri</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment.uri"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A> in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> with parameters of type <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>[]</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#list(org.eclipse.wst.common.environment.uri.IURIFilter)">list</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>&nbsp;uriFilter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As for list(), except only URIs that are accepted by the given
+ filter are returned in the array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#visit(org.eclipse.wst.common.environment.uri.IURIVisitor, org.eclipse.wst.common.environment.uri.IURIFilter)">visit</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A>&nbsp;uriVisitor,
+      <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>&nbsp;uriFilter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As for visit(IURIVisitor), except only resource URIs that are
+ accepted by the given filter are visited.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useIURIFilter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIFilter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIScheme.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIScheme.html
new file mode 100644
index 0000000..97af251
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIScheme.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.common.environment.uri.IURIScheme
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.wst.common.environment.uri.IURIScheme";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useIURIScheme.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIScheme.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.common.environment.uri.IURIScheme</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment"><B>org.eclipse.wst.common.environment</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment.uri"><B>org.eclipse.wst.common.environment.uri</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A> in <A HREF="../../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A> that return <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B>EnvironmentService.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/EnvironmentService.html#getEclipseScheme()">getEclipseScheme</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B>EnvironmentService.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/EnvironmentService.html#getFileScheme()">getFileScheme</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment.uri"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A> in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> that return <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#getURIScheme()">getURIScheme</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B>SimpleURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURIScheme(java.lang.String)">newURIScheme</A></B>(java.lang.String&nbsp;schemeOrURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B>IURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURIScheme(java.lang.String)">newURIScheme</A></B>(java.lang.String&nbsp;schemeOrURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURIScheme for the given scheme string.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> with parameters of type <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>SimpleURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#registerScheme(java.lang.String, org.eclipse.wst.common.environment.uri.IURIScheme)">registerScheme</A></B>(java.lang.String&nbsp;protocol,
+               <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A>&nbsp;scheme)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method registers a scheme for a particular protocol.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useIURIScheme.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIScheme.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIVisitor.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIVisitor.html
new file mode 100644
index 0000000..6782c49
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/IURIVisitor.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.common.environment.uri.IURIVisitor
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.wst.common.environment.uri.IURIVisitor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useIURIVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.common.environment.uri.IURIVisitor</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment.uri"><B>org.eclipse.wst.common.environment.uri</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment.uri"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A> in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> with parameters of type <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#visit(org.eclipse.wst.common.environment.uri.IURIVisitor)">visit</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A>&nbsp;uriVisitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visits this resource and its decendants in pre-order fashion.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#visit(org.eclipse.wst.common.environment.uri.IURIVisitor, org.eclipse.wst.common.environment.uri.IURIFilter)">visit</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A>&nbsp;uriVisitor,
+      <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>&nbsp;uriFilter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As for visit(IURIVisitor), except only resource URIs that are
+ accepted by the given filter are visited.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useIURIVisitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IURIVisitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/SimpleURIFactory.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/SimpleURIFactory.html
new file mode 100644
index 0000000..7f604aa
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/SimpleURIFactory.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Class org.eclipse.wst.common.environment.uri.SimpleURIFactory
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.wst.common.environment.uri.SimpleURIFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useSimpleURIFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SimpleURIFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.common.environment.uri.SimpleURIFactory</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.common.environment.uri.SimpleURIFactory
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useSimpleURIFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SimpleURIFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/URIException.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/URIException.html
new file mode 100644
index 0000000..93b6a37
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/class-use/URIException.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Class org.eclipse.wst.common.environment.uri.URIException
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.wst.common.environment.uri.URIException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useURIException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="URIException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.common.environment.uri.URIException</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment.uri"><B>org.eclipse.wst.common.environment.uri</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment.uri"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A> in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> that throw <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>IURIFilter.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html#accepts(org.eclipse.wst.common.environment.uri.IURI)">accepts</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filters the given IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#append(org.eclipse.wst.common.environment.uri.IURI)">append</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;relativeURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.io.File</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#asFile()">asFile</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.net.URL</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#asURL()">asURL</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#erase()">erase</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Erases the resource identified by this IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.io.InputStream</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#getInputStream()">getInputStream</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.io.OutputStream</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#getOutputStream()">getOutputStream</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>[]</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#list()">list</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a list of URIs for the immediate children of the given
+ hierarchical, non-leaf IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>[]</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#list(org.eclipse.wst.common.environment.uri.IURIFilter)">list</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>&nbsp;uriFilter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As for list(), except only URIs that are accepted by the given
+ filter are returned in the array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIScheme.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(org.eclipse.wst.common.environment.uri.IURI)">newURI</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>SimpleURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURI(java.lang.String)">newURI</A></B>(java.lang.String&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIScheme.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(java.lang.String)">newURI</A></B>(java.lang.String&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.lang.String)">newURI</A></B>(java.lang.String&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURI for the given string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>SimpleURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURI(java.net.URL)">newURI</A></B>(java.net.URL&nbsp;url)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIScheme.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html#newURI(java.net.URL)">newURI</A></B>(java.net.URL&nbsp;url)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURI(java.net.URL)">newURI</A></B>(java.net.URL&nbsp;url)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURI for the given URL.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B>SimpleURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html#newURIScheme(java.lang.String)">newURIScheme</A></B>(java.lang.String&nbsp;schemeOrURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></CODE></FONT></TD>
+<TD><CODE><B>IURIFactory.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html#newURIScheme(java.lang.String)">newURIScheme</A></B>(java.lang.String&nbsp;schemeOrURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new IURIScheme for the given scheme string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#parent()">parent</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#rename(org.eclipse.wst.common.environment.uri.IURI)">rename</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;newURI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Renames or moves the resource identified by this IURI
+ to the new IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#touchFolder()">touchFolder</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new folder resource at the location identified by
+ the IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#touchLeaf()">touchLeaf</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new, empty resource at the location identified by
+ the IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>IURIVisitor.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html#visit(org.eclipse.wst.common.environment.uri.IURI)">visit</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A>&nbsp;uri)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visits the given IURI.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#visit(org.eclipse.wst.common.environment.uri.IURIVisitor)">visit</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A>&nbsp;uriVisitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visits this resource and its decendants in pre-order fashion.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IURI.</B><B><A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURI.html#visit(org.eclipse.wst.common.environment.uri.IURIVisitor, org.eclipse.wst.common.environment.uri.IURIFilter)">visit</A></B>(<A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A>&nbsp;uriVisitor,
+      <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A>&nbsp;uriFilter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As for visit(IURIVisitor), except only resource URIs that are
+ accepted by the given filter are visited.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/common/environment/uri/\class-useURIException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="URIException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-frame.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-frame.html
new file mode 100644
index 0000000..0f6b7d6
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-frame.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+org.eclipse.wst.common.environment.uri
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.uri package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html" target="classFrame">org.eclipse.wst.common.environment.uri</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="IURI.html" title="interface in org.eclipse.wst.common.environment.uri" target="classFrame"><I>IURI</I></A>
+<BR>
+<A HREF="IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri" target="classFrame"><I>IURIFactory</I></A>
+<BR>
+<A HREF="IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri" target="classFrame"><I>IURIFilter</I></A>
+<BR>
+<A HREF="IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri" target="classFrame"><I>IURIScheme</I></A>
+<BR>
+<A HREF="IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri" target="classFrame"><I>IURIVisitor</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri" target="classFrame">SimpleURIFactory</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="URIException.html" title="class in org.eclipse.wst.common.environment.uri" target="classFrame">URIException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-summary.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-summary.html
new file mode 100644
index 0000000..9340e84
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-summary.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+org.eclipse.wst.common.environment.uri
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.wst.common.environment.uri package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.wst.common.environment.uri";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<H2>
+Package org.eclipse.wst.common.environment.uri
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A></B></TD>
+<TD>A IURI represents a Univeral Resource Identifer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A></B></TD>
+<TD>This is a factory for creating new IURI and IURIScheme objects.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFilter</A></B></TD>
+<TD>This interface is implemented by classes that visit or list URIs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri">IURIScheme</A></B></TD>
+<TD>A IURIScheme represents a single scheme for some a family of
+ Univeral Resource Identifiers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri">IURIVisitor</A></B></TD>
+<TD>This interface is implemented by classes that visit URIs.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri">SimpleURIFactory</A></B></TD>
+<TD>This class provides a default implementation of the IURIFactory interface.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">URIException</A></B></TD>
+<TD>This is the base class for most exceptions thrown by IURI classes.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-tree.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-tree.html
new file mode 100644
index 0000000..0afed11
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-tree.html
@@ -0,0 +1,161 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+org.eclipse.wst.common.environment.uri Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.wst.common.environment.uri Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+Hierarchy For Package org.eclipse.wst.common.environment.uri
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri"><B>SimpleURIFactory</B></A> (implements org.eclipse.wst.common.environment.uri.<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A>)
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">java.lang.Exception<UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri"><B>URIException</B></A></UL>
+</UL>
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURI</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIFactory</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIFilter</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIScheme</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="../../../../../../org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIVisitor</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/environment/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-use.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-use.html
new file mode 100644
index 0000000..c3302b1
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/org/eclipse/wst/common/environment/uri/package-use.html
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Uses of Package org.eclipse.wst.common.environment.uri
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Package org.eclipse.wst.common.environment.uri";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.eclipse.wst.common.environment.uri</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment"><B>org.eclipse.wst.common.environment</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.common.environment.uri"><B>org.eclipse.wst.common.environment.uri</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> used by <A HREF="../../../../../../org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/class-use/IURIFactory.html#org.eclipse.wst.common.environment"><B>IURIFactory</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is a factory for creating new IURI and IURIScheme objects.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/class-use/IURIScheme.html#org.eclipse.wst.common.environment"><B>IURIScheme</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A IURIScheme represents a single scheme for some a family of
+ Univeral Resource Identifiers.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.common.environment.uri"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A> used by <A HREF="../../../../../../org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/class-use/IURI.html#org.eclipse.wst.common.environment.uri"><B>IURI</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A IURI represents a Univeral Resource Identifer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/class-use/IURIFactory.html#org.eclipse.wst.common.environment.uri"><B>IURIFactory</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is a factory for creating new IURI and IURIScheme objects.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/class-use/IURIFilter.html#org.eclipse.wst.common.environment.uri"><B>IURIFilter</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This interface is implemented by classes that visit or list URIs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/class-use/IURIScheme.html#org.eclipse.wst.common.environment.uri"><B>IURIScheme</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A IURIScheme represents a single scheme for some a family of
+ Univeral Resource Identifiers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/class-use/IURIVisitor.html#org.eclipse.wst.common.environment.uri"><B>IURIVisitor</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This interface is implemented by classes that visit URIs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../org/eclipse/wst/common/environment/uri/class-use/URIException.html#org.eclipse.wst.common.environment.uri"><B>URIException</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the base class for most exceptions thrown by IURI classes.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/wst/common/environment/uri/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/overview-frame.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/overview-frame.html
new file mode 100644
index 0000000..ed5fe1c
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/overview-frame.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="keywords" CONTENT="Overview, Web Tools Platform: Environment framework API documentation">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
+<B></B></FONT></TH>
+</TR>
+</TABLE>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
+<P>
+<FONT size="+1" CLASS="FrameHeadingFont">
+Packages</FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/eclipse/wst/common/environment/package-frame.html" target="packageFrame">org.eclipse.wst.common.environment</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/eclipse/wst/common/environment/uri/package-frame.html" target="packageFrame">org.eclipse.wst.common.environment.uri</A></FONT>
+<BR>
+</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/overview-summary.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/overview-summary.html
new file mode 100644
index 0000000..748cdec
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/overview-summary.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="keywords" CONTENT="Overview, Web Tools Platform: Environment framework API documentation">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Overview";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H1>
+Web Tools Platform: Environment framework API documentation
+</H1>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Packages</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/eclipse/wst/common/environment/package-summary.html">org.eclipse.wst.common.environment</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/eclipse/wst/common/environment/uri/package-summary.html">org.eclipse.wst.common.environment.uri</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/overview-tree.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/overview-tree.html
new file mode 100644
index 0000000..9e1be81
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/overview-tree.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:58 EDT 2008 -->
+<TITLE>
+Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<A NAME="main"></A>
+<CENTER>
+<H2>
+Hierarchy For All Packages</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="org/eclipse/wst/common/environment/package-tree.html">org.eclipse.wst.common.environment</A>, <A HREF="org/eclipse/wst/common/environment/uri/package-tree.html">org.eclipse.wst.common.environment.uri</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment"><B>Choice</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="org/eclipse/wst/common/environment/EnvironmentService.html" title="class in org.eclipse.wst.common.environment"><B>EnvironmentService</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="org/eclipse/wst/common/environment/NullStatusHandler.html" title="class in org.eclipse.wst.common.environment"><B>NullStatusHandler</B></A> (implements org.eclipse.wst.common.environment.<A HREF="org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment">IStatusHandler</A>)
+<LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="org/eclipse/wst/common/environment/uri/SimpleURIFactory.html" title="class in org.eclipse.wst.common.environment.uri"><B>SimpleURIFactory</B></A> (implements org.eclipse.wst.common.environment.uri.<A HREF="org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri">IURIFactory</A>)
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">java.lang.Exception<UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment"><B>EnvironmentException</B></A><UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment"><B>StatusException</B></A></UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri"><B>URIException</B></A></UL>
+</UL>
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="org/eclipse/wst/common/environment/IEnvironment.html" title="interface in org.eclipse.wst.common.environment"><B>IEnvironment</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="org/eclipse/wst/common/environment/ILog.html" title="interface in org.eclipse.wst.common.environment"><B>ILog</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.<A HREF="org/eclipse/wst/common/environment/IStatusHandler.html" title="interface in org.eclipse.wst.common.environment"><B>IStatusHandler</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURI</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="org/eclipse/wst/common/environment/uri/IURIFactory.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIFactory</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="org/eclipse/wst/common/environment/uri/IURIFilter.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIFilter</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="org/eclipse/wst/common/environment/uri/IURIScheme.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIScheme</B></A><LI TYPE="circle">org.eclipse.wst.common.environment.uri.<A HREF="org/eclipse/wst/common/environment/uri/IURIVisitor.html" title="interface in org.eclipse.wst.common.environment.uri"><B>IURIVisitor</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/package-list b/docs/org.eclipse.wst.common.api.doc/reference/envapi/package-list
new file mode 100644
index 0000000..ba5c8e9
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/package-list
@@ -0,0 +1,2 @@
+org.eclipse.wst.common.environment

+org.eclipse.wst.common.environment.uri

diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/resources/inherit.gif b/docs/org.eclipse.wst.common.api.doc/reference/envapi/resources/inherit.gif
new file mode 100644
index 0000000..c814867
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/resources/inherit.gif
Binary files differ
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/serialized-form.html b/docs/org.eclipse.wst.common.api.doc/reference/envapi/serialized-form.html
new file mode 100644
index 0000000..0a9b8d8
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/serialized-form.html
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0) on Tue May 20 13:02:57 EDT 2008 -->
+<TITLE>
+Serialized Form
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Serialized Form";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Serialized Form</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>org.eclipse.wst.common.environment</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="org.eclipse.wst.common.environment.EnvironmentException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">org.eclipse.wst.common.environment.EnvironmentException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>3978983275899402036L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+status</H3>
+<PRE>
+org.eclipse.core.runtime.IStatus <B>status</B></PRE>
+<DL>
+<DD>The status for this exception.
+<P>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="org.eclipse.wst.common.environment.StatusException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="org/eclipse/wst/common/environment/StatusException.html" title="class in org.eclipse.wst.common.environment">org.eclipse.wst.common.environment.StatusException</A> extends <A HREF="org/eclipse/wst/common/environment/EnvironmentException.html" title="class in org.eclipse.wst.common.environment">EnvironmentException</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>3618141160322119992L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+choice</H3>
+<PRE>
+<A HREF="org/eclipse/wst/common/environment/Choice.html" title="class in org.eclipse.wst.common.environment">Choice</A> <B>choice</B></PRE>
+<DL>
+<DD>The Choice that lead to the exception being thrown,
+ if any (ie. may be null).
+<P>
+<DL>
+</DL>
+</DL>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>org.eclipse.wst.common.environment.uri</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="org.eclipse.wst.common.environment.uri.URIException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="org/eclipse/wst/common/environment/uri/URIException.html" title="class in org.eclipse.wst.common.environment.uri">org.eclipse.wst.common.environment.uri.URIException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>3258130271424756018L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+status</H3>
+<PRE>
+org.eclipse.core.runtime.IStatus <B>status</B></PRE>
+<DL>
+<DD>A Status object containing details about the exception,
+ if applicable.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+uri</H3>
+<PRE>
+<A HREF="org/eclipse/wst/common/environment/uri/IURI.html" title="interface in org.eclipse.wst.common.environment.uri">IURI</A> <B>uri</B></PRE>
+<DL>
+<DD>The IURI for which the exception occured,
+ if applicable.
+<P>
+<DL>
+</DL>
+</DL>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/envapi/stylesheet.css b/docs/org.eclipse.wst.common.api.doc/reference/envapi/stylesheet.css
new file mode 100644
index 0000000..14c3737
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/envapi/stylesheet.css
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */

+

+/* Define colors, fonts and other style attributes here to override the defaults */

+

+/* Page background color */

+body { background-color: #FFFFFF }

+

+/* Headings */

+h1 { font-size: 145% }

+

+/* Table colors */

+.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */

+.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */

+.TableRowColor         { background: #FFFFFF } /* White */

+

+/* Font used in left-hand frame lists */

+.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif }

+.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }

+.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }

+

+/* Navigation bar fonts and colors */

+.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */

+.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */

+.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}

+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}

+

+.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}

+.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}

+

diff --git a/docs/org.eclipse.wst.common.api.doc/reference/ext/index.html b/docs/org.eclipse.wst.common.api.doc/reference/ext/index.html
new file mode 100644
index 0000000..6d4e5e1
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/ext/index.html
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+		<html xmlns:xalan="http://xml.apache.org/xslt">
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<meta name="copyright" content="Copyright (c) 2008 IBM Corporation and others. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
+
+   		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   		<title>URI resolver Extension Points</title>
+		<LINK REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
+		</head>
+<body link="#0000FF" vlink="#800080">
+<center>
+<h1>URI resolver Extension Points </h1>
+</center>The following extension points can be used to extend the capabilities of the URI resolver. <h3>
+<a name="uriresolver"></a>URI Resolver API</h3>
+<ul>
+<li>
+<a href="org_eclipse_wst_common_uriresolver_resolverExtensions.html">org.eclipse.wst.common.uriresolver.resolverExtensions</a>
+</li>
+</ul>
+</body>
+</html>
diff --git a/docs/org.eclipse.wst.common.api.doc/reference/ext/org_eclipse_wst_common_uriresolver_resolverExtensions.html b/docs/org.eclipse.wst.common.api.doc/reference/ext/org_eclipse_wst_common_uriresolver_resolverExtensions.html
new file mode 100644
index 0000000..a8951b1
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/reference/ext/org_eclipse_wst_common_uriresolver_resolverExtensions.html
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>URI Resolver Extensions Point</title>
+<style type="text/css">@import url("../../book.css");</style>
+<style type="text/css">@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1 style="text-align:center">URI Resolver Extensions Point</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.wst.common.uriresolver.resolverExtensions<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6><b>This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.</b>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>The URI Resolver Extensions point allows clients to register custom URI resolvers that will be used in the resolution of resources by tools such as editors, generators, validators, and wizards.<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.resolverExtension">resolverExtension</a>+)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>point</b> - a fully qualified identifier of the target extension point</li>
+<li><b>id</b> - an optional identifier of the extension instance</li>
+<li><b>name</b> - an optional name of the extension instance</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.resolverExtension">resolverExtension</a> (<a href="#e.projectNature">projectNature</a>*)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST resolverExtension</p>
+<p class="code SchemaDtdAttlist">stage&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">class&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">priority&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>stage</b> - The stage in which to run this extension resolver: prenormalization, postnormalization, or physical. Defaults to postnormalization.<br>
+prenormalization:  run before normalization of the input<br>
+postnormalization: run after normalization of the input<br>
+physical:          run after all pre and postnormalization resolvers</li>
+<li><b>class</b> - The class that implements <code>org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver</code>.</li>
+<li><b>priority</b> - The priority of this resolver: high, medium, or low. Defaults to medium. The priority allows you to specify when this resolver should run with respect to other resolvers defined for the same stage.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.projectNature">projectNature</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST projectNature</p>
+<p class="code SchemaDtdAttlist">value&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+If a project nature is specified the URI resolver will only be used for projects that contain one of the specified project natures. If no project natures are specified the URI resolver will be used for all projects.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>value</b> - A project nature ID for which the URI resolver should be used.</li>
+</ul>
+<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>The following is an example of an URI resolver contribution:
+<pre class="Example"><span class="code SchemaTag">
+   &lt;extension
+         point=</span><span class="code SchemaCstring">&quot;org.eclipse.wst.common.uriresolver.resolverExtensions&quot;</span><span class="code SchemaTag">&gt;
+      &lt;resolverExtension
+            stage=</span><span class="code SchemaCstring">&quot;physical&quot;</span><span class="code SchemaTag">
+            priority=</span><span class="code SchemaCstring">&quot;low&quot;</span><span class="code SchemaTag">
+            class=</span><span class="code SchemaCstring">&quot;org.eclipse.wst.common.uriresolver.SampleResolver&quot;</span><span class="code SchemaTag">&gt;
+      &lt;/resolverExtension&gt;
+   &lt;/extension&gt;
+</span></pre>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6><code>
+org.eclipse.wst.common.componentcore.internal.util.ComponentResolver
+</code>
+provides an URI resolver that resolves references in a project with multiple components
+<code>
+org.eclipse.wst.internet.cache.internal.CacheURIResolverExtension
+</code>
+provides an URI resolver that resolves references in a cache
+<code>
+org.eclipse.wst.xml.core.internal.catalog.XMLCatalogURIResolverExtension
+</code>
+provides an URI resolver that resolves references from an XML catalog
+<p></p>
+
+<br>
+<p class="note SchemaCopyright">
+Copyright (c) 2000, 2008 IBM Corporation and others.<br>
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at <a
+href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+
+</p>
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.common.api.doc/schema.css b/docs/org.eclipse.wst.common.api.doc/schema.css
new file mode 100644
index 0000000..4efbf26
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/schema.css
@@ -0,0 +1,66 @@
+H6.CaptionFigColumn#header {

+	font-size:16px; 

+	display:inline

+}

+

+P.Note#copyright {

+	font-size: smaller; 

+	font-style: normal;

+	color: #336699; 

+	display:inline;

+	margin-top: 3.000000pt;

+	margin-bottom: 11.000000pt;

+	margin-right: 0.000000pt;

+	margin-left: 0.000000pt;

+}

+

+P.Code#dtd {

+	color: #800000; 

+	margin-top: 0.000000pt;

+	margin-bottom: 0.000000pt;

+	margin-right: 0.000000pt;

+	margin-left: 10.000000pt;

+}

+

+P.Code#dtdAttlist {

+	color: #800000; 

+	margin-top: 0.000000pt;

+	margin-bottom: 0.000000pt;

+	margin-right: 0.000000pt;

+	margin-left: 20.000000pt;

+}

+

+P.Code#tag {

+	color: #000080; 

+	display:inline;

+	margin-top: 0.000000pt;

+	margin-bottom: 0.000000pt;

+	margin-right: 0.000000pt;

+	margin-left: 0.000000pt;

+}

+

+P.Code#cstring {

+	color: #008000; 

+	display:inline;

+	margin-top: 0.000000pt;

+	margin-bottom: 0.000000pt;

+	margin-right: 0.000000pt;

+	margin-left: 0.000000pt;	

+}

+

+.ConfigMarkup#elementDesc {

+	color: black;

+	margin-top: 0.000000pt;

+	margin-bottom: 0.000000pt;

+	margin-right: 0.000000pt;

+	margin-left: 10.000000pt;

+}

+

+.ConfigMarkup#attlistDesc {

+	color: black;

+	margin-top: 0.000000pt;

+	margin-bottom: 0.000000pt;

+	margin-right: 0.000000pt;

+	margin-left: 32.000000pt;

+}

+

diff --git a/docs/org.eclipse.wst.common.api.doc/topicsEnv_Reference.xml b/docs/org.eclipse.wst.common.api.doc/topicsEnv_Reference.xml
new file mode 100644
index 0000000..3dd6ac0
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/topicsEnv_Reference.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+<!-- ============================================================================= -->
+<!-- Define topics for the references                                              -->
+<!-- ============================================================================= -->
+<toc label="Environment reference" link_to="../org.eclipse.wst.doc.user/reference_toc.xml#javadoc_common">
+	<topic label="Environment framework API Reference" href="reference/envapi/index.html">
+	
+		<!-- The envjavadoctoc.xml toc is generated by the build. -->
+		<link toc="envjavadoctoc.xml" />
+	</topic>	
+	
+	<topic label="URI Resolver API Reference" href="reference/ext/index.html">
+	
+		<!-- The topics_ExtPoint_Reference.xml toc is generated by the build. -->
+		<link toc="topics_ExtPoint_Reference.xml" />
+	</topic>	
+	
+</toc>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.common.api.doc/topics_ExtPoint_Reference.xml b/docs/org.eclipse.wst.common.api.doc/topics_ExtPoint_Reference.xml
new file mode 100644
index 0000000..ca1ea1a
--- /dev/null
+++ b/docs/org.eclipse.wst.common.api.doc/topics_ExtPoint_Reference.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?NLS TYPE="org.eclipse.help.toc"?>
+	 	<toc label="Extension Points Reference">
+<topic label="org.eclipse.wst.common.uriresolver.resolverExtensions" href="reference/ext/org_eclipse_wst_common_uriresolver_resolverExtensions.html"/>
+</toc>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/.project b/docs/org.eclipse.wst.validation.doc.isv/.project
new file mode 100644
index 0000000..ae8f06d
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.wst.validation.doc.isv</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/META-INF/MANIFEST.MF b/docs/org.eclipse.wst.validation.doc.isv/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f261572
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-SymbolicName: org.eclipse.wst.validation.doc.isv; singleton:=true
+Bundle-Version: 1.2.200.qualifier
+Bundle-Vendor: %Bundle-Vendor.0
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.help.ui;bundle-version="[3.2.0,4.0.0)"
diff --git a/docs/org.eclipse.wst.validation.doc.isv/README.TXT b/docs/org.eclipse.wst.validation.doc.isv/README.TXT
new file mode 100644
index 0000000..7e82c47
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/README.TXT
@@ -0,0 +1,44 @@
+----------------------------------------------------------------------------------
+--						Generating JavaDoc and Extension Point Documentation for 					--
+--						org.eclipse.wst.validation.doc.isv plug-in						--
+--								2008/05/20	(GRK)								--
+----------------------------------------------------------------------------------
+
+Intro:
+	This tool and readme was extracted from an example done by the JSF team. It was
+	then adopted to generate the JavaDocs and Ext-Pt for validation.
+	
+	
+JavaDoc Generation Task
+	Intro:
+		The javadocBuild.xml file is used to create the reference javadocs. It hard codes the package
+		names into the Ant script, so if API packages are added or removed this will need to be updated.   
+			
+	Setup:
+		- ensure that the org.eclipse.wst.validation plug-in is present in the workspace
+		
+	Generate:
+		1) select javadocBuild.xml file in project explorer
+		2) Run as "Ant Build..." --> JRE Tab, ensure that "Run in same JRE as Workspace" is selected
+		
+	Sanity Test:
+		1) Directly select the API packages in the org.eclipse.wst.validation plug-in.
+		2) Use the Export->Javadoc command to generate javadoc into a temporary directory.
+		3) Examine the Console for warnings and errors. Fix as necessary.
+	
+Extension-point References Task
+	Intro:
+		The listed-ext-points property in buildExtDocs.properties file is used to generate 
+		the HTML documentation from the schemas.   This list must be verified for accuracy 
+		and is not generated like the Javadoc API packages are.
+				
+	Generate:
+		1) select buildExtDocs.xml file in project explorer
+		2) Run as "Ant Build..." --> JRE Tab, ensure that "Run in same JRE as Workspace" is 
+		selected
+
+Checking-in:
+	Check in:
+	- any changes made in this project
+
+		
diff --git a/docs/org.eclipse.wst.validation.doc.isv/about.html b/docs/org.eclipse.wst.validation.doc.isv/about.html
new file mode 100644
index 0000000..2199df3
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/about.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+
+<BODY lang="EN-US">
+
+<H3>About This Content</H3>
+
+<P>June, 2008</P>
+
+<H3>License</H3>
+
+<P>The Eclipse Foundation makes available all content in this plug-in 
+("Content"). Unless otherwise indicated below, the Content is provided to you 
+under the terms and conditions of the Eclipse Public License Version 1.0 
+("EPL"). A copy of the EPL is available at
+<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
+For purposes of the EPL, "Program" will mean the Content.</P>
+
+<P>If you did not receive this Content directly from the Eclipse Foundation, the 
+Content is being redistributed by another party ("Redistributor") and different 
+terms and conditions may apply to your use of any object code in the Content. 
+Check the Redistributor’s license that was provided with the Content. If no such 
+license exists, contact the Redistributor. Unless otherwise indicated below, the 
+terms and conditions of the EPL still apply to any source code in the Content 
+and such source code may be obtained at
+<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/book.css b/docs/org.eclipse.wst.validation.doc.isv/book.css
new file mode 100644
index 0000000..84d8880
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/book.css
@@ -0,0 +1 @@
+@import "../PRODUCT_PLUGIN/book.css";
diff --git a/docs/org.eclipse.wst.validation.doc.isv/build.properties b/docs/org.eclipse.wst.validation.doc.isv/build.properties
new file mode 100644
index 0000000..1a2e751
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/build.properties
@@ -0,0 +1,7 @@
+bin.includes = plugin.xml,\
+               META-INF/,\
+               plugin.properties,\
+               reference/,\
+               toc.xml,\
+               topics_ExtPoint_Reference.xml,\
+               about.html
diff --git a/docs/org.eclipse.wst.validation.doc.isv/buildExtDocs.properties b/docs/org.eclipse.wst.validation.doc.isv/buildExtDocs.properties
new file mode 100644
index 0000000..1a7455d
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/buildExtDocs.properties
@@ -0,0 +1,24 @@
+###############################################################################
+# Copyright (c) 2008 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+################################################################
+# Information for extension point overview document
+################################################################
+# Overview document title
+
+title = Validation Framework Extension Points
+header = Validation Framework Extension Points 
+# Introduction paragraph
+overview = The following extension points can be used to add new validators: 
+# A list of the extension points that should be included in the
+# extension point documentation.
+
+listed-ext-points=org.eclipse.wst.validation.validatorV2,\
+org.eclipse.wst.validation.validatorGroup
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.doc.isv/buildExtDocs.xml b/docs/org.eclipse.wst.validation.doc.isv/buildExtDocs.xml
new file mode 100644
index 0000000..c49b574
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/buildExtDocs.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="Build Extension Point Documentation" default="createExtDocs" basedir=".">
+
+	<property file="buildExtDocs.properties"/>
+	<property name="outputDir" value="${basedir}/reference/extension-points"/>
+	<property name="vfOutputDir" value="${outputDir}${file.separator}vf${file.separator}"/>
+
+	<!-- <taskdef name="pde.convertSchemaToHTML" classname="org.eclipse.pde.internal.core.ant.ConvertSchemaToHTML"/> -->
+	
+	<target name="createExtDocs" depends="buildExtDocs, createDocListings"/>
+	
+	<target name="buildExtDocs" depends="buildVFExtDocs"/>
+		
+ 	<target name="buildVFExtDocs">
+ 		<mkdir dir="${vfOutputDir}"/>
+ 		<!-- cleanup old -->
+ 		<delete>
+ 	 		<fileset dir="${vfOutputDir}" casesensitive="yes" id="ext-docs-list-ent">
+ 	 			<include name="*.html"/>
+ 			</fileset>
+ 		</delete>
+ 		
+ 		<!-- generate new html from ext-pt schemas -->
+ 		<pde.convertSchemaToHTML manifest="../org.eclipse.wst.validation/plugin.xml" destination="${vfOutputDir}" />
+ 		
+ 		<!-- Get the list of extension doc files. -->
+ 		<fileset dir="${vfOutputDir}" casesensitive="yes" id="ext-docs-list-ent">
+ 			<include name="*.html"/>
+		</fileset>
+ 		
+ 		<!-- Convert the list to an XML representation. -->
+ 		<pathconvert property="ext-doc-ent" refid="ext-docs-list-ent" pathsep="&lt;/file&gt;/n/n&lt;file&gt;">
+ 			<map from="${vfOutputDir}" to=""/>
+ 		</pathconvert>
+ 		 						
+ 	</target>
+	
+	<target name="createDocListings">
+		<delete file="${outputDir}${file.separator}index.html"/>
+		<!-- Create the overview document. -->
+		<xslt basedir="${basedir}" in="extDocListings.xml" out="${outputDir}${file.separator}index.html" style="extDocOverview.xsl">
+	  		<param name="title" expression="${title}"/>
+	  		<param name="header" expression="${header}"/>
+	  		<param name="overview" expression="${overview}"/>
+			<param name="listed-ext-points" expression="${listed-ext-points}"/>
+		</xslt>
+			
+		<!-- Create the extention point toc. -->
+		<xslt basedir="${basedir}" in="extDocListings.xml" out="topics_ExtPoint_Reference.xml" style="extDocToc.xsl">
+			<param name="listed-ext-points" expression="${listed-ext-points}"/>
+			<outputproperty name="method" value="xml"/>
+			<outputproperty name="indent" value="yes"/>
+		</xslt>
+			
+	</target>
+</project>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.doc.isv/extDocListings.xml b/docs/org.eclipse.wst.validation.doc.isv/extDocListings.xml
new file mode 100644
index 0000000..16f5ec8
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/extDocListings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components>
+	<component name="Validation Framework" id="vf" file="vfextdocs.xml"/>
+</components>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/extDocOverview.xsl b/docs/org.eclipse.wst.validation.doc.isv/extDocOverview.xsl
new file mode 100644
index 0000000..2ad1987
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/extDocOverview.xsl
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version="1.0"
+    xmlns:xalan="http://xml.apache.org/xslt">
+    <xsl:param name="title"/>
+    <xsl:param name="header"/>
+    <xsl:param name="overview"/>
+    <xsl:param name="listed-ext-points"/>
+    
+    <xsl:template match="components">
+    	
+    	<xsl:text disable-output-escaping="yes">
+    	&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"&gt;
+		</xsl:text>
+		<html>
+		<head>
+		<xsl:text disable-output-escaping="yes">
+		&lt;meta name="copyright" content="Copyright (c) Oracle Corporation and others 2000, 2008. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." &gt;
+
+   		&lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&gt;
+   		</xsl:text>
+   		<title><xsl:value-of select="$title"/></title>
+   		<xsl:text disable-output-escaping="yes">
+		&lt;LINK REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css"&gt;
+		</xsl:text>
+		</head>
+		<body link="#0000FF" vlink="#800080">
+
+		<center>
+		<h1><xsl:value-of select="$header"/></h1>
+		</center>
+
+		<xsl:value-of select="$overview"/>
+    	<xsl:for-each select="component">
+    		<xsl:sort select="@id"/>
+    		<h3><a name="{@id}"></a><xsl:value-of select="@name"/></h3>
+    		<ul>
+    			<xsl:for-each select="document(@file)/files/file">
+    				<xsl:sort select="text()"/>
+    				<xsl:if test="contains($listed-ext-points, translate(substring(text(), 0, string-length(text()) - 4),'_','.'))">
+  						<li>
+  							<a href="{../@component}/{text()}"><xsl:value-of select="translate(substring(text(), 0, string-length(text()) - 4),'_','.')"/></a> 
+  						</li>
+  					</xsl:if>
+    			</xsl:for-each>
+    		</ul>
+    	</xsl:for-each>
+    	</body>
+		</html>
+    </xsl:template>
+</xsl:stylesheet>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/extDocToc.xsl b/docs/org.eclipse.wst.validation.doc.isv/extDocToc.xsl
new file mode 100644
index 0000000..30e54b8
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/extDocToc.xsl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version="1.0"
+    xmlns:xalan="http://xml.apache.org/xslt"
+    exclude-result-prefixes="xalan">
+    <xsl:param name="listed-ext-points"/>
+    
+     <xsl:template match="components">
+     	<xsl:text disable-output-escaping="yes">
+&lt;?NLS TYPE="org.eclipse.help.toc"?&gt;
+	 	</xsl:text>
+	 	<toc label="Extension Points Reference">
+	 		<xsl:for-each select="document(component/@file)/files/file">
+	 			<xsl:sort select="text()"/>
+	 			<xsl:if test="contains($listed-ext-points, translate(substring(text(), 0, string-length(text()) - 4),'_','.'))">
+	 				<topic label="{translate(substring(text(), 0, string-length(text()) - 4),'_','.')}" href="reference/extension-points/{../@component}/{text()}">
+	 				</topic>
+	 			</xsl:if>
+	 		</xsl:for-each>
+	 	</toc> 
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/javadoc.properties b/docs/org.eclipse.wst.validation.doc.isv/javadoc.properties
new file mode 100644
index 0000000..316b8bb
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/javadoc.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2008 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+api.title=Web Tools Platform: Validation Framework
+sourcepath=../org.eclipse.wst.validation/vf2;../org.eclipse.wst.validation/validate_core
+api.packages=org.eclipse.wst.validation,org.eclipse.wst.validation.internal.provisional.core
+
+
+
+
diff --git a/docs/org.eclipse.wst.validation.doc.isv/javadocBuild.xml b/docs/org.eclipse.wst.validation.doc.isv/javadocBuild.xml
new file mode 100644
index 0000000..196c515
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/javadocBuild.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="main" basedir=".">
+
+	<property file="javadoc.properties" />
+	<property name="outputDir" value="${basedir}"/>
+	<property name="eclipse.home" value="${basedir}/.."/>
+	
+	<target name="main" depends="clean, javadoc" description="Builds Plugin Javadoc" />
+	
+	<target name="clean">
+		<delete>
+			<fileset dir="${outputDir}/reference/api/" >
+				<include name="**/*.html"/>
+			</fileset>
+		</delete>
+	</target>
+
+	<target name="javadoc">
+		<echo message="========= ${eclipse.home}"/>
+		<mkdir dir="${outputDir}/reference/api" />
+
+		<javadoc 
+        	access="public" 
+    		additionalparam="-breakiterator"
+			author="false" 
+			classpath="${classpath}" 
+			destdir="${outputDir}/reference/api" 
+			doctitle="${api.title}" 
+			nodeprecated="false" 
+			nodeprecatedlist="false" 
+			noindex="true" 
+			nonavbar="false" 
+			notree="true" 
+        	overview="${basedir}/overview.html"
+			packagenames="${api.packages}" 
+			sourcepath="${sourcepath}" 
+			use="true" 
+			version="true"
+			breakiterator="yes"
+        	verbose="false"
+        	failonerror="false">
+			<tag name="ignore"     description="ignore" enabled="false"/>
+			<tag name="generated"  description="ignore" enabled="false"/>
+			<tag name="model"      description="ignore" enabled="false"/>
+			<tag name="modifiable" description="ignore" enabled="false"/>
+			<tag name="extends"    description="ignore" enabled="false"/>
+			<tag name="implements" description="ignore" enabled="false"/>
+			<tag name="ordered"    description="ignore" enabled="false"/>
+		</javadoc>
+	</target>
+
+</project>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.doc.isv/overview.html b/docs/org.eclipse.wst.validation.doc.isv/overview.html
new file mode 100644
index 0000000..e71ef7f
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/overview.html
@@ -0,0 +1,88 @@
+<html>
+<head>
+<title>Validation Framework Overview</title>
+</head>
+<body>
+<p>A framework for calling validators that are build based.</p>
+<h2>Approach</h2>
+<p>In WTP 3.0 a new validation framework has been added. This was developed at 
+the request of validator owners and end users. To ease the transition to this 
+new framework, that approach that has been taken is to support both the old and 
+the new frameworks for a while. This means that the old validators work exactly 
+like they used to. They can still plug into the old framework and will continue 
+to be run by the old framework. This allows validator owners to migrate at their 
+own pace.</p>
+<p>For validator owners that wish to exploit the new framework, it has been 
+designed n such a way to minimize the transition from the old framework to the 
+new framework. There is a new extension point that needs to be specified, and a 
+new abstract class that needs to be extended.</p>
+<h3>Benefits</h3>
+<p>What benefits does the new framework have to offer? Or asked another way, as 
+a validator owner, why would I want to switch?</p>
+<h4>Performance</h4>
+<h5>Tuning</h5>
+<p>The main reason for creating a new framework was to improve performance. As 
+more and more validators are added, validation is consuming a bigger slice of 
+the resources that it takes to perform a build.</p>
+<p>The best performance improvement is eliminating unnecessary work. We 
+eliminate work, by providing significantly more tuning options. Validation 
+owners can tune which resources they are called on. This is done through the use 
+of filter rules. These filter rules are grouped into inclusion and exclusion 
+groups. If you have multiple inclusion groups they are &quot;anded&quot; together, meaning 
+that each of the inclusion groups must have at least one successful filter rule. 
+Exclusion groups are used to specify what doesn't get validated. Exclusion 
+groups have a higher precedence than inclusion groups. If an exclusion group 
+excludes a resource than it is excluded no matter what the inclusion groups may 
+say.</p>
+<p>They are several different types of filter rules:</p>
+<ul>
+	<li><strong>File extension</strong> - Rules based on the file extension. For 
+	example, include all the files with extension *.xml.</li>
+	<li><strong>Folder or File name</strong> - Rules based on the folder or file 
+	name. For example exclude all the resources in the build folder. File names 
+	can be fully qualified, project relative names, e.g. <strong>WebContent/WEB-INF/web.xml</strong>, 
+	or simple names, <strong>web.xml</strong>.</li>
+	<li><strong>Project nature</strong> - Projects with certain natures can be 
+	either included or excluded.</li>
+	<li><strong>Facet</strong> - Projects with certain facets can be either 
+	included or excluded.</li>
+	<li><strong>Content Type </strong>- Resources of a particular content type 
+	can be included or excluded.</li>
+</ul>
+<p>The filter rules and groups form the building blocks of what gets validated.
+</p>
+<p>In terms of tuning however, the end user has the final say. The validator 
+owners specify the default filter rules and groups for their validator, but the 
+end user through the use of preferences can override these settings. </p>
+<h5>Caching</h5>
+<p>Another way that performance is improved is through more effective caching. 
+With the previous framework we were noticing that different validators would be 
+opening and processing the same file, but that this would happen far enough 
+apart, that caches weren't effective. Even if files were being cached, the 
+second (or third, or forth, ...) open would happen far enough a means that way 
+that the file would have already been evicted from the cache. In the new 
+framework, the processing order is more tightly controlled. The framework calls 
+the validator and tells it what to validate. This way files are processed in 
+order, which means that the chance of them being a cache is much higher. Every 
+validator that is interested in file A processes it, and then we move on and 
+every validator that is interested in file B processes it, etc.</p>
+<p>Also because state information is kept for the lifetime of the validation 
+operation, validators can cache expensive operations, like model creation, that 
+might be needed as part of validating several files. </p>
+<h5>Job Control</h5>
+<p>With the earlier framework, there were too many jobs/threads running 
+concurrently. This is now more tightly controlled.</p>
+<h4>Dependency Support</h4>
+<p>Another new feature is dependency support. A validator can now assert that a 
+resource is dependant on some other resources. For example that a XML file is 
+dependant on a XSD file. Now if the XSD file changes the XML can be revalidated. 
+As the user comes to trust this dependency support, they wont perform as many 
+clean builds.</p>
+<h4>Primary Framework</h4>
+<p>This is the primary validation framework. At some point, the earlier 
+framework will be deprecated and then removed. All the new investment will 
+happen in this framework. </p>
+<p>The framework collateral will continue to be enhanced (junit testcases, 
+documentation, performance improvements, ...)</p>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.doc.isv/plugin.properties b/docs/org.eclipse.wst.validation.doc.isv/plugin.properties
new file mode 100644
index 0000000..94b985b
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/plugin.properties
@@ -0,0 +1,14 @@
+###############################################################################
+# Copyright (c) 2008 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+Bundle-Name.0 = Validation Framework - Developer Guide
+Bundle-Vendor.0 = Eclipse Web Tools Platform
+
diff --git a/docs/org.eclipse.wst.validation.doc.isv/plugin.xml b/docs/org.eclipse.wst.validation.doc.isv/plugin.xml
new file mode 100644
index 0000000..6a75a5b
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.help.toc">
+      <toc
+            file="toc.xml">
+      </toc>
+   </extension>
+
+</plugin>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/allclasses-frame.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/allclasses-frame.html
new file mode 100644
index 0000000..2804d46
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/allclasses-frame.html
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+All Classes
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation" target="classFrame">AbstractValidator</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation" target="classFrame">DependentResource</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Friend.html" title="class in org.eclipse.wst.validation" target="classFrame">Friend</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation" target="classFrame"><I>IDependencyIndex</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IMessage</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IMetaModelContext</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation" target="classFrame"><I>IMutableValidator</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation" target="classFrame"><I>IPerformanceMonitor</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation" target="classFrame">IPerformanceMonitor.CollectionLevel</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IProjectValidationContext</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IReporter</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IValidationContext</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IValidator</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/IValidatorGroupListener.html" title="interface in org.eclipse.wst.validation" target="classFrame"><I>IValidatorGroupListener</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IValidatorJob</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" title="class in org.eclipse.wst.validation.internal.provisional.core" target="classFrame">MessageLimitException</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation" target="classFrame">MessageSeveritySetting</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation" target="classFrame">MessageSeveritySetting.Severity</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation" target="classFrame">MutableProjectSettings</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation" target="classFrame">MutableWorkspaceSettings</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation" target="classFrame">PerformanceCounters</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation" target="classFrame">ReporterHelper</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationEvent</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationFramework</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationFramework.ResourceAdder</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationResult</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationResults</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationState</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation" target="classFrame">Validator</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation" target="classFrame">Validator.Level</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation" target="classFrame">Validator.V1</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation" target="classFrame">Validator.V1.V1Copy</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation" target="classFrame">Validator.V2</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidatorMessage</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/allclasses-noframe.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/allclasses-noframe.html
new file mode 100644
index 0000000..85aa704
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/allclasses-noframe.html
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+All Classes
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation">DependentResource</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Friend.html" title="class in org.eclipse.wst.validation">Friend</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation"><I>IDependencyIndex</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><I>IMessage</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><I>IMetaModelContext</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation"><I>IMutableValidator</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation"><I>IPerformanceMonitor</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><I>IProjectValidationContext</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><I>IReporter</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><I>IValidationContext</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><I>IValidator</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/IValidatorGroupListener.html" title="interface in org.eclipse.wst.validation"><I>IValidatorGroupListener</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><I>IValidatorJob</I></A>
+<BR>
+<A HREF="org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" title="class in org.eclipse.wst.validation.internal.provisional.core">MessageLimitException</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation">ReporterHelper</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation">ValidationFramework</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation">ValidationFramework.ResourceAdder</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation">Validator.V1.V1Copy</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A>
+<BR>
+<A HREF="org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/constant-values.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/constant-values.html
new file mode 100644
index 0000000..b2482ce
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/constant-values.html
@@ -0,0 +1,232 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Constant Field Values
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Constant Field Values";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#org.eclipse">org.eclipse.*</A>
+</UL>
+
+<A NAME="org.eclipse"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left"><FONT SIZE="+2">
+org.eclipse.*</FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">org.eclipse.wst.validation.<A HREF="org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.validation.ValidatorMessage.ValidationId"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/validation/ValidatorMessage.html#ValidationId">ValidationId</A></CODE></TD>
+<TD ALIGN="right"><CODE>"ValidationId"</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">org.eclipse.wst.validation.internal.provisional.core.<A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.validation.internal.provisional.core.IMessage.ALL_MESSAGES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html#ALL_MESSAGES">ALL_MESSAGES</A></CODE></TD>
+<TD ALIGN="right"><CODE>7</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.validation.internal.provisional.core.IMessage.ERROR_AND_WARNING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html#ERROR_AND_WARNING">ERROR_AND_WARNING</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.validation.internal.provisional.core.IMessage.HIGH_SEVERITY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html#HIGH_SEVERITY">HIGH_SEVERITY</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.validation.internal.provisional.core.IMessage.LINENO_UNSET"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html#LINENO_UNSET">LINENO_UNSET</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.validation.internal.provisional.core.IMessage.LOW_SEVERITY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html#LOW_SEVERITY">LOW_SEVERITY</A></CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.validation.internal.provisional.core.IMessage.NORMAL_SEVERITY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html#NORMAL_SEVERITY">NORMAL_SEVERITY</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.validation.internal.provisional.core.IMessage.OFFSET_UNSET"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html#OFFSET_UNSET">OFFSET_UNSET</A></CODE></TD>
+<TD ALIGN="right"><CODE>-1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.wst.validation.internal.provisional.core.IMessage.TargetResource"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/wst/validation/internal/provisional/core/IMessage.html#TargetResource">TargetResource</A></CODE></TD>
+<TD ALIGN="right"><CODE>"TargetResource"</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/deprecated-list.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/deprecated-list.html
new file mode 100644
index 0000000..1557af7
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/deprecated-list.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Deprecated List
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Deprecated List";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#exception">Deprecated Exceptions</A>
+<LI><A HREF="#field">Deprecated Fields</A>
+<LI><A HREF="#method">Deprecated Methods</A>
+</UL>
+
+<A NAME="exception"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Deprecated Exceptions</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" title="class in org.eclipse.wst.validation.internal.provisional.core">org.eclipse.wst.validation.internal.provisional.core.MessageLimitException</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>This class is not longer used by the framework. The framework is
+  not going to limit the number of messages displayed by a validator.</I>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="field"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Deprecated Fields</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="org/eclipse/wst/validation/ValidationState.html#TriggerResource">org.eclipse.wst.validation.ValidationState.TriggerResource</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>This approach is not thread safe, the longer form of the AbstractValidator validate method should be used instead.</I>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="method"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Deprecated Methods</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="org/eclipse/wst/validation/ValidationFramework.html#getValidator(java.lang.String)">org.eclipse.wst.validation.ValidationFramework.getValidator(String)</A>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I>Use getValidator(String id, IProject project) with a null project instead.</I>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/help-doc.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/help-doc.html
new file mode 100644
index 0000000..8c436e4
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/help-doc.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+API Help
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="API Help";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Overview</H3>
+<BLOCKQUOTE>
+
+<P>
+The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
+<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Annotation Type</H3>
+<BLOCKQUOTE>
+
+<P>
+Each annotation type has its own separate page with the following sections:<UL>
+<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
+</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Enum</H3>
+<BLOCKQUOTE>
+
+<P>
+Each enum has its own separate page with the following sections:<UL>
+<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
+</BLOCKQUOTE>
+<H3>
+Use</H3>
+<BLOCKQUOTE>
+Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames.  All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<H3>
+Constant Field Values</H3>
+The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/index.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/index.html
new file mode 100644
index 0000000..3f37e39
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Tue Jan 27 04:28:33 EST 2009-->
+<TITLE>
+Generated Documentation (Untitled)
+</TITLE>
+<SCRIPT type="text/javascript">
+    targetPage = "" + window.location.search;
+    if (targetPage != "" && targetPage != "undefined")
+        targetPage = targetPage.substring(1);
+    if (targetPage.indexOf(":") != -1)
+        targetPage = "undefined";
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+</HEAD>
+<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
+<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
+<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</FRAMESET>
+<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="overview-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/AbstractValidator.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/AbstractValidator.html
new file mode 100644
index 0000000..ffa763f
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/AbstractValidator.html
@@ -0,0 +1,468 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:32 EST 2009 -->
+<TITLE>
+AbstractValidator
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="AbstractValidator";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AbstractValidator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/AbstractValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="AbstractValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class AbstractValidator</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.AbstractValidator</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>AbstractValidator</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The class that all Validators that wish to use version two of the validation framework must subclass.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html#AbstractValidator()">AbstractValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html#clean(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">clean</A></B>(IProject&nbsp;project,
+      <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+      IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call back method that lets the validator know that the project is being
+ cleaned.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html#getParent()">getParent</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validator that you belong to.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html#shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)">shouldClearMarkers</A></B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Should the validation framework first clear the markers that this
+ validator has placed on this resource?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html#validate(IResource, int, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html#validate(org.eclipse.wst.validation.ValidationEvent, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validate</A></B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event,
+         <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A></B>(IProject&nbsp;project,
+                    <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                    IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called when validation is complete.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></B>(IProject&nbsp;project,
+                   <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                   IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is called before any validation takes place.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="AbstractValidator()"><!-- --></A><H3>
+AbstractValidator</H3>
+<PRE>
+public <B>AbstractValidator</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="validate(IResource, int, org.eclipse.wst.validation.ValidationState, IProgressMonitor)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A> <B>validate</B>(IResource&nbsp;resource,
+                                 int&nbsp;kind,
+                                 <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                                 IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>Validate the resource. The validator is called from a WorkspaceJob, so
+ the validator itself does not need to establish it's own IWorkspaceRunnable.
+ <p>
+ If you override this method then you should not override the other validate method.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource to be validated.<DD><CODE>kind</CODE> - The way the resource changed. It uses the same values as the kind
+                parameter in IResourceDelta.<DD><CODE>state</CODE> - A way to pass arbitrary, validator specific, data from one
+                invocation of a validator to the next, during the validation phase.
+                At the end of the validation phase, this object will be cleared,
+                thereby allowing any of this state information to be garbaged
+                collected.<DD><CODE>monitor</CODE> - A monitor that you can use to report your progress. To be a well
+                behaved validator you need to check the isCancelled() method at
+                appropriate times.
+<DT><B>Returns:</B><DD>the result of the validation. This may be, but usually isn't, null.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validate(org.eclipse.wst.validation.ValidationEvent, org.eclipse.wst.validation.ValidationState, IProgressMonitor)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A> <B>validate</B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event,
+                                 <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                                 IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>Validate the resource. The validator is called from a WorkspaceJob, so
+ the validator itself does not need to establish it's own
+ IWorkspaceRunnable.
+ <p>
+ If you override this method then you should not override the other
+ validate method.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>event</CODE> - An object that describes the resource to be validated and why
+            it should be validated.<DD><CODE>state</CODE> - A way to pass arbitrary, validator specific, data from one
+            invocation of a validator to the next, during the validation
+            phase. At the end of the validation phase, this object will be
+            cleared, thereby allowing any of this state information to be
+            garbaged collected.<DD><CODE>monitor</CODE> - A monitor that you can use to report your progress. To be a
+            well behaved validator you need to check the isCancelled()
+            method at appropriate times.
+<DT><B>Returns:</B><DD>the result of the validation. Null should never be returned. If
+         null is returned then the other validate method will be called as
+         well.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clean(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)"><!-- --></A><H3>
+clean</H3>
+<PRE>
+public void <B>clean</B>(IProject&nbsp;project,
+                  <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                  IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>A call back method that lets the validator know that the project is being
+ cleaned. This method gives the validator a chance to do any special
+ cleanup. The default is to do nothing.
+ <p>
+ If the entire workspace is being cleaned, then the first call will have a
+ null project, and then there will be subsequent calls for each open
+ project in the workspace.</p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - The project being cleaned. This may be null, which is an indication
+                that the workspace is being cleaned.<DD><CODE>state</CODE> - A way to pass arbitrary, validator specific, data from one
+                invocation of a validator to the next, during the validation phase.<DD><CODE>monitor</CODE> - The monitor that should be used for reporting progress if the clean
+                takes a long time.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)"><!-- --></A><H3>
+validationStarting</H3>
+<PRE>
+public void <B>validationStarting</B>(IProject&nbsp;project,
+                               <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                               IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>This method is called before any validation takes place. It allows
+ validators to perform any initialization that they might need.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - The project that is being validated. For the very first call in the
+                validation phase, this will be null. A null project is the signal
+                that a top level validation is starting. Subsequently, the project
+                will be set, as each of the individual projects are validated.<DD><CODE>state</CODE> - A way to pass arbitrary, validator specific, data from one
+                invocation of a validator to the next, during the validation phase.<DD><CODE>monitor</CODE> - The monitor that should be used for reporting progress if the initialization
+                takes a long time.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)"><!-- --></A><H3>
+validationFinishing</H3>
+<PRE>
+public void <B>validationFinishing</B>(IProject&nbsp;project,
+                                <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                                IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>This method will be called when validation is complete. It allows
+ validators to perform any cleanup that they might need to do.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - The project that was validated. The very last call in the validation
+                sets this to null so that the validator knows that all the
+                projects have now been validated.<DD><CODE>state</CODE> - A way to pass arbitrary, validator specific, data from one
+                invocation of a validator to the next, during the validation phase.<DD><CODE>monitor</CODE> - The monitor that should be used for reporting progress if the cleanup
+                takes a long time.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)"><!-- --></A><H3>
+shouldClearMarkers</H3>
+<PRE>
+public boolean <B>shouldClearMarkers</B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</PRE>
+<DL>
+<DD>Should the validation framework first clear the markers that this
+ validator has placed on this resource? This method can be overridden by
+ validator implementors to provide a validator specific behavior.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>event</CODE> - The validation event that triggered the validation.
+<DT><B>Returns:</B><DD>true if the validation framework should first clear all the
+         markers that this validator produced. This is the default
+         behavior. Return false to leave the markers unchanged. It then
+         becomes the responsibility of the validator to manage it's own
+         markers for this resource, for this validation event.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getParent()"><!-- --></A><H3>
+getParent</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A> <B>getParent</B>()</PRE>
+<DL>
+<DD>Answer the validator that you belong to. The validator controls the
+ filters and various other settings.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AbstractValidator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/AbstractValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="AbstractValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/DependentResource.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/DependentResource.html
new file mode 100644
index 0000000..fd25a4e
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/DependentResource.html
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:32 EST 2009 -->
+<TITLE>
+DependentResource
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DependentResource";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DependentResource.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Friend.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/DependentResource.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DependentResource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class DependentResource</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.DependentResource</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>DependentResource</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+A resource that is dependent on another resource.
+ <p>
+ This is returned by the IDependencyIndex.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation"><CODE>IDependencyIndex</CODE></A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/DependentResource.html#DependentResource(IResource, org.eclipse.wst.validation.Validator)">DependentResource</A></B>(IResource&nbsp;resource,
+                  <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IResource</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/DependentResource.html#getResource()">getResource</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the resource that is depended on.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/DependentResource.html#getValidator()">getValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validator that asserted the dependency.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="DependentResource(IResource, org.eclipse.wst.validation.Validator)"><!-- --></A><H3>
+DependentResource</H3>
+<PRE>
+public <B>DependentResource</B>(IResource&nbsp;resource,
+                         <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getResource()"><!-- --></A><H3>
+getResource</H3>
+<PRE>
+public IResource <B>getResource</B>()</PRE>
+<DL>
+<DD>Answer the resource that is depended on.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidator()"><!-- --></A><H3>
+getValidator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> <B>getValidator</B>()</PRE>
+<DL>
+<DD>Answer the validator that asserted the dependency.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DependentResource.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Friend.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/DependentResource.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DependentResource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Friend.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Friend.html
new file mode 100644
index 0000000..7ae6360
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Friend.html
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:32 EST 2009 -->
+<TITLE>
+Friend
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Friend";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Friend.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Friend.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Friend.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class Friend</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.Friend</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Friend</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+This class is only to be called by the validation framework and it's test cases.
+ This class is NOT part of the API.
+ <p>
+ This class provides access to some internal methods.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Friend.html#Friend()">Friend</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Friend.html#isLoaded(org.eclipse.wst.validation.Validator)">isLoaded</A></B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Has the validator's implementation been loaded yet?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Friend.html#setMessages(org.eclipse.wst.validation.Validator, java.util.Map)">setMessages</A></B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+            java.util.Map&lt;java.lang.String,<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A>&gt;&nbsp;map)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Friend.html#setMigrated(org.eclipse.wst.validation.Validator, boolean)">setMigrated</A></B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+            boolean&nbsp;migrated)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Friend.html#shouldValidate(org.eclipse.wst.validation.Validator, IResource, boolean, boolean, org.eclipse.wst.validation.internal.ContentTypeWrapper)">shouldValidate</A></B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+               IResource&nbsp;resource,
+               boolean&nbsp;isManual,
+               boolean&nbsp;isBuild,
+               org.eclipse.wst.validation.internal.ContentTypeWrapper&nbsp;contentTypeWrapper)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Friend.html#shouldValidate(org.eclipse.wst.validation.Validator, IResource, org.eclipse.wst.validation.internal.ValType, org.eclipse.wst.validation.internal.ContentTypeWrapper)">shouldValidate</A></B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+               IResource&nbsp;resource,
+               org.eclipse.wst.validation.internal.ValType&nbsp;valType,
+               org.eclipse.wst.validation.internal.ContentTypeWrapper&nbsp;contentTypeWrapper)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Friend()"><!-- --></A><H3>
+Friend</H3>
+<PRE>
+public <B>Friend</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="setMessages(org.eclipse.wst.validation.Validator, java.util.Map)"><!-- --></A><H3>
+setMessages</H3>
+<PRE>
+public static void <B>setMessages</B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+                               java.util.Map&lt;java.lang.String,<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A>&gt;&nbsp;map)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isLoaded(org.eclipse.wst.validation.Validator)"><!-- --></A><H3>
+isLoaded</H3>
+<PRE>
+public static boolean <B>isLoaded</B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</PRE>
+<DL>
+<DD>Has the validator's implementation been loaded yet? This is used by some test cases to ensure that 
+ plug-ins are not loaded too early.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldValidate(org.eclipse.wst.validation.Validator, IResource, boolean, boolean, org.eclipse.wst.validation.internal.ContentTypeWrapper)"><!-- --></A><H3>
+shouldValidate</H3>
+<PRE>
+public static boolean <B>shouldValidate</B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+                                     IResource&nbsp;resource,
+                                     boolean&nbsp;isManual,
+                                     boolean&nbsp;isBuild,
+                                     org.eclipse.wst.validation.internal.ContentTypeWrapper&nbsp;contentTypeWrapper)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldValidate(org.eclipse.wst.validation.Validator, IResource, org.eclipse.wst.validation.internal.ValType, org.eclipse.wst.validation.internal.ContentTypeWrapper)"><!-- --></A><H3>
+shouldValidate</H3>
+<PRE>
+public static boolean <B>shouldValidate</B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+                                     IResource&nbsp;resource,
+                                     org.eclipse.wst.validation.internal.ValType&nbsp;valType,
+                                     org.eclipse.wst.validation.internal.ContentTypeWrapper&nbsp;contentTypeWrapper)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMigrated(org.eclipse.wst.validation.Validator, boolean)"><!-- --></A><H3>
+setMigrated</H3>
+<PRE>
+public static void <B>setMigrated</B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+                               boolean&nbsp;migrated)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Friend.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Friend.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Friend.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IDependencyIndex.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IDependencyIndex.html
new file mode 100644
index 0000000..1178af8
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IDependencyIndex.html
@@ -0,0 +1,351 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:32 EST 2009 -->
+<TITLE>
+IDependencyIndex
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IDependencyIndex";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IDependencyIndex.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Friend.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/IDependencyIndex.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IDependencyIndex.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Interface IDependencyIndex</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IDependencyIndex</B></DL>
+</PRE>
+
+<P>
+This service is used to specify the resources that a particular resource depends on.
+ <p>
+ This is an optional service, validators do not need to use this Interface and can simply supply
+ their dependency information through the ValidationResult return result.
+ </p>
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation"><CODE>ValidationResult</CODE></A></DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html#add(java.lang.String, IResource, IResource)">add</A></B>(java.lang.String&nbsp;id,
+    IResource&nbsp;dependent,
+    IResource&nbsp;dependsOn)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assert that one resource depends on another resource as part of it's validity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html#clear(IProject)">clear</A></B>(IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove all the dependency assertions for this project.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.List&lt;<A HREF="../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation">DependentResource</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html#get(IResource)">get</A></B>(IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the resources that depend on this resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IResource[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html#get(java.lang.String, IResource)">get</A></B>(java.lang.String&nbsp;id,
+    IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the resources that depend on this resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html#isDependedOn(IResource)">isDependedOn</A></B>(IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer true if other resources depend on this resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html#set(java.lang.String, IResource, IResource[])">set</A></B>(java.lang.String&nbsp;id,
+    IResource&nbsp;dependent,
+    IResource[]&nbsp;dependsOn)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace all the resources that the dependent depends on.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="add(java.lang.String, IResource, IResource)"><!-- --></A><H3>
+add</H3>
+<PRE>
+void <B>add</B>(java.lang.String&nbsp;id,
+         IResource&nbsp;dependent,
+         IResource&nbsp;dependsOn)</PRE>
+<DL>
+<DD>Assert that one resource depends on another resource as part of it's validity.
+ <p>
+ For example, if an XML file is dependent on an XSD file to be valid, the
+ resource that holds the XML file would be the dependent, and the resource
+ that holds the XSD would be the dependsOn.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The validator id that is asserting that the dependency exists.<DD><CODE>dependent</CODE> - The resource that is dependent on the other resource. For example a XML file.<DD><CODE>dependsOn</CODE> - The resource that this being depended on. For example a XSD file.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clear(IProject)"><!-- --></A><H3>
+clear</H3>
+<PRE>
+void <B>clear</B>(IProject&nbsp;project)</PRE>
+<DL>
+<DD>Remove all the dependency assertions for this project.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - The project that will have it's dependency assertions removed.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="get(IResource)"><!-- --></A><H3>
+get</H3>
+<PRE>
+java.util.List&lt;<A HREF="../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation">DependentResource</A>&gt; <B>get</B>(IResource&nbsp;resource)</PRE>
+<DL>
+<DD>Answer all the resources that depend on this resource. For example, if
+ this resource was a XSD, this could answer all the XML files that
+ depended on it for their validity.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - A resource that other resources may depend on.
+<DT><B>Returns:</B><DD>the dependent resources.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="get(java.lang.String, IResource)"><!-- --></A><H3>
+get</H3>
+<PRE>
+IResource[] <B>get</B>(java.lang.String&nbsp;id,
+                IResource&nbsp;resource)</PRE>
+<DL>
+<DD>Answer all the resources that depend on this resource. For example, if
+ this resource was a XSD, this could answer all the XML files that
+ depended on it for their validity.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The validator id that asserted that the dependency exists.<DD><CODE>resource</CODE> - A resource that other resources may depend on.
+<DT><B>Returns:</B><DD>the dependent resources. This method can return null or an empty array, if
+        there are no dependent resources.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDependedOn(IResource)"><!-- --></A><H3>
+isDependedOn</H3>
+<PRE>
+boolean <B>isDependedOn</B>(IResource&nbsp;resource)</PRE>
+<DL>
+<DD>Answer true if other resources depend on this resource.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource being tested.
+<DT><B>Returns:</B><DD>true if any of the validators asserted a dependency on this resource.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="set(java.lang.String, IResource, IResource[])"><!-- --></A><H3>
+set</H3>
+<PRE>
+void <B>set</B>(java.lang.String&nbsp;id,
+         IResource&nbsp;dependent,
+         IResource[]&nbsp;dependsOn)</PRE>
+<DL>
+<DD>Replace all the resources that the dependent depends on.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - The validator id that is asserting that the dependency exists.<DD><CODE>dependent</CODE> - The resource that is dependent on the other resource.<DD><CODE>dependsOn</CODE> - All the resources that are depended on. This can be null or a zero
+                length array. Null or a zero length array removes all the dependencies.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IDependencyIndex.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Friend.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/IDependencyIndex.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IDependencyIndex.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IMutableValidator.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IMutableValidator.html
new file mode 100644
index 0000000..59b4895
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IMutableValidator.html
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:32 EST 2009 -->
+<TITLE>
+IMutableValidator
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IMutableValidator";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMutableValidator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/IMutableValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMutableValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Interface IMutableValidator</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IMutableValidator</B></DL>
+</PRE>
+
+<P>
+A validator that has fields that can be updated.
+ <p>
+ The following procedure is used to change a Validator's settings.
+ <ol>
+ <li>An IMutableValidator is retrieved.</li>
+ <li>The IMutableValidator is changed.</li>
+ <li>The IMutableValidator is "activated".</li>
+ </ol>
+ </p>
+ <p>The methods <CODE>ValidationFramework#getProjectSettings(org.eclipse.core.resources.IProject)</CODE> and 
+ <A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getWorkspaceSettings()"><CODE>ValidationFramework.getWorkspaceSettings()</CODE></A> can be used to retrieve IMutableValidator's.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validator's id.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html#getName()">getName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validator's name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html#isBuildValidation()">isBuildValidation</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer if the validator is enabled for build based validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html#isManualValidation()">isManualValidation</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer if the validator is enabled for manual based validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html#setBuildValidation(boolean)">setBuildValidation</A></B>(boolean&nbsp;build)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether the validator should be enabled for build based validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html#setManualValidation(boolean)">setManualValidation</A></B>(boolean&nbsp;manual)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether the validator should be enabled for manual based validation.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD>Answer the validator's id.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getName()"><!-- --></A><H3>
+getName</H3>
+<PRE>
+java.lang.String <B>getName</B>()</PRE>
+<DL>
+<DD>Answer the validator's name.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isBuildValidation()"><!-- --></A><H3>
+isBuildValidation</H3>
+<PRE>
+boolean <B>isBuildValidation</B>()</PRE>
+<DL>
+<DD>Answer if the validator is enabled for build based validation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isManualValidation()"><!-- --></A><H3>
+isManualValidation</H3>
+<PRE>
+boolean <B>isManualValidation</B>()</PRE>
+<DL>
+<DD>Answer if the validator is enabled for manual based validation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setBuildValidation(boolean)"><!-- --></A><H3>
+setBuildValidation</H3>
+<PRE>
+void <B>setBuildValidation</B>(boolean&nbsp;build)</PRE>
+<DL>
+<DD>Set whether the validator should be enabled for build based validation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setManualValidation(boolean)"><!-- --></A><H3>
+setManualValidation</H3>
+<PRE>
+void <B>setManualValidation</B>(boolean&nbsp;manual)</PRE>
+<DL>
+<DD>Set whether the validator should be enabled for manual based validation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMutableValidator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/IMutableValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMutableValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html
new file mode 100644
index 0000000..a149580
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html
@@ -0,0 +1,327 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:32 EST 2009 -->
+<TITLE>
+IPerformanceMonitor.CollectionLevel
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IPerformanceMonitor.CollectionLevel";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IPerformanceMonitor.CollectionLevel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IValidatorGroupListener.html" title="interface in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IPerformanceMonitor.CollectionLevel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Enum IPerformanceMonitor.CollectionLevel</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A>&gt;
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.IPerformanceMonitor.CollectionLevel</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A>&gt;</DD>
+</DL>
+<DL>
+<DT><B>Enclosing interface:</B><DD><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation">IPerformanceMonitor</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public static enum <B>IPerformanceMonitor.CollectionLevel</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A>&gt;</DL>
+</PRE>
+
+<P>
+The level of information to collect.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+
+<A NAME="enum_constant_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Enum Constant Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html#Default">Default</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html#None">None</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they are declared.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+
+<A NAME="enum_constant_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Enum Constant Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="None"><!-- --></A><H3>
+None</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A> <B>None</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="Default"><!-- --></A><H3>
+Default</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A> <B>Default</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="values()"><!-- --></A><H3>
+values</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A>[] <B>values</B>()</PRE>
+<DL>
+<DD>Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (IPerformanceMonitor.CollectionLevel c : IPerformanceMonitor.CollectionLevel.values())
+&nbsp;   System.out.println(c);
+</pre>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
+the order they are declared</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
+valueOf</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD>Returns the enum constant of this type with the specified name.
+The string must match <I>exactly</I> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
+<DT><B>Returns:</B><DD>the enum constant with the specified name
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
+with the specified name
+<DD><CODE>java.lang.NullPointerException</CODE> - if the argument is null</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IPerformanceMonitor.CollectionLevel.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IValidatorGroupListener.html" title="interface in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IPerformanceMonitor.CollectionLevel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IPerformanceMonitor.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IPerformanceMonitor.html
new file mode 100644
index 0000000..59dd553
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IPerformanceMonitor.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:32 EST 2009 -->
+<TITLE>
+IPerformanceMonitor
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IPerformanceMonitor";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IPerformanceMonitor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/IPerformanceMonitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IPerformanceMonitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Interface IPerformanceMonitor</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IPerformanceMonitor</B></DL>
+</PRE>
+
+<P>
+A service that collects performance information on validation operations.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The level of information to collect.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#add(org.eclipse.wst.validation.PerformanceCounters)">add</A></B>(<A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A>&nbsp;counters)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add this performance counter to the monitor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#getCollectionLevel()">getCollectionLevel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the level of performance events that are being collected by the validation framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.List&lt;<A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#getPerformanceCounters(boolean)">getPerformanceCounters</A></B>(boolean&nbsp;asSummary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the performance counters that have been collected so far.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#isCollecting()">isCollecting</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer true if the performance monitor is collecting performance events.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#isSummaryOnly()">isSummaryOnly</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer true if only summary information is requested.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#resetPerformanceCounters()">resetPerformanceCounters</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delete the collected performance counters.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#setCollectionLevel(org.eclipse.wst.validation.IPerformanceMonitor.CollectionLevel)">setCollectionLevel</A></B>(<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A>&nbsp;level)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the performance event collection level.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="add(org.eclipse.wst.validation.PerformanceCounters)"><!-- --></A><H3>
+add</H3>
+<PRE>
+void <B>add</B>(<A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A>&nbsp;counters)</PRE>
+<DL>
+<DD>Add this performance counter to the monitor. The monitor will decide what to 
+ do with the results, it may log them to a file, or it may simply hold on to them.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>counters</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCollecting()"><!-- --></A><H3>
+isCollecting</H3>
+<PRE>
+boolean <B>isCollecting</B>()</PRE>
+<DL>
+<DD>Answer true if the performance monitor is collecting performance events.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSummaryOnly()"><!-- --></A><H3>
+isSummaryOnly</H3>
+<PRE>
+boolean <B>isSummaryOnly</B>()</PRE>
+<DL>
+<DD>Answer true if only summary information is requested.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCollectionLevel(org.eclipse.wst.validation.IPerformanceMonitor.CollectionLevel)"><!-- --></A><H3>
+setCollectionLevel</H3>
+<PRE>
+void <B>setCollectionLevel</B>(<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A>&nbsp;level)</PRE>
+<DL>
+<DD>Set the performance event collection level. This controls which
+ performance events are collected, including none of them.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>level</CODE> - The level to collect. The default is to not collect anything.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCollectionLevel()"><!-- --></A><H3>
+getCollectionLevel</H3>
+<PRE>
+<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A> <B>getCollectionLevel</B>()</PRE>
+<DL>
+<DD>Answer the level of performance events that are being collected by the validation framework.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPerformanceCounters(boolean)"><!-- --></A><H3>
+getPerformanceCounters</H3>
+<PRE>
+java.util.List&lt;<A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A>&gt; <B>getPerformanceCounters</B>(boolean&nbsp;asSummary)</PRE>
+<DL>
+<DD>Answer the performance counters that have been collected so far. Some
+ monitors do not save counters, and they will always return an empty list.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>asSummary</CODE> - If this parameter is true, only answer a summary of the counters.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resetPerformanceCounters()"><!-- --></A><H3>
+resetPerformanceCounters</H3>
+<PRE>
+void <B>resetPerformanceCounters</B>()</PRE>
+<DL>
+<DD>Delete the collected performance counters.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IPerformanceMonitor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/IPerformanceMonitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IPerformanceMonitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IValidatorGroupListener.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IValidatorGroupListener.html
new file mode 100644
index 0000000..b871d44
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/IValidatorGroupListener.html
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:32 EST 2009 -->
+<TITLE>
+IValidatorGroupListener
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IValidatorGroupListener";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IValidatorGroupListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/IValidatorGroupListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidatorGroupListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Interface IValidatorGroupListener</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IValidatorGroupListener</B></DL>
+</PRE>
+
+<P>
+Validators may wish to join validator groups for performance or other
+ reasons. That way expensive operations like creating and releasing models can
+ be done in a common location, and be done only once per resource. Group listeners
+ are declared via the <code>org.eclipse.wst.validation.validatorGroup</code> extension point.
+ <p>
+ As validation proceeds, the validation framework, on a resource by resource
+ bases, determines if any validators that are members of a group are
+ interested in the resource. If they are, before the first validator in the
+ group is called, the <code>validationStarting</code> method is called. If this method was
+ called, then the <code>validationFinishing</code> method will be called once all the
+ validators have processed the resource.
+ </p>
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IValidatorGroupListener.html#validationFinishing(IResource, IProgressMonitor, org.eclipse.wst.validation.ValidationState)">validationFinishing</A></B>(IResource&nbsp;resource,
+                    IProgressMonitor&nbsp;monitor,
+                    <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the validationStarting method was called on the resource, then this
+ method will be called after the last validator has processed the
+ resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/IValidatorGroupListener.html#validationStarting(IResource, IProgressMonitor, org.eclipse.wst.validation.ValidationState)">validationStarting</A></B>(IResource&nbsp;resource,
+                   IProgressMonitor&nbsp;monitor,
+                   <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is called before the first validator in the group that is interested
+ in the resource is called.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="validationStarting(IResource, IProgressMonitor, org.eclipse.wst.validation.ValidationState)"><!-- --></A><H3>
+validationStarting</H3>
+<PRE>
+void <B>validationStarting</B>(IResource&nbsp;resource,
+                        IProgressMonitor&nbsp;monitor,
+                        <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state)</PRE>
+<DL>
+<DD>This is called before the first validator in the group that is interested
+ in the resource is called. If no validators in the group are interested
+ in the resource, then this method is not called.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource that is being validated.<DD><CODE>monitor</CODE> - A progress monitor that the method should use.<DD><CODE>state</CODE> - The validation state for the current operation.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validationFinishing(IResource, IProgressMonitor, org.eclipse.wst.validation.ValidationState)"><!-- --></A><H3>
+validationFinishing</H3>
+<PRE>
+void <B>validationFinishing</B>(IResource&nbsp;resource,
+                         IProgressMonitor&nbsp;monitor,
+                         <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state)</PRE>
+<DL>
+<DD>If the validationStarting method was called on the resource, then this
+ method will be called after the last validator has processed the
+ resource.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource that is being validated.<DD><CODE>monitor</CODE> - A progress monitor that the method can use.<DD><CODE>state</CODE> - The validation state for the current operation.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IValidatorGroupListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/IValidatorGroupListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidatorGroupListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MessageSeveritySetting.Severity.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MessageSeveritySetting.Severity.html
new file mode 100644
index 0000000..102cdf4
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MessageSeveritySetting.Severity.html
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:32 EST 2009 -->
+<TITLE>
+MessageSeveritySetting.Severity
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="MessageSeveritySetting.Severity";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MessageSeveritySetting.Severity.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageSeveritySetting.Severity.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Enum MessageSeveritySetting.Severity</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>&gt;
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.MessageSeveritySetting.Severity</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>&gt;</DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public static enum <B>MessageSeveritySetting.Severity</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>&gt;</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+
+<A NAME="enum_constant_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Enum Constant Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html#Error">Error</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html#Ignore">Ignore</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html#Warning">Warning</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html#getMarkerSeverity()">getMarkerSeverity</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the associated IMarker severity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they are declared.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, valueOf</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+
+<A NAME="enum_constant_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Enum Constant Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Error"><!-- --></A><H3>
+Error</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A> <B>Error</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="Warning"><!-- --></A><H3>
+Warning</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A> <B>Warning</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="Ignore"><!-- --></A><H3>
+Ignore</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A> <B>Ignore</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="values()"><!-- --></A><H3>
+values</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>[] <B>values</B>()</PRE>
+<DL>
+<DD>Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (MessageSeveritySetting.Severity c : MessageSeveritySetting.Severity.values())
+&nbsp;   System.out.println(c);
+</pre>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
+the order they are declared</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
+valueOf</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD>Returns the enum constant of this type with the specified name.
+The string must match <I>exactly</I> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
+<DT><B>Returns:</B><DD>the enum constant with the specified name
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
+with the specified name
+<DD><CODE>java.lang.NullPointerException</CODE> - if the argument is null</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Enum&lt;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>&gt;</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMarkerSeverity()"><!-- --></A><H3>
+getMarkerSeverity</H3>
+<PRE>
+public int <B>getMarkerSeverity</B>()</PRE>
+<DL>
+<DD>Answer the associated IMarker severity.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MessageSeveritySetting.Severity.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageSeveritySetting.Severity.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MessageSeveritySetting.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MessageSeveritySetting.html
new file mode 100644
index 0000000..8abee0c
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MessageSeveritySetting.html
@@ -0,0 +1,439 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:32 EST 2009 -->
+<TITLE>
+MessageSeveritySetting
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="MessageSeveritySetting";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MessageSeveritySetting.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IValidatorGroupListener.html" title="interface in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/MessageSeveritySetting.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageSeveritySetting.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class MessageSeveritySetting</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.MessageSeveritySetting</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>MessageSeveritySetting</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Associate a message severity with a message category.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#MessageSeveritySetting(java.lang.String, java.lang.String, org.eclipse.wst.validation.MessageSeveritySetting.Severity)">MessageSeveritySetting</A></B>(java.lang.String&nbsp;id,
+                       java.lang.String&nbsp;label,
+                       <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>&nbsp;defaultSeverity)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an association between a label and a message severity.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#copy()">copy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a copy of this object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#getCurrent()">getCurrent</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the current severity for the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#getDefault()">getDefault</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the default severity as defined by the validator owner.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The id that the validator owner assigned to the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#getLabel()">getLabel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#hashCode()">hashCode</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#setCurrent(org.eclipse.wst.validation.MessageSeveritySetting.Severity)">setCurrent</A></B>(<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>&nbsp;severity)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the current message severity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="MessageSeveritySetting(java.lang.String, java.lang.String, org.eclipse.wst.validation.MessageSeveritySetting.Severity)"><!-- --></A><H3>
+MessageSeveritySetting</H3>
+<PRE>
+public <B>MessageSeveritySetting</B>(java.lang.String&nbsp;id,
+                              java.lang.String&nbsp;label,
+                              <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>&nbsp;defaultSeverity)</PRE>
+<DL>
+<DD>Create an association between a label and a message severity.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - An id that is used to identify this particular setting. This must be
+                unique within the scope of this particular validator.<DD><CODE>label</CODE> - An end user string, that can describe either an individual message
+                or a message category.<DD><CODE>defaultSeverity</CODE> - The default severity for this label. If the end user doesn't change
+                anything this is what the severity will be.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="hashCode()"><!-- --></A><H3>
+hashCode</H3>
+<PRE>
+public int <B>hashCode</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE>hashCode</CODE> in class <CODE>java.lang.Object</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLabel()"><!-- --></A><H3>
+getLabel</H3>
+<PRE>
+public java.lang.String <B>getLabel</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDefault()"><!-- --></A><H3>
+getDefault</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A> <B>getDefault</B>()</PRE>
+<DL>
+<DD>Answer the default severity as defined by the validator owner.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCurrent()"><!-- --></A><H3>
+getCurrent</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A> <B>getCurrent</B>()</PRE>
+<DL>
+<DD>Answer the current severity for the message. The end user may have changed this through a
+ preference dialog.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD>The id that the validator owner assigned to the message.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCurrent(org.eclipse.wst.validation.MessageSeveritySetting.Severity)"><!-- --></A><H3>
+setCurrent</H3>
+<PRE>
+public boolean <B>setCurrent</B>(<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>&nbsp;severity)</PRE>
+<DL>
+<DD>Set the current message severity.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>severity</CODE> - 
+<DT><B>Returns:</B><DD>true if the setting changed</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="copy()"><!-- --></A><H3>
+copy</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A> <B>copy</B>()</PRE>
+<DL>
+<DD>Answer a copy of this object.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MessageSeveritySetting.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IValidatorGroupListener.html" title="interface in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/MessageSeveritySetting.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageSeveritySetting.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MutableProjectSettings.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MutableProjectSettings.html
new file mode 100644
index 0000000..bafc744
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MutableProjectSettings.html
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+MutableProjectSettings
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="MutableProjectSettings";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MutableProjectSettings.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/MutableProjectSettings.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MutableProjectSettings.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class MutableProjectSettings</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.MutableProjectSettings</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public final class <B>MutableProjectSettings</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+This class holds the overall project validation settings.
+ <p>
+ The following procedure is used to change a project's Validation settings.
+ <ol>
+ <li>The MutableProjectSettings are retrieved.</li>
+ <li>The MutableProjectSettings are changed.</li>
+ <li>The MutableProjectSettings are "applied".</li>
+ </ol>
+ </p>
+ <p>In order for a project's validation setting to be effective, both 
+ <A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html#getOverride()"><CODE>getOverride()</CODE></A> and <A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#getOverride()"><CODE>MutableWorkspaceSettings.getOverride()</CODE></A>
+ must be true.
+ </p>
+ <p>
+ These settings can be retrieved with <A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getProjectSettings(IProject)"><CODE>ValidationFramework.getProjectSettings(IProject)</CODE></A>.
+ </p>
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html#MutableProjectSettings(IProject, org.eclipse.wst.validation.IMutableValidator[])">MutableProjectSettings</A></B>(IProject&nbsp;project,
+                       <A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[]&nbsp;validators)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html#getOverride()">getOverride</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Can this project override the workspace level validation settings?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IProject</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html#getProject()">getProject</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the project that these settings are for.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html#getSuspend()">getSuspend</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is validation suspended for this project?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html#getValidators()">getValidators</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html#setOverride(boolean)">setOverride</A></B>(boolean&nbsp;override)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change whether this project can override workspace level validation settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html#setSuspend(boolean)">setSuspend</A></B>(boolean&nbsp;suspend)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change whether this project is suspending it's validation.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="MutableProjectSettings(IProject, org.eclipse.wst.validation.IMutableValidator[])"><!-- --></A><H3>
+MutableProjectSettings</H3>
+<PRE>
+public <B>MutableProjectSettings</B>(IProject&nbsp;project,
+                              <A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[]&nbsp;validators)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getValidators()"><!-- --></A><H3>
+getValidators</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[] <B>getValidators</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOverride()"><!-- --></A><H3>
+getOverride</H3>
+<PRE>
+public boolean <B>getOverride</B>()</PRE>
+<DL>
+<DD>Can this project override the workspace level validation settings?
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOverride(boolean)"><!-- --></A><H3>
+setOverride</H3>
+<PRE>
+public void <B>setOverride</B>(boolean&nbsp;override)</PRE>
+<DL>
+<DD>Change whether this project can override workspace level validation settings.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>override</CODE> - Set to true if the project is allowed to override workspace level validation settings.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSuspend()"><!-- --></A><H3>
+getSuspend</H3>
+<PRE>
+public boolean <B>getSuspend</B>()</PRE>
+<DL>
+<DD>Is validation suspended for this project?
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSuspend(boolean)"><!-- --></A><H3>
+setSuspend</H3>
+<PRE>
+public void <B>setSuspend</B>(boolean&nbsp;suspend)</PRE>
+<DL>
+<DD>Change whether this project is suspending it's validation.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>suspend</CODE> - Set to true, to suspend validation for this project.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getProject()"><!-- --></A><H3>
+getProject</H3>
+<PRE>
+public IProject <B>getProject</B>()</PRE>
+<DL>
+<DD>Answer the project that these settings are for.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MutableProjectSettings.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/MutableProjectSettings.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MutableProjectSettings.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MutableWorkspaceSettings.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MutableWorkspaceSettings.html
new file mode 100644
index 0000000..8ba12c1
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/MutableWorkspaceSettings.html
@@ -0,0 +1,414 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+MutableWorkspaceSettings
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="MutableWorkspaceSettings";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MutableWorkspaceSettings.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/MutableWorkspaceSettings.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MutableWorkspaceSettings.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class MutableWorkspaceSettings</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.MutableWorkspaceSettings</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public final class <B>MutableWorkspaceSettings</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+This class holds the overall workspace validation settings.
+ <p>
+ The following procedure is used to change a project's Validation settings.
+ <ol>
+ <li>The MutableWorkspaceSettings are retrieved.</li>
+ <li>The MutableWorkspaceSettings are changed.</li>
+ <li>The MutableWorkspaceSettings are "applied".</li>
+ </ol>
+ </p>
+ <p>
+ These settings can be retrieved with <A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getWorkspaceSettings()"><CODE>ValidationFramework.getWorkspaceSettings()</CODE></A>.
+ </p>
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#MutableWorkspaceSettings(org.eclipse.wst.validation.IMutableValidator[], org.eclipse.wst.validation.internal.model.GlobalPreferencesValues)">MutableWorkspaceSettings</A></B>(<A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[]&nbsp;validators,
+                         org.eclipse.wst.validation.internal.model.GlobalPreferencesValues&nbsp;values)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#getAutoSave()">getAutoSave</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;org.eclipse.wst.validation.internal.model.GlobalPreferencesValues</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#getGlobalPreferencesValues()">getGlobalPreferencesValues</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#getOverride()">getOverride</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Can this project override the workspace level validation settings?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#getSuspend()">getSuspend</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is validation suspended for this project?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#getValidators()">getValidators</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#setAutoSave(boolean)">setAutoSave</A></B>(boolean&nbsp;autoSave)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#setOverride(boolean)">setOverride</A></B>(boolean&nbsp;override)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change whether this project can override workspace level validation settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#setSuspend(boolean)">setSuspend</A></B>(boolean&nbsp;suspend)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change whether this project is suspending it's validation.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="MutableWorkspaceSettings(org.eclipse.wst.validation.IMutableValidator[], org.eclipse.wst.validation.internal.model.GlobalPreferencesValues)"><!-- --></A><H3>
+MutableWorkspaceSettings</H3>
+<PRE>
+public <B>MutableWorkspaceSettings</B>(<A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[]&nbsp;validators,
+                                org.eclipse.wst.validation.internal.model.GlobalPreferencesValues&nbsp;values)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getValidators()"><!-- --></A><H3>
+getValidators</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[] <B>getValidators</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGlobalPreferencesValues()"><!-- --></A><H3>
+getGlobalPreferencesValues</H3>
+<PRE>
+public org.eclipse.wst.validation.internal.model.GlobalPreferencesValues <B>getGlobalPreferencesValues</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAutoSave()"><!-- --></A><H3>
+getAutoSave</H3>
+<PRE>
+public boolean <B>getAutoSave</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAutoSave(boolean)"><!-- --></A><H3>
+setAutoSave</H3>
+<PRE>
+public void <B>setAutoSave</B>(boolean&nbsp;autoSave)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOverride()"><!-- --></A><H3>
+getOverride</H3>
+<PRE>
+public boolean <B>getOverride</B>()</PRE>
+<DL>
+<DD>Can this project override the workspace level validation settings?
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOverride(boolean)"><!-- --></A><H3>
+setOverride</H3>
+<PRE>
+public void <B>setOverride</B>(boolean&nbsp;override)</PRE>
+<DL>
+<DD>Change whether this project can override workspace level validation settings.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>override</CODE> - Set to true if the project is allowed to override workspace level validation settings.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSuspend()"><!-- --></A><H3>
+getSuspend</H3>
+<PRE>
+public boolean <B>getSuspend</B>()</PRE>
+<DL>
+<DD>Is validation suspended for this project?
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSuspend(boolean)"><!-- --></A><H3>
+setSuspend</H3>
+<PRE>
+public void <B>setSuspend</B>(boolean&nbsp;suspend)</PRE>
+<DL>
+<DD>Change whether this project is suspending it's validation.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>suspend</CODE> - Set to true, to suspend validation for this project.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MutableWorkspaceSettings.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/MutableWorkspaceSettings.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MutableWorkspaceSettings.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/PerformanceCounters.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/PerformanceCounters.html
new file mode 100644
index 0000000..7f8fd75
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/PerformanceCounters.html
@@ -0,0 +1,434 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+PerformanceCounters
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="PerformanceCounters";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PerformanceCounters.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/PerformanceCounters.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="PerformanceCounters.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class PerformanceCounters</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.PerformanceCounters</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>PerformanceCounters</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Some performance information for a validation invocation. This object is immutable.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html#PerformanceCounters(java.lang.String, java.lang.String, java.lang.String, int, long, long)">PerformanceCounters</A></B>(java.lang.String&nbsp;validatorId,
+                    java.lang.String&nbsp;validatorName,
+                    java.lang.String&nbsp;resourceName,
+                    int&nbsp;numberInvocations,
+                    long&nbsp;elapsedTime,
+                    long&nbsp;cpuTime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html#getCpuTime()">getCpuTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the amount of CPU time in nanoseconds.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html#getElapsedTime()">getElapsedTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the elapsed time in milliseconds.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html#getNumberInvocations()">getNumberInvocations</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html#getResourceName()">getResourceName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html#getValidatorId()">getValidatorId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html#getValidatorName()">getValidatorName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html#getWhen()">getWhen</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer when was the event logged.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html#toString(boolean)">toString</A></B>(boolean&nbsp;asSummary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="PerformanceCounters(java.lang.String, java.lang.String, java.lang.String, int, long, long)"><!-- --></A><H3>
+PerformanceCounters</H3>
+<PRE>
+public <B>PerformanceCounters</B>(java.lang.String&nbsp;validatorId,
+                           java.lang.String&nbsp;validatorName,
+                           java.lang.String&nbsp;resourceName,
+                           int&nbsp;numberInvocations,
+                           long&nbsp;elapsedTime,
+                           long&nbsp;cpuTime)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>validatorId</CODE> - <DD><CODE>validatorName</CODE> - <DD><CODE>resourceName</CODE> - <DD><CODE>numberInvocations</CODE> - number of times the validator was invoked<DD><CODE>elapsedTime</CODE> - elapsed time in milliseconds<DD><CODE>cpuTime</CODE> - CPU time in nanoseconds</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getValidatorId()"><!-- --></A><H3>
+getValidatorId</H3>
+<PRE>
+public java.lang.String <B>getValidatorId</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumberInvocations()"><!-- --></A><H3>
+getNumberInvocations</H3>
+<PRE>
+public int <B>getNumberInvocations</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getElapsedTime()"><!-- --></A><H3>
+getElapsedTime</H3>
+<PRE>
+public long <B>getElapsedTime</B>()</PRE>
+<DL>
+<DD>Answer the elapsed time in milliseconds.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCpuTime()"><!-- --></A><H3>
+getCpuTime</H3>
+<PRE>
+public long <B>getCpuTime</B>()</PRE>
+<DL>
+<DD>Answer the amount of CPU time in nanoseconds. If this can not be determined,
+ answer -1.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString(boolean)"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>(boolean&nbsp;asSummary)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidatorName()"><!-- --></A><H3>
+getValidatorName</H3>
+<PRE>
+public java.lang.String <B>getValidatorName</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getWhen()"><!-- --></A><H3>
+getWhen</H3>
+<PRE>
+public long <B>getWhen</B>()</PRE>
+<DL>
+<DD>Answer when was the event logged.
+<P>
+<DD><DL>
+<DT><B>See Also:</B><DD><CODE>System.currentTimeMillis()</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResourceName()"><!-- --></A><H3>
+getResourceName</H3>
+<PRE>
+public java.lang.String <B>getResourceName</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/PerformanceCounters.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/PerformanceCounters.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="PerformanceCounters.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ReporterHelper.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ReporterHelper.html
new file mode 100644
index 0000000..e8c8da7
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ReporterHelper.html
@@ -0,0 +1,504 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+ReporterHelper
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ReporterHelper";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ReporterHelper.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ReporterHelper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ReporterHelper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class ReporterHelper</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.ReporterHelper</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ReporterHelper</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></DL>
+</PRE>
+
+<P>
+This is a temporary class to ease the transition from the previous validation framework.
+ <p>
+ This is not API.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html#ReporterHelper(IProgressMonitor)">ReporterHelper</A></B>(IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html#addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">addMessage</A></B>(<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+           <A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Add a locale-independent validation message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html#displaySubtask(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">displaySubtask</A></B>(<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+               <A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Show a text representation of this message, formatted in the default
+ Locale, to the user immediately.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.List&lt;<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html#getMessages()">getMessages</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html#isCancelled()">isCancelled</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if the user canceled validation, and false otherwise.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html#makeMarkers()">makeMarkers</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator)">removeAllMessages</A></B>(<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove all validation messages entered by the identified validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object)">removeAllMessages</A></B>(<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+                  java.lang.Object&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove all validation messages, entered by the identified validator,
+ pertaining to the Object provided.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html#removeMessageSubset(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object, java.lang.String)">removeMessageSubset</A></B>(<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+                    java.lang.Object&nbsp;obj,
+                    java.lang.String&nbsp;groupName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To support removal of a subset of validation messages, an IValidator may
+ assign group names to IMessages.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ReporterHelper(IProgressMonitor)"><!-- --></A><H3>
+ReporterHelper</H3>
+<PRE>
+public <B>ReporterHelper</B>(IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)"><!-- --></A><H3>
+addMessage</H3>
+<PRE>
+public void <B>addMessage</B>(<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+                       <A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">IReporter</A></CODE></B></DD>
+<DD><p>
+ Add a locale-independent validation message. It will be displayed later, with all of the
+ other validation messages.
+ </p>
+ <p>
+ The IValidator passed in is needed for incremental validation (when a message needs to be
+ removed, one validator should not remove messages entered by another validator.) The
+ validator is also queried for information about its resource bundle, to enable support for
+ localization of messages in a client-server environment.
+ </p>
+ <p>
+ Both parameters must not be null.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">addMessage</A></CODE> in interface <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>origin</CODE> - The validator which is the source of the message.<DD><CODE>message</CODE> - A message to be reported.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="displaySubtask(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)"><!-- --></A><H3>
+displaySubtask</H3>
+<PRE>
+public void <B>displaySubtask</B>(<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+                           <A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#displaySubtask(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">IReporter</A></CODE></B></DD>
+<DD>Show a text representation of this message, formatted in the default
+ Locale, to the user immediately. This message indicates which subtask is
+ currently being processed. The message is not stored. The subtask message
+ in this context is the subtask in a IProgressMontior
+ <p>
+ Both parameters must not be null.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#displaySubtask(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">displaySubtask</A></CODE> in interface <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>validator</CODE> - The validator issuing the subtask message.<DD><CODE>message</CODE> - The message to be displayed to the user.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMessages()"><!-- --></A><H3>
+getMessages</H3>
+<PRE>
+public java.util.List&lt;<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&gt; <B>getMessages</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#getMessages()">getMessages</A></CODE> in interface <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the message access interface to this reporter, or null if message access is not
+ supported.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCancelled()"><!-- --></A><H3>
+isCancelled</H3>
+<PRE>
+public boolean <B>isCancelled</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#isCancelled()">IReporter</A></CODE></B></DD>
+<DD>Return true if the user canceled validation, and false otherwise. This method should be
+ called by IValidators periodically, because no event is fired to notify IValidators that the
+ user canceled validation. If a validator does not check this method, a cancellation request
+ is ignored.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#isCancelled()">isCancelled</A></CODE> in interface <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the user canceled validation, and false otherwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator)"><!-- --></A><H3>
+removeAllMessages</H3>
+<PRE>
+public void <B>removeAllMessages</B>(<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator)">IReporter</A></CODE></B></DD>
+<DD>Remove all validation messages entered by the identified validator. This method is provided
+ for incremental validation. 
+ <p>
+ The IValidator parameter must not be null.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator)">removeAllMessages</A></CODE> in interface <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>origin</CODE> - Originator validator of the message.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object)"><!-- --></A><H3>
+removeAllMessages</H3>
+<PRE>
+public void <B>removeAllMessages</B>(<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+                              java.lang.Object&nbsp;object)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object)">IReporter</A></CODE></B></DD>
+<DD>Remove all validation messages, entered by the identified validator,
+ pertaining to the Object provided. This method is provided for
+ incremental validation. <br>
+ <br>
+ If <code>object</code> is null, then this method should remove all
+ messages owned by the validator. (i.e., the same behaviour as the
+ removeAllMessages(IValidator) method.) <br>
+ <br>
+ <p>
+ The IValidator parameter must not be null.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object)">removeAllMessages</A></CODE> in interface <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>origin</CODE> - Originator validator of the message.<DD><CODE>object</CODE> - Object to which the message belongs. Object is the target object
+                that was set on the IMessage when adding the message as problem
+                marker.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeMessageSubset(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object, java.lang.String)"><!-- --></A><H3>
+removeMessageSubset</H3>
+<PRE>
+public void <B>removeMessageSubset</B>(<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+                                java.lang.Object&nbsp;obj,
+                                java.lang.String&nbsp;groupName)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeMessageSubset(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object, java.lang.String)">IReporter</A></CODE></B></DD>
+<DD>To support removal of a subset of validation messages, an IValidator may
+ assign group names to IMessages. An IMessage subset will be identified by
+ the name of its group. This method will remove only the IMessage's that
+ are in the group identified by groupName. 
+ <p>
+ The IValidator parameter must not be null.
+ </p>
+ <p>
+ If <code>object</code> is null, then this method should remove all
+ messages owned by the validator. (i.e., the same behaviour as the
+ removeAllMessages(IValidator) method.)
+ </p>
+ <p>
+ If groupName is null, that's the same as no group (i.e., the same
+ behaviour as the <code>removeAllMessages(IValidator, Object)</code>
+ method.)
+ </p>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeMessageSubset(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object, java.lang.String)">removeMessageSubset</A></CODE> in interface <CODE><A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>validator</CODE> - Originator validator of the message.<DD><CODE>obj</CODE> - Object to which the message belongs.<DD><CODE>groupName</CODE> - Name of the group to which the message belongs.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="makeMarkers()"><!-- --></A><H3>
+makeMarkers</H3>
+<PRE>
+public void <B>makeMarkers</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ReporterHelper.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ReporterHelper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ReporterHelper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationEvent.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationEvent.html
new file mode 100644
index 0000000..4184f69
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationEvent.html
@@ -0,0 +1,317 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+ValidationEvent
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ValidationEvent";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class ValidationEvent</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.ValidationEvent</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public final class <B>ValidationEvent</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+An object that describes which object should be validated and what triggered its validation.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html#ValidationEvent(IResource, int, IResourceDelta)">ValidationEvent</A></B>(IResource&nbsp;resource,
+                int&nbsp;kind,
+                IResourceDelta&nbsp;dependsOn)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an object that describes what should be validated.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IResourceDelta</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html#getDependsOn()">getDependsOn</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the resource is being validated because one of it's dependencies has changed, that change is described here.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html#getKind()">getKind</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The way the resource changed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IResource</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html#getResource()">getResource</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The resource to be validated.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ValidationEvent(IResource, int, IResourceDelta)"><!-- --></A><H3>
+ValidationEvent</H3>
+<PRE>
+public <B>ValidationEvent</B>(IResource&nbsp;resource,
+                       int&nbsp;kind,
+                       IResourceDelta&nbsp;dependsOn)</PRE>
+<DL>
+<DD>Create an object that describes what should be validated.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource to be validated.<DD><CODE>kind</CODE> - The way the resource changed. It uses the same values as the
+            kind parameter in IResourceDelta.<DD><CODE>dependsOn</CODE> - If the resource is being validated because one of it's
+            dependencies has changed, that change is described here. This
+            can be null.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getResource()"><!-- --></A><H3>
+getResource</H3>
+<PRE>
+public IResource <B>getResource</B>()</PRE>
+<DL>
+<DD>The resource to be validated.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getKind()"><!-- --></A><H3>
+getKind</H3>
+<PRE>
+public int <B>getKind</B>()</PRE>
+<DL>
+<DD>The way the resource changed. It uses the same values as the kind
+ parameter in IResourceDelta.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDependsOn()"><!-- --></A><H3>
+getDependsOn</H3>
+<PRE>
+public IResourceDelta <B>getDependsOn</B>()</PRE>
+<DL>
+<DD>If the resource is being validated because one of it's dependencies has changed, that change is described here.
+ This method will return null when the trigger is not because of a dependency change.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html
new file mode 100644
index 0000000..3b3a7a1
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+ValidationFramework.ResourceAdder
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ValidationFramework.ResourceAdder";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationFramework.ResourceAdder.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationFramework.ResourceAdder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class ValidationFramework.ResourceAdder</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.ValidationFramework.ResourceAdder</B>
+</PRE>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation">ValidationFramework</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public static class <B>ValidationFramework.ResourceAdder</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html#ValidationFramework.ResourceAdder(java.util.Set)">ValidationFramework.ResourceAdder</A></B>(java.util.Set&lt;IResource&gt;&nbsp;set)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A class that knows how to add resources to a set.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html#visit(IResource)">visit</A></B>(IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ValidationFramework.ResourceAdder(java.util.Set)"><!-- --></A><H3>
+ValidationFramework.ResourceAdder</H3>
+<PRE>
+public <B>ValidationFramework.ResourceAdder</B>(java.util.Set&lt;IResource&gt;&nbsp;set)</PRE>
+<DL>
+<DD>A class that knows how to add resources to a set.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>set</CODE> - the set where the resources are added.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="visit(IResource)"><!-- --></A><H3>
+visit</H3>
+<PRE>
+public boolean <B>visit</B>(IResource&nbsp;resource)
+              throws CoreException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>CoreException</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationFramework.ResourceAdder.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationFramework.ResourceAdder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationFramework.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationFramework.html
new file mode 100644
index 0000000..2d0b61e
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationFramework.html
@@ -0,0 +1,1066 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+ValidationFramework
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ValidationFramework";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationFramework.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationFramework.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationFramework.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class ValidationFramework</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.ValidationFramework</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public final class <B>ValidationFramework</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The central class of the Validation Framework.
+ <p>
+ This is a singleton class that is accessed through the getDefault() method. 
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation">ValidationFramework.ResourceAdder</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#addValidationBuilder(IProject)">addValidationBuilder</A></B>(IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add the validation builder to the project, so that the project can support
+ build time validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#applyChanges(org.eclipse.wst.validation.MutableProjectSettings, boolean)">applyChanges</A></B>(<A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A>&nbsp;settings,
+             boolean&nbsp;persist)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apply the changes that have been been to the validation settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#applyChanges(org.eclipse.wst.validation.MutableWorkspaceSettings, boolean)">applyChanges</A></B>(<A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A>&nbsp;settings,
+             boolean&nbsp;persist)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apply the changes that have been been to the validation settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#clearMessages(IResource, java.lang.String)">clearMessages</A></B>(IResource&nbsp;resource,
+              java.lang.String&nbsp;validatorId)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clear any validation markers that may have been set by this validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#disableValidation(IResource)">disableValidation</A></B>(IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disable all validation for the given resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#enableValidation(IResource)">enableValidation</A></B>(IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enable validation for the given resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation">ValidationFramework</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getDefault()">getDefault</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the singleton, default instance of this class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation">IDependencyIndex</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getDependencyIndex()">getDependencyIndex</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the dependency index.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Set&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getDisabledValidatorsFor(IResource)">getDisabledValidatorsFor</A></B>(IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the validators that should not validate the resource, either
+ because their filters don't support the resource, or the validator has
+ been disabled for both build validation and manual validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation">IPerformanceMonitor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getPerformanceMonitor()">getPerformanceMonitor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a performance monitor for the validators.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IEclipsePreferences</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getPreferenceStore()">getPreferenceStore</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the preference store that holds the persisted global validation settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getProjectSettings(IProject)">getProjectSettings</A></B>(IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validation settings that have been defined on the
+ project.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getReporter(IProject, IProgressMonitor)">getReporter</A></B>(IProject&nbsp;project,
+            IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidator(java.lang.String)">getValidator</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use getValidator(String id, IProject project) with a null project instead.</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidator(java.lang.String, IProject)">getValidator</A></B>(java.lang.String&nbsp;id,
+             IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validator with the given id that is in effect for the given
+ project.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidators()">getValidators</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer copies of all the registered validators.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidatorsConfiguredForProject(IProject)">getValidatorsConfiguredForProject</A></B>(IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validators can use project level settings (Project natures and facets) to
+ determine if they are applicable to the project or not.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidatorsFor(IResource)">getValidatorsFor</A></B>(IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the validators that are applicable for the given resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidatorsFor(IResource, boolean, boolean)">getValidatorsFor</A></B>(IResource&nbsp;resource,
+                 boolean&nbsp;isManual,
+                 boolean&nbsp;isBuild)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the validators that are applicable for the given resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#getWorkspaceSettings()">getWorkspaceSettings</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validation settings that have been defined at the workspace level.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#hasValidators(IResource, boolean, boolean)">hasValidators</A></B>(IResource&nbsp;resource,
+              boolean&nbsp;isManual,
+              boolean&nbsp;isBuild)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer true if the resource has any enabled validators.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#isLoaded(org.eclipse.wst.validation.Validator)">isLoaded</A></B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer whether or not the validator has been activated, i.e. has the
+ bundle that defines the validator been loaded.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#isProjectSuspended(IProject)">isProjectSuspended</A></B>(IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method should be called by any code that is preparing to suspend validation on a
+ project.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#isSuspended()">isSuspended</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if "suspend all" is enabled, false otherwise.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#isSuspended(IProject)">isSuspended</A></B>(IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if validation will not run on the project because it's been suspended.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#join(IProgressMonitor)">join</A></B>(IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waits until all validation jobs are finished.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#saveValidators(org.eclipse.wst.validation.Validator[])">saveValidators</A></B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]&nbsp;validators)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save the validators settings into the persistent store, there by making their settings the active settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#suspendAllValidation(boolean)">suspendAllValidation</A></B>(boolean&nbsp;suspend)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suspends, or undoes the suspension of, validation on all projects in the
+ workbench.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#suspendValidation(IProject, boolean)">suspendValidation</A></B>(IProject&nbsp;project,
+                  boolean&nbsp;suspend)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suspends, or undoes the suspension of, validation on the current project.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#validate(IFile, IProgressMonitor)">validate</A></B>(IFile&nbsp;file,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate a specific file resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#validate(IProject[], boolean, boolean, IProgressMonitor)">validate</A></B>(IProject[]&nbsp;projects,
+         boolean&nbsp;isManual,
+         boolean&nbsp;isBuild,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the projects.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getDefault()"><!-- --></A><H3>
+getDefault</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation">ValidationFramework</A> <B>getDefault</B>()</PRE>
+<DL>
+<DD>Answer the singleton, default instance of this class.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addValidationBuilder(IProject)"><!-- --></A><H3>
+addValidationBuilder</H3>
+<PRE>
+public void <B>addValidationBuilder</B>(IProject&nbsp;project)</PRE>
+<DL>
+<DD>Add the validation builder to the project, so that the project can support
+ build time validation. It is safe to call this method, if the builder was
+ previously added to the project. It will not be added more than once.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - The project that the builder is added to.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clearMessages(IResource, java.lang.String)"><!-- --></A><H3>
+clearMessages</H3>
+<PRE>
+public void <B>clearMessages</B>(IResource&nbsp;resource,
+                          java.lang.String&nbsp;validatorId)
+                   throws CoreException</PRE>
+<DL>
+<DD>Clear any validation markers that may have been set by this validator.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource that may have it's markers cleared.<DD><CODE>validatorId</CODE> - The id of validator that created the marker.
+<DT><B>Throws:</B>
+<DD><CODE>CoreException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="disableValidation(IResource)"><!-- --></A><H3>
+disableValidation</H3>
+<PRE>
+public void <B>disableValidation</B>(IResource&nbsp;resource)</PRE>
+<DL>
+<DD>Disable all validation for the given resource. This method instructs
+ the framework to not run any validators on the given resource or any of
+ it's children. This setting is persistent. Currently this only works with version 2
+ validators.
+ <p>
+ Use the enableValidation method to restore validation.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource that is having validation disabled. It must be an IFolder or an IFile.<DT><B>See Also:</B><DD><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#enableValidation(IResource)"><CODE>enableValidation(IResource)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="enableValidation(IResource)"><!-- --></A><H3>
+enableValidation</H3>
+<PRE>
+public void <B>enableValidation</B>(IResource&nbsp;resource)</PRE>
+<DL>
+<DD>Enable validation for the given resource. If the resource was not
+ previously disabled this method call has no effect. Currently this only
+ works with version 2 validators.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource that is having validation re-enabled.<DT><B>See Also:</B><DD><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#disableValidation(IResource)"><CODE>disableValidation(IResource)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDependencyIndex()"><!-- --></A><H3>
+getDependencyIndex</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation">IDependencyIndex</A> <B>getDependencyIndex</B>()</PRE>
+<DL>
+<DD>Answer the dependency index. Validators can use this to determine which resources depend on which
+ other resources.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPerformanceMonitor()"><!-- --></A><H3>
+getPerformanceMonitor</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation">IPerformanceMonitor</A> <B>getPerformanceMonitor</B>()</PRE>
+<DL>
+<DD>Answer a performance monitor for the validators.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPreferenceStore()"><!-- --></A><H3>
+getPreferenceStore</H3>
+<PRE>
+public IEclipsePreferences <B>getPreferenceStore</B>()</PRE>
+<DL>
+<DD>Answer the preference store that holds the persisted global validation settings.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getReporter(IProject, IProgressMonitor)"><!-- --></A><H3>
+getReporter</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A> <B>getReporter</B>(IProject&nbsp;project,
+                             IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidatorsFor(IResource, boolean, boolean)"><!-- --></A><H3>
+getValidatorsFor</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[] <B>getValidatorsFor</B>(IResource&nbsp;resource,
+                                    boolean&nbsp;isManual,
+                                    boolean&nbsp;isBuild)</PRE>
+<DL>
+<DD>Answer all the validators that are applicable for the given resource. A validator is
+ still returned even if it has been turned off by the user.
+ <p>
+ The caller may still need to test if the validator has been turned off by
+ the user, by using the isBuildValidation() and isManualValidation()
+ methods.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource that determines which validators are applicable.<DD><CODE>isManual</CODE> - If true then the validator must be turned on for manual validation.
+                If false then the isManualValidation setting isn't used to filter
+                out validators.<DD><CODE>isBuild</CODE> - If true then the validator must be turned on for build based
+                validation. If false then the isBuildValidation setting isn't used
+                to filter out validators.<DT><B>See Also:</B><DD><A HREF="../../../../org/eclipse/wst/validation/Validator.html#isBuildValidation()"><CODE>Validator.isBuildValidation()</CODE></A>, 
+<A HREF="../../../../org/eclipse/wst/validation/Validator.html#isManualValidation()"><CODE>Validator.isManualValidation()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDisabledValidatorsFor(IResource)"><!-- --></A><H3>
+getDisabledValidatorsFor</H3>
+<PRE>
+public java.util.Set&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&gt; <B>getDisabledValidatorsFor</B>(IResource&nbsp;resource)</PRE>
+<DL>
+<DD>Answer all the validators that should not validate the resource, either
+ because their filters don't support the resource, or the validator has
+ been disabled for both build validation and manual validation.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource this is being tested.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidator(java.lang.String)"><!-- --></A><H3>
+getValidator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> <B>getValidator</B>(java.lang.String&nbsp;id)</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I>Use getValidator(String id, IProject project) with a null project instead.</I>
+<P>
+<DD>Answer the global validator with the given id.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - 
+<DT><B>Returns:</B><DD>null if the validator is not found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidator(java.lang.String, IProject)"><!-- --></A><H3>
+getValidator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> <B>getValidator</B>(java.lang.String&nbsp;id,
+                              IProject&nbsp;project)</PRE>
+<DL>
+<DD>Answer the validator with the given id that is in effect for the given
+ project.
+ <p>
+ Individual projects may override the global validation preference
+ settings. If this is allowed and if the project has it's own settings,
+ then those validators are returned via this method.
+ </p>
+ <p>
+ The following approach is used. For version 1 validators, the validator
+ is only returned if it is defined to operate on this project type. This
+ is the way that the previous version of the framework did it. For version
+ 2 validators, they are all returned.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - Validator id.<DD><CODE>project</CODE> - This can be null, in which case all the registered validators are
+                checked.
+<DT><B>Returns:</B><DD>null if the validator is not found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidators()"><!-- --></A><H3>
+getValidators</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[] <B>getValidators</B>()</PRE>
+<DL>
+<DD>Answer copies of all the registered validators.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Answer an empty array if there are no validators.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getProjectSettings(IProject)"><!-- --></A><H3>
+getProjectSettings</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A> <B>getProjectSettings</B>(IProject&nbsp;project)</PRE>
+<DL>
+<DD>Answer the validation settings that have been defined on the
+ project. To "activate" any changes to these settings, the
+ <A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#applyChanges(org.eclipse.wst.validation.MutableProjectSettings, boolean)"><CODE>applyChanges(MutableProjectSettings, boolean)</CODE></A> method needs to be
+ called.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - The project who's settings you wish to examine or change.
+<DT><B>Returns:</B><DD>Validation settings that apply to the given project.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getWorkspaceSettings()"><!-- --></A><H3>
+getWorkspaceSettings</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A> <B>getWorkspaceSettings</B>()
+                                              throws java.lang.reflect.InvocationTargetException</PRE>
+<DL>
+<DD>Answer the validation settings that have been defined at the workspace level.
+ To "activate" any changes to these settings, the
+ <A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html#applyChanges(org.eclipse.wst.validation.MutableWorkspaceSettings, boolean)"><CODE>applyChanges(MutableWorkspaceSettings, boolean)</CODE></A> method needs to be
+ called.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Validation settings that apply to the entire workspace.
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.reflect.InvocationTargetException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="applyChanges(org.eclipse.wst.validation.MutableProjectSettings, boolean)"><!-- --></A><H3>
+applyChanges</H3>
+<PRE>
+public void <B>applyChanges</B>(<A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A>&nbsp;settings,
+                         boolean&nbsp;persist)</PRE>
+<DL>
+<DD>Apply the changes that have been been to the validation settings.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>settings</CODE> - The project settings.<DD><CODE>persist</CODE> - If true then the changes are persisted to the property files.
+            If false the changes are applied to the validators, but are
+            not persisted.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="applyChanges(org.eclipse.wst.validation.MutableWorkspaceSettings, boolean)"><!-- --></A><H3>
+applyChanges</H3>
+<PRE>
+public void <B>applyChanges</B>(<A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A>&nbsp;settings,
+                         boolean&nbsp;persist)</PRE>
+<DL>
+<DD>Apply the changes that have been been to the validation settings.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>settings</CODE> - The workspace settings.<DD><CODE>persist</CODE> - If true then the changes are persisted to the property files.
+            If false the changes are applied to the validators, but are
+            not persisted.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidatorsConfiguredForProject(IProject)"><!-- --></A><H3>
+getValidatorsConfiguredForProject</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[] <B>getValidatorsConfiguredForProject</B>(IProject&nbsp;project)
+                                              throws org.eclipse.wst.validation.internal.ProjectUnavailableError</PRE>
+<DL>
+<DD>Validators can use project level settings (Project natures and facets) to
+ determine if they are applicable to the project or not.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - The project that the configuration is based on.
+<DT><B>Returns:</B><DD>The copies of the validators that are configured to run on this project based
+         on the project level settings.
+<DT><B>Throws:</B>
+<DD><CODE>org.eclipse.wst.validation.internal.ProjectUnavailableError</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidatorsFor(IResource)"><!-- --></A><H3>
+getValidatorsFor</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[] <B>getValidatorsFor</B>(IResource&nbsp;resource)</PRE>
+<DL>
+<DD>Answer all the validators that are applicable for the given resource.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - the resource that determines which validators are applicable.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasValidators(IResource, boolean, boolean)"><!-- --></A><H3>
+hasValidators</H3>
+<PRE>
+public boolean <B>hasValidators</B>(IResource&nbsp;resource,
+                             boolean&nbsp;isManual,
+                             boolean&nbsp;isBuild)</PRE>
+<DL>
+<DD>Answer true if the resource has any enabled validators.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - A file, folder or project.<DD><CODE>isManual</CODE> - If true then the validator must be turned on for manual validation.
+                If false then the isManualValidation setting isn't used to filter
+                out validators.<DD><CODE>isBuild</CODE> - If true then the validator must be turned on for build based
+                validation. If false then the isBuildValidation setting isn't used
+                to filter out validators.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isLoaded(org.eclipse.wst.validation.Validator)"><!-- --></A><H3>
+isLoaded</H3>
+<PRE>
+public boolean <B>isLoaded</B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</PRE>
+<DL>
+<DD>Answer whether or not the validator has been activated, i.e. has the
+ bundle that defines the validator been loaded. We do not want to cause
+ unnecessary bundle loading, so this check can be performed by third party
+ callers, to prevent making other calls that will force the validator to
+ be loaded.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>validator</CODE> - The validator that is being tested.
+<DT><B>Returns:</B><DD>true if the validator has already been loaded.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="join(IProgressMonitor)"><!-- --></A><H3>
+join</H3>
+<PRE>
+public void <B>join</B>(IProgressMonitor&nbsp;monitor)
+          throws java.lang.InterruptedException,
+                 OperationCanceledException</PRE>
+<DL>
+<DD>Waits until all validation jobs are finished. This method will block the
+ calling thread until all such jobs have finished executing, or until this
+ thread is interrupted. If there are no validation jobs that are
+ currently waiting, running, or sleeping, this method returns immediately.
+ Feedback on how the join is progressing is provided to the progress
+ monitor.
+ <p>
+ If this method is called while the job manager is suspended, only jobs
+ that are currently running will be joined. Once there are no jobs in the
+ family in the <CODE>Job#RUNNING</CODE> state, this method returns.
+ </p>
+ <p>
+ Note that there is a deadlock risk when using join. If the calling thread
+ owns a lock or object monitor that the joined thread is waiting for,
+ deadlock will occur. This method can also result in starvation of the
+ current thread if another thread continues to add jobs of the given
+ family, or if a job in the given family reschedules itself in an infinite
+ loop.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>monitor</CODE> - Progress monitor for reporting progress on how the wait is
+                progressing, or <code>null</code> if no progress monitoring is
+                required.
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.InterruptedException</CODE> - if this thread is interrupted while waiting
+<DD><CODE>OperationCanceledException</CODE> - if the progress monitor is canceled while waiting</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suspendValidation(IProject, boolean)"><!-- --></A><H3>
+suspendValidation</H3>
+<PRE>
+public void <B>suspendValidation</B>(IProject&nbsp;project,
+                              boolean&nbsp;suspend)</PRE>
+<DL>
+<DD>Suspends, or undoes the suspension of, validation on the current project.
+ If <b>suspend</b> is true then validation is suspended and if it's false
+ then validation is not suspended on the project. The value of this
+ variable is not persisted.
+ <p>
+ Be <b>very careful</b> when you use this method! Turn validation back on in a
+ finally block because if the code which suspended validation crashes, the
+ user has no way to reset the suspension. The user will have to shut down
+ and restart the workbench to get validation to work again.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - The project that is to be suspended or unsuspended.<DD><CODE>suspend</CODE> - If true, validation on the project will be suspend. If false it will
+                not be suspended.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="saveValidators(org.eclipse.wst.validation.Validator[])"><!-- --></A><H3>
+saveValidators</H3>
+<PRE>
+public void <B>saveValidators</B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]&nbsp;validators)
+                    throws java.lang.reflect.InvocationTargetException</PRE>
+<DL>
+<DD>Save the validators settings into the persistent store, there by making their settings the active settings.
+ <p>
+ A common use of this method would be to change whether particular validators are enabled or not. For example
+ if you only wanted the JSP validator enabled, you could use code similar to this:
+ <pre>
+ ValidationFramework vf = ValidationFramework.getDefault();
+ Validator[] vals = vf.getValidators();
+ for (Validator v : vals){
+   boolean enabled = false;
+   if (v.getValidatorClassname().equals("org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator"))enabled = true;
+     v.setBuildValidation(enabled);
+     v.setManualValidation(enabled);
+  }
+ vf.saveValidators(vals);
+ </pre>
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>validators</CODE> - The validators that you are saving.
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.reflect.InvocationTargetException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suspendAllValidation(boolean)"><!-- --></A><H3>
+suspendAllValidation</H3>
+<PRE>
+public void <B>suspendAllValidation</B>(boolean&nbsp;suspend)</PRE>
+<DL>
+<DD>Suspends, or undoes the suspension of, validation on all projects in the
+ workbench. If "suspend" is true then validation is suspended and if it's
+ "false" then validation is not suspended. The value of this variable is
+ not persisted.
+ <p>
+ Be <b>very careful</b> when you use this method! Turn validation back on in a
+ finally block because if the code which suspended validation crashes, the
+ user has no way to reset the suspension. The user will have to shut down
+ and restart the workbench to get validation to work again.
+ </p>
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSuspended()"><!-- --></A><H3>
+isSuspended</H3>
+<PRE>
+public boolean <B>isSuspended</B>()</PRE>
+<DL>
+<DD>Return true if "suspend all" is enabled, false otherwise.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSuspended(IProject)"><!-- --></A><H3>
+isSuspended</H3>
+<PRE>
+public boolean <B>isSuspended</B>(IProject&nbsp;project)</PRE>
+<DL>
+<DD>Returns true if validation will not run on the project because it's been suspended. This
+ method checks only the suspension status; if validation cannot run for some other reason (for
+ example, there are no enabled validators), yet the IProject is not suspended, this method
+ will return true even though validation will not run.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isProjectSuspended(IProject)"><!-- --></A><H3>
+isProjectSuspended</H3>
+<PRE>
+public boolean <B>isProjectSuspended</B>(IProject&nbsp;project)</PRE>
+<DL>
+<DD>This method should be called by any code that is preparing to suspend validation on a
+ project. Rather than calling isSuspended(IProject), which will also return true if all validation
+ has been suspended.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - the project that is being tested
+<DT><B>Returns:</B><DD>boolean true if the project has been suspended</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validate(IProject[], boolean, boolean, IProgressMonitor)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A> <B>validate</B>(IProject[]&nbsp;projects,
+                                  boolean&nbsp;isManual,
+                                  boolean&nbsp;isBuild,
+                                  IProgressMonitor&nbsp;monitor)
+                           throws CoreException</PRE>
+<DL>
+<DD>Validate the projects. Exactly one of isManual or isBuild needs to be true.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>projects</CODE> - The projects to be validated.<DD><CODE>isManual</CODE> - Is this being done as part of a manual validation? i.e. did
+            the user select the Validate menu item?<DD><CODE>isBuild</CODE> - Is this being done as part of a build?<DD><CODE>monitor</CODE> - 
+<DT><B>Returns:</B><DD>the validation result which is the combined result for all the
+         resources that were validated.
+<DT><B>Throws:</B>
+<DD><CODE>CoreException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validate(IFile, IProgressMonitor)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A> <B>validate</B>(IFile&nbsp;file,
+                                  IProgressMonitor&nbsp;monitor)
+                           throws CoreException</PRE>
+<DL>
+<DD>Validate a specific file resource.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>file</CODE> - The file to be validated.<DD><CODE>monitor</CODE> - Progress monitor.
+<DT><B>Returns:</B><DD>the result of validating the file.
+<DT><B>Throws:</B>
+<DD><CODE>CoreException</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationFramework.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationFramework.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationFramework.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationResult.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationResult.html
new file mode 100644
index 0000000..0c2c0eb
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationResult.html
@@ -0,0 +1,845 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+ValidationResult
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ValidationResult";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationResult.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationResult.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationResult.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class ValidationResult</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.ValidationResult</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public final class <B>ValidationResult</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The result of running a validate operation. Validators create and return this objects as part of
+ performing their validation.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#ValidationResult()">ValidationResult</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#add(org.eclipse.wst.validation.ValidatorMessage)">add</A></B>(<A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is an optional method, that a validator can use to return error
+ messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IResource[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getDependsOn()">getDependsOn</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the resources that the validated resource depends on.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getMessages()">getMessages</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer any validation messages that were added by the validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getMessagesAsCopy()">getMessagesAsCopy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a copy of any validation messages that were added by the validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getNumberOfValidatedResources()">getNumberOfValidatedResources</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the number of resources that have been validated.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getReporter(IProgressMonitor)">getReporter</A></B>(IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer an IReporter for handing error messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getSeverityError()">getSeverityError</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the number of error messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getSeverityInfo()">getSeverityInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the number of informational messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getSeverityWarning()">getSeverityWarning</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the number of warning messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IProject</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getSuspendValidation()">getSuspendValidation</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the project that the validator would like to have suspended.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IResource[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getValidated()">getValidated</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;org.eclipse.wst.validation.internal.core.ValidationException</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getValidationException()">getValidationException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the validation ended with an exception, answer it.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#incrementError(int)">incrementError</A></B>(int&nbsp;errors)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Increment the number of error messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#incrementInfo(int)">incrementInfo</A></B>(int&nbsp;info)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Increment the number of informational messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#incrementWarning(int)">incrementWarning</A></B>(int&nbsp;warnings)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Increment the number of warning messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#isCanceled()">isCanceled</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Was the operation canceled before it completed?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#mergeResults(org.eclipse.wst.validation.ValidationResult)">mergeResults</A></B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A>&nbsp;result)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Merge the message counts and messages from an individual validator into this result.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#setCanceled(boolean)">setCanceled</A></B>(boolean&nbsp;canceled)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicate if the operation was canceled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#setDependsOn(IResource[])">setDependsOn</A></B>(IResource[]&nbsp;dependsOn)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Update the resources that the validated resource depends on.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#setSeverityError(int)">setSeverityError</A></B>(int&nbsp;severityError)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the number of error messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#setSeverityInfo(int)">setSeverityInfo</A></B>(int&nbsp;severityInfo)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the number of informational messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#setSeverityWarning(int)">setSeverityWarning</A></B>(int&nbsp;severityWarning)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the number of warning messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#setSuspendValidation(IProject)">setSuspendValidation</A></B>(IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calling this method will inform the framework, that this validator does not wish to be
+ called again for any resources in this project, for the duration of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#setValidated(IResource[])">setValidated</A></B>(IResource[]&nbsp;validated)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicate that additional resources have been validated as part of this
+ validate operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#setValidationException(org.eclipse.wst.validation.internal.core.ValidationException)">setValidationException</A></B>(org.eclipse.wst.validation.internal.core.ValidationException&nbsp;validationException)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the validation failed with an exception, it can be recorded here.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ValidationResult()"><!-- --></A><H3>
+ValidationResult</H3>
+<PRE>
+public <B>ValidationResult</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="add(org.eclipse.wst.validation.ValidatorMessage)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>&nbsp;message)</PRE>
+<DL>
+<DD>This is an optional method, that a validator can use to return error
+ messages. The validation framework converts these into IMarkers.
+ <p>
+ The scenario that motivated this method, is when a validator is used both
+ for <b>as you type</b> validation and <b>build</b> validation. When
+ called in as you type mode, the validator doesn't want to directly create IMarkers,
+ because the resource hasn't been saved yet. It needs to return something
+ other than an IMarker. But when called in build mode, it does ultimately
+ want IMarkers. By returning ValidatorMessages, it only needs to return
+ one type of message, and those messages can be either be directly used by
+ the caller, or automatically converted into IMarkers by the validation
+ framework.
+ </p>
+ <p>
+ To make matters even more complicated there is a third way to return
+ messages. To make it easier for old validators to port to the new
+ framework, they can continue to use an IReporter. If a validator calls
+ the getReporter() method then it is assumed by the framework that that is
+ the approach that they have chosen.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>message</CODE> - A validation message.<DT><B>See Also:</B><DD><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#getReporter(IProgressMonitor)"><CODE>getReporter(IProgressMonitor)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getReporter(IProgressMonitor)"><!-- --></A><H3>
+getReporter</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A> <B>getReporter</B>(IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>Answer an IReporter for handing error messages.
+ <p>
+ This is a transition method, to help old validators port to the new validation framework. If this method
+ is called it is assumed by the framework, that this IReporter will be used as the only way of passing messages
+ back to the framework.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>monitor</CODE> - <DT><B>See Also:</B><DD><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html#add(org.eclipse.wst.validation.ValidatorMessage)"><CODE>add(ValidatorMessage)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="mergeResults(org.eclipse.wst.validation.ValidationResult)"><!-- --></A><H3>
+mergeResults</H3>
+<PRE>
+public void <B>mergeResults</B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A>&nbsp;result)</PRE>
+<DL>
+<DD>Merge the message counts and messages from an individual validator into this result.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>result</CODE> - it can be null, in which case it is ignored.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDependsOn()"><!-- --></A><H3>
+getDependsOn</H3>
+<PRE>
+public IResource[] <B>getDependsOn</B>()</PRE>
+<DL>
+<DD>Answer the resources that the validated resource depends on.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMessages()"><!-- --></A><H3>
+getMessages</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>[] <B>getMessages</B>()</PRE>
+<DL>
+<DD>Answer any validation messages that were added by the validator.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array is returned even if there are no messages.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMessagesAsCopy()"><!-- --></A><H3>
+getMessagesAsCopy</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>[] <B>getMessagesAsCopy</B>()</PRE>
+<DL>
+<DD>Answer a copy of any validation messages that were added by the validator. The array is a new
+ array, and each message is a copy.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array is returned even if there are no messages.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDependsOn(IResource[])"><!-- --></A><H3>
+setDependsOn</H3>
+<PRE>
+public void <B>setDependsOn</B>(IResource[]&nbsp;dependsOn)</PRE>
+<DL>
+<DD>Update the resources that the validated resource depends on. This can be
+ left null. For example, a XML file may depend on a XSD file in order to
+ know if it is valid or not. It would pass back that XSD file.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dependsOn</CODE> - If this is null then the dependency information is not updated. To
+                remove the dependency information, an empty array needs to be
+                supplied. A non null parameter, <b>replaces</b> all the dependency
+                information for this resource, for this validator.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidated()"><!-- --></A><H3>
+getValidated</H3>
+<PRE>
+public IResource[] <B>getValidated</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>All the resources that were validated as a side-effect of
+        validating the main resource, or null if none were.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setValidated(IResource[])"><!-- --></A><H3>
+setValidated</H3>
+<PRE>
+public void <B>setValidated</B>(IResource[]&nbsp;validated)</PRE>
+<DL>
+<DD>Indicate that additional resources have been validated as part of this
+ validate operation. Sometimes in the course of performing a validation on
+ one resource it is necessary to validate other resources as well. This
+ method is used to let the framework know about these additional validated
+ resources, to possibly save them being validated redundantly.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>validated</CODE> - Any additional resources that were validated.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSeverityError()"><!-- --></A><H3>
+getSeverityError</H3>
+<PRE>
+public int <B>getSeverityError</B>()</PRE>
+<DL>
+<DD>Answer the number of error messages that were generated as part of this validation operation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSeverityError(int)"><!-- --></A><H3>
+setSeverityError</H3>
+<PRE>
+public void <B>setSeverityError</B>(int&nbsp;severityError)</PRE>
+<DL>
+<DD>Set the number of error messages that were generated as part of this validation operation.
+ <p>
+ Messages added through the add(ValidationMessage) method should not be included here, as this
+ information will be determined from the ValidationMessage.
+ </p>
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="incrementError(int)"><!-- --></A><H3>
+incrementError</H3>
+<PRE>
+public int <B>incrementError</B>(int&nbsp;errors)</PRE>
+<DL>
+<DD>Increment the number of error messages that were generated as part of this validation operation.
+ <p>
+ Messages added through the add(ValidationMessage) method should not be included here, as this
+ information will be determined from the ValidationMessage.
+ </p>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the current number of errors.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSeverityWarning()"><!-- --></A><H3>
+getSeverityWarning</H3>
+<PRE>
+public int <B>getSeverityWarning</B>()</PRE>
+<DL>
+<DD>Answer the number of warning messages that were generated as part of this validation operation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSeverityWarning(int)"><!-- --></A><H3>
+setSeverityWarning</H3>
+<PRE>
+public void <B>setSeverityWarning</B>(int&nbsp;severityWarning)</PRE>
+<DL>
+<DD>Set the number of warning messages that were generated as part of this validation operation.
+ <p>
+ Messages added through the add(ValidationMessage) method should not be included here, as this
+ information will be determined from the ValidationMessage.
+ </p>
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="incrementWarning(int)"><!-- --></A><H3>
+incrementWarning</H3>
+<PRE>
+public int <B>incrementWarning</B>(int&nbsp;warnings)</PRE>
+<DL>
+<DD>Increment the number of warning messages that were generated as part of this validation operation.
+ <p>
+ Messages added through the add(ValidationMessage) method should not be included here, as this
+ information will be determined from the ValidationMessage.
+ </p>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the current number of warnings.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSeverityInfo()"><!-- --></A><H3>
+getSeverityInfo</H3>
+<PRE>
+public int <B>getSeverityInfo</B>()</PRE>
+<DL>
+<DD>Answer the number of informational messages that were generated as part of this validation operation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSeverityInfo(int)"><!-- --></A><H3>
+setSeverityInfo</H3>
+<PRE>
+public void <B>setSeverityInfo</B>(int&nbsp;severityInfo)</PRE>
+<DL>
+<DD>Set the number of informational messages that were generated as part of this validation operation.
+ <p>
+ Messages added through the add(ValidationMessage) method should not be included here, as this
+ information will be determined from the ValidationMessage.
+ </p>
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="incrementInfo(int)"><!-- --></A><H3>
+incrementInfo</H3>
+<PRE>
+public int <B>incrementInfo</B>(int&nbsp;info)</PRE>
+<DL>
+<DD>Increment the number of informational messages that were generated as part of this validation operation.
+ <p>
+ Messages added through the add(ValidationMessage) method should not be included here, as this
+ information will be determined from the ValidationMessage.
+ </p>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the current number of informational message.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCanceled()"><!-- --></A><H3>
+isCanceled</H3>
+<PRE>
+public boolean <B>isCanceled</B>()</PRE>
+<DL>
+<DD>Was the operation canceled before it completed? For example if the validation is being run through the
+ user interface, the end user can cancel the operation through the progress monitor.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the operation was canceled</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCanceled(boolean)"><!-- --></A><H3>
+setCanceled</H3>
+<PRE>
+public void <B>setCanceled</B>(boolean&nbsp;canceled)</PRE>
+<DL>
+<DD>Indicate if the operation was canceled.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>canceled</CODE> - Set to true if it was canceled and false if it was not canceled.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumberOfValidatedResources()"><!-- --></A><H3>
+getNumberOfValidatedResources</H3>
+<PRE>
+public int <B>getNumberOfValidatedResources</B>()</PRE>
+<DL>
+<DD>Answer the number of resources that have been validated.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidationException()"><!-- --></A><H3>
+getValidationException</H3>
+<PRE>
+public org.eclipse.wst.validation.internal.core.ValidationException <B>getValidationException</B>()</PRE>
+<DL>
+<DD>If the validation ended with an exception, answer it.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>null if the validator did not finish with an exception.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setValidationException(org.eclipse.wst.validation.internal.core.ValidationException)"><!-- --></A><H3>
+setValidationException</H3>
+<PRE>
+public void <B>setValidationException</B>(org.eclipse.wst.validation.internal.core.ValidationException&nbsp;validationException)</PRE>
+<DL>
+<DD>If the validation failed with an exception, it can be recorded here.
+ <p>
+ This method is provided for old validators to ease their transition to the new framework.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>validationException</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSuspendValidation()"><!-- --></A><H3>
+getSuspendValidation</H3>
+<PRE>
+public IProject <B>getSuspendValidation</B>()</PRE>
+<DL>
+<DD>Answer the project that the validator would like to have suspended.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the project to suspend or null. The normal result is null, which means that
+ the validator wishes to receive normal validation requests.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSuspendValidation(IProject)"><!-- --></A><H3>
+setSuspendValidation</H3>
+<PRE>
+public void <B>setSuspendValidation</B>(IProject&nbsp;project)</PRE>
+<DL>
+<DD>Calling this method will inform the framework, that this validator does not wish to be
+ called again for any resources in this project, for the duration of this validation operation.
+ <p>
+ Some validators may have a rich set of triggers, but once they have been invoked once,
+ do not need to be invoked again during the course of the current validation.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - The project that this validator no longer wants to be notified on.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationResult.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationResult.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationResult.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationResults.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationResults.html
new file mode 100644
index 0000000..9c71970
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationResults.html
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+ValidationResults
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ValidationResults";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationResults.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationResults.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationResults.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class ValidationResults</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.ValidationResults</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public final class <B>ValidationResults</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The combined results of validating multiple resources.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html#ValidationResults(org.eclipse.wst.validation.ValidationResult)">ValidationResults</A></B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A>&nbsp;result)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html#getMessages()">getMessages</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer any validation messages that were added by the validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html#getSeverityError()">getSeverityError</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the number of error messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html#getSeverityInfo()">getSeverityInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the number of informational messages that were generated as part of this validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html#getSeverityWarning()">getSeverityWarning</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the number of warning messages that were generated as part of this validation operation.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ValidationResults(org.eclipse.wst.validation.ValidationResult)"><!-- --></A><H3>
+ValidationResults</H3>
+<PRE>
+public <B>ValidationResults</B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A>&nbsp;result)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getMessages()"><!-- --></A><H3>
+getMessages</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>[] <B>getMessages</B>()</PRE>
+<DL>
+<DD>Answer any validation messages that were added by the validation operation.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array is returned even if there are no messages.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSeverityError()"><!-- --></A><H3>
+getSeverityError</H3>
+<PRE>
+public int <B>getSeverityError</B>()</PRE>
+<DL>
+<DD>Answer the number of error messages that were generated as part of this validation operation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSeverityInfo()"><!-- --></A><H3>
+getSeverityInfo</H3>
+<PRE>
+public int <B>getSeverityInfo</B>()</PRE>
+<DL>
+<DD>Answer the number of informational messages that were generated as part of this validation operation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSeverityWarning()"><!-- --></A><H3>
+getSeverityWarning</H3>
+<PRE>
+public int <B>getSeverityWarning</B>()</PRE>
+<DL>
+<DD>Answer the number of warning messages that were generated as part of this validation operation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationResults.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationResults.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationResults.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationState.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationState.html
new file mode 100644
index 0000000..06a4007
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidationState.html
@@ -0,0 +1,343 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+ValidationState
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ValidationState";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationState.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class ValidationState</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.ValidationState</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public final class <B>ValidationState</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Keep track of arbitrary validation data, during the course of a validation.
+ <p>
+ To enable more efficient caching, the validation framework, allows individual validators to cache
+ arbitrary data during the validation process. Use of this object is completely optional.
+ <p>
+ Since some validators wish to share data with other validators, any validator can see the state data for
+ any other validator, since the id is simply the validator's extension id.
+ <p>
+ This object is freed at the end of the validation process.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationState.html#TriggerResource">TriggerResource</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>This approach is not thread safe, the longer form of the AbstractValidator validate method should be used instead.</I></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationState.html#ValidationState()">ValidationState</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationState.html#get(java.lang.String)">get</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the state data for the given validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidationState.html#put(java.lang.String, java.lang.Object)">put</A></B>(java.lang.String&nbsp;id,
+    java.lang.Object&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save some state information.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TriggerResource"><!-- --></A><H3>
+TriggerResource</H3>
+<PRE>
+public static final java.lang.String <B>TriggerResource</B></PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;<I>This approach is not thread safe, the longer form of the AbstractValidator validate method should be used instead.</I><DD>This is a special id.
+ <p>
+ If a resource that is depended on by others is changed, then the
+ dependent resources are validated. The depended on resource, which is the
+ resource that actually changed, is placed into the ValidationState using
+ this id.
+ </p>
+<P>
+<DL>
+<DT><B>See Also:</B><DD><CODE>AbstractValidator#validate(ValidationEvent, ValidationState, org.eclipse.core.runtime.IProgressMonitor)</CODE></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ValidationState()"><!-- --></A><H3>
+ValidationState</H3>
+<PRE>
+public <B>ValidationState</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="put(java.lang.String, java.lang.Object)"><!-- --></A><H3>
+put</H3>
+<PRE>
+public void <B>put</B>(java.lang.String&nbsp;id,
+                java.lang.Object&nbsp;value)</PRE>
+<DL>
+<DD>Save some state information.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - By convention this is the fully qualified validator extension id.
+                For example: org.eclipse.wst.html.ui.HTMLValidator<DD><CODE>value</CODE> - Any arbitrary data that the validator might find useful. The
+                validation framework doesn't do anything with this object except
+                pass it along during the validation process.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="get(java.lang.String)"><!-- --></A><H3>
+get</H3>
+<PRE>
+public java.lang.Object <B>get</B>(java.lang.String&nbsp;id)</PRE>
+<DL>
+<DD>Answer the state data for the given validator.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - By convention this is the fully qualified validator extension point
+                id. For example org.eclipse.wst.html.ui.HTMLValidator
+<DT><B>Returns:</B><DD>any arbitrary data that the validator might find useful,
+        including null.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidationState.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidationState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.Level.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.Level.html
new file mode 100644
index 0000000..3755b02
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.Level.html
@@ -0,0 +1,348 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Validator.Level
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Validator.Level";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Validator.Level.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Validator.Level.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.Level.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Enum Validator.Level</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>&gt;
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.Validator.Level</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>&gt;</DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public static enum <B>Validator.Level</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>&gt;</DL>
+</PRE>
+
+<P>
+The level of configuration for the validator.
+ <ul>
+ <li>Extension - Defined by an extension point.</li>
+ <li>Global - Defined by a global preference.</li>
+ <li>Project - Defined by a project property.</li>
+ </ul>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+
+<A NAME="enum_constant_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Enum Constant Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html#Extension">Extension</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html#Global">Global</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html#Project">Project</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they are declared.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+
+<A NAME="enum_constant_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Enum Constant Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Extension"><!-- --></A><H3>
+Extension</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A> <B>Extension</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="Global"><!-- --></A><H3>
+Global</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A> <B>Global</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="Project"><!-- --></A><H3>
+Project</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A> <B>Project</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="values()"><!-- --></A><H3>
+values</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>[] <B>values</B>()</PRE>
+<DL>
+<DD>Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (Validator.Level c : Validator.Level.values())
+&nbsp;   System.out.println(c);
+</pre>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
+the order they are declared</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
+valueOf</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD>Returns the enum constant of this type with the specified name.
+The string must match <I>exactly</I> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
+<DT><B>Returns:</B><DD>the enum constant with the specified name
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
+with the specified name
+<DD><CODE>java.lang.NullPointerException</CODE> - if the argument is null</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Validator.Level.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Validator.Level.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.Level.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.V1.V1Copy.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.V1.V1Copy.html
new file mode 100644
index 0000000..c75c83a
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.V1.V1Copy.html
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Validator.V1.V1Copy
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Validator.V1.V1Copy";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Validator.V1.V1Copy.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Validator.V1.V1Copy.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V1.V1Copy.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_org.eclipse.wst.validation.Validator.V1">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class Validator.V1.V1Copy</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">org.eclipse.wst.validation.Validator</A>
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">org.eclipse.wst.validation.Validator.V1</A>
+          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.Validator.V1.V1Copy</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&gt;</DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public static final class <B>Validator.V1.V1Copy</B><DT>extends <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="nested_classes_inherited_from_class_org.eclipse.wst.validation.Validator.V1"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Nested classes/interfaces inherited from class org.eclipse.wst.validation.<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation">Validator.V1.V1Copy</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<A NAME="nested_classes_inherited_from_class_org.eclipse.wst.validation.Validator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Nested classes/interfaces inherited from class org.eclipse.wst.validation.<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html#Validator.V1.V1Copy(ValidatorMetaData, ValidationConfiguration, IProject)">Validator.V1.V1Copy</A></B>(ValidatorMetaData&nbsp;vmd,
+                    ValidationConfiguration&nbsp;vc,
+                    IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html#setBuildValidation(boolean)">setBuildValidation</A></B>(boolean&nbsp;bool)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether this validator should be triggered by the build process.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html#setManualValidation(boolean)">setManualValidation</A></B>(boolean&nbsp;bool)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether this validator should be triggered as part of a manual validation.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.validation.Validator.V1"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class org.eclipse.wst.validation.<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#asIValidator()">asIValidator</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#asV1Validator()">asV1Validator</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#copy(boolean)">copy</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#getId()">getId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#getName()">getName</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#getValidatorClassname()">getValidatorClassname</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#getVmd()">getVmd</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">validate</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.validation.Validator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class org.eclipse.wst.validation.<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asV2Validator()">asV2Validator</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#bumpChangeCountGlobal()">bumpChangeCountGlobal</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#bumpChangeCountMessages()">bumpChangeCountMessages</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#clean(IProject, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">clean</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#compareTo(org.eclipse.wst.validation.Validator)">compareTo</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#copy()">copy</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#create(IConfigurationElement, IProject)">create</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#create(ValidatorMetaData, ValidationConfiguration, IProject)">create</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getChangeCountGlobal()">getChangeCountGlobal</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getChangeCountMessages()">getChangeCountMessages</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getDelegatingId()">getDelegatingId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMarkerId()">getMarkerId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMessage(java.lang.String)">getMessage</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMessageSettings()">getMessageSettings</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getProject()">getProject</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getSourceId()">getSourceId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getVersion()">getVersion</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#hasGlobalChanges()">hasGlobalChanges</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#hashCodeForConfig()">hashCodeForConfig</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#isBuildValidation()">isBuildValidation</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#isChanged()">isChanged</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#isManualValidation()">isManualValidation</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#resetChangeCounters()">resetChangeCounters</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#sameConfig(org.eclipse.wst.validation.Validator)">sameConfig</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setDelegatingId(java.lang.String)">setDelegatingId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setMarkerId(java.lang.String)">setMarkerId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setSourceId(java.lang.String)">setSourceId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setVersion(int)">setVersion</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)">shouldClearMarkers</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidate(IResource, boolean, boolean)">shouldValidate</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidate(IResource, org.eclipse.wst.validation.internal.ValType)">shouldValidate</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidateProject(IProject, boolean, boolean)">shouldValidateProject</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidateProject(IProject, org.eclipse.wst.validation.internal.ValType)">shouldValidateProject</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#toString()">toString</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)">validate</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Validator.V1.V1Copy(ValidatorMetaData, ValidationConfiguration, IProject)"><!-- --></A><H3>
+Validator.V1.V1Copy</H3>
+<PRE>
+public <B>Validator.V1.V1Copy</B>(ValidatorMetaData&nbsp;vmd,
+                           ValidationConfiguration&nbsp;vc,
+                           IProject&nbsp;project)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="setManualValidation(boolean)"><!-- --></A><H3>
+setManualValidation</H3>
+<PRE>
+public boolean <B>setManualValidation</B>(boolean&nbsp;bool)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setManualValidation(boolean)">Validator</A></CODE></B></DD>
+<DD>Set whether this validator should be triggered as part of a manual validation.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#setManualValidation(boolean)">setManualValidation</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the setting changed.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setBuildValidation(boolean)"><!-- --></A><H3>
+setBuildValidation</H3>
+<PRE>
+public boolean <B>setBuildValidation</B>(boolean&nbsp;bool)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setBuildValidation(boolean)">Validator</A></CODE></B></DD>
+<DD>Set whether this validator should be triggered by the build process.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#setBuildValidation(boolean)">setBuildValidation</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the setting changed.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Validator.V1.V1Copy.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Validator.V1.V1Copy.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V1.V1Copy.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_org.eclipse.wst.validation.Validator.V1">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.V1.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.V1.html
new file mode 100644
index 0000000..7edf03d
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.V1.html
@@ -0,0 +1,532 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Validator.V1
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Validator.V1";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Validator.V1.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Validator.V1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class Validator.V1</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">org.eclipse.wst.validation.Validator</A>
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.Validator.V1</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&gt;</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation">Validator.V1.V1Copy</A></DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public static class <B>Validator.V1</B><DT>extends <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></DL>
+</PRE>
+
+<P>
+A validator that uses version 1 of the validation framework.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation">Validator.V1.V1Copy</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="nested_classes_inherited_from_class_org.eclipse.wst.validation.Validator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Nested classes/interfaces inherited from class org.eclipse.wst.validation.<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#Validator.V1(ValidatorMetaData, ValidationConfiguration, IProject)">Validator.V1</A></B>(ValidatorMetaData&nbsp;vmd,
+             ValidationConfiguration&nbsp;config,
+             IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new version 1 validator.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#asIValidator()">asIValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#asV1Validator()">asV1Validator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If you are a version 1 validator, answer yourself as one, otherwise answer null.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#copy(boolean)">copy</A></B>(boolean&nbsp;includeChangeCounts)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#getName()">getName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#getValidatorClassname()">getValidatorClassname</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the name of the class that implements the validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;ValidatorMetaData</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#getVmd()">getVmd</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#setBuildValidation(boolean)">setBuildValidation</A></B>(boolean&nbsp;buildValidation)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether this validator should be triggered by the build process.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#setManualValidation(boolean)">setManualValidation</A></B>(boolean&nbsp;manualValidation)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether this validator should be triggered as part of a manual validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.validation.Validator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class org.eclipse.wst.validation.<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asV2Validator()">asV2Validator</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#bumpChangeCountGlobal()">bumpChangeCountGlobal</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#bumpChangeCountMessages()">bumpChangeCountMessages</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#clean(IProject, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">clean</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#compareTo(org.eclipse.wst.validation.Validator)">compareTo</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#copy()">copy</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#create(IConfigurationElement, IProject)">create</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#create(ValidatorMetaData, ValidationConfiguration, IProject)">create</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getChangeCountGlobal()">getChangeCountGlobal</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getChangeCountMessages()">getChangeCountMessages</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getDelegatingId()">getDelegatingId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMarkerId()">getMarkerId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMessage(java.lang.String)">getMessage</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMessageSettings()">getMessageSettings</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getProject()">getProject</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getSourceId()">getSourceId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getVersion()">getVersion</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#hasGlobalChanges()">hasGlobalChanges</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#hashCodeForConfig()">hashCodeForConfig</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#isBuildValidation()">isBuildValidation</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#isChanged()">isChanged</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#isManualValidation()">isManualValidation</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#resetChangeCounters()">resetChangeCounters</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#sameConfig(org.eclipse.wst.validation.Validator)">sameConfig</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setDelegatingId(java.lang.String)">setDelegatingId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setMarkerId(java.lang.String)">setMarkerId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setSourceId(java.lang.String)">setSourceId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setVersion(int)">setVersion</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)">shouldClearMarkers</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidate(IResource, boolean, boolean)">shouldValidate</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidate(IResource, org.eclipse.wst.validation.internal.ValType)">shouldValidate</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidateProject(IProject, boolean, boolean)">shouldValidateProject</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidateProject(IProject, org.eclipse.wst.validation.internal.ValType)">shouldValidateProject</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#toString()">toString</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)">validate</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Validator.V1(ValidatorMetaData, ValidationConfiguration, IProject)"><!-- --></A><H3>
+Validator.V1</H3>
+<PRE>
+public <B>Validator.V1</B>(ValidatorMetaData&nbsp;vmd,
+                    ValidationConfiguration&nbsp;config,
+                    IProject&nbsp;project)</PRE>
+<DL>
+<DD>Create a new version 1 validator.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>vmd</CODE> - <DD><CODE>config</CODE> - this is used to set the global enablement options. In some case this can be null.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="asIValidator()"><!-- --></A><H3>
+asIValidator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A> <B>asIValidator</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asIValidator()">asIValidator</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asV1Validator()"><!-- --></A><H3>
+asV1Validator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A> <B>asV1Validator</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asV1Validator()">Validator</A></CODE></B></DD>
+<DD>If you are a version 1 validator, answer yourself as one, otherwise answer null.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asV1Validator()">asV1Validator</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="copy(boolean)"><!-- --></A><H3>
+copy</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> <B>copy</B>(boolean&nbsp;includeChangeCounts)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#copy(boolean)">copy</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getName()"><!-- --></A><H3>
+getName</H3>
+<PRE>
+public java.lang.String <B>getName</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getName()">getName</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getVmd()"><!-- --></A><H3>
+getVmd</H3>
+<PRE>
+public ValidatorMetaData <B>getVmd</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidatorClassname()"><!-- --></A><H3>
+getValidatorClassname</H3>
+<PRE>
+public java.lang.String <B>getValidatorClassname</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getValidatorClassname()">Validator</A></CODE></B></DD>
+<DD>Answer the name of the class that implements the validator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getValidatorClassname()">getValidatorClassname</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getId()">getId</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setBuildValidation(boolean)"><!-- --></A><H3>
+setBuildValidation</H3>
+<PRE>
+public boolean <B>setBuildValidation</B>(boolean&nbsp;buildValidation)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setBuildValidation(boolean)">Validator</A></CODE></B></DD>
+<DD>Set whether this validator should be triggered by the build process.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setBuildValidation(boolean)">setBuildValidation</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the setting changed.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setManualValidation(boolean)"><!-- --></A><H3>
+setManualValidation</H3>
+<PRE>
+public boolean <B>setManualValidation</B>(boolean&nbsp;manualValidation)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setManualValidation(boolean)">Validator</A></CODE></B></DD>
+<DD>Set whether this validator should be triggered as part of a manual validation.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setManualValidation(boolean)">setManualValidation</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the setting changed.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A> <B>validate</B>(IResource&nbsp;resource,
+                                 int&nbsp;kind,
+                                 org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+                                 IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">Validator</A></CODE></B></DD>
+<DD>Validate the resource.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">validate</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource to be validated.<DD><CODE>kind</CODE> - The kind of resource change, see IResourceDelta for values.<DD><CODE>operation</CODE> - The operation that this validation is running under. This can
+            be null.<DD><CODE>monitor</CODE> - A way to report progress. This can be null.
+<DT><B>Returns:</B><DD>the result of doing the validation, it can be, but usually isn't
+         null.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Validator.V1.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Validator.V1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.V2.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.V2.html
new file mode 100644
index 0000000..479aa98
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.V2.html
@@ -0,0 +1,968 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Validator.V2
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Validator.V2";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Validator.V2.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Validator.V2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_org.eclipse.wst.validation.Validator">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class Validator.V2</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">org.eclipse.wst.validation.Validator</A>
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.Validator.V2</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&gt;</DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public static final class <B>Validator.V2</B><DT>extends <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></DL>
+</PRE>
+
+<P>
+A validator that uses version 2 of the validation framework.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="nested_classes_inherited_from_class_org.eclipse.wst.validation.Validator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Nested classes/interfaces inherited from class org.eclipse.wst.validation.<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#add(org.eclipse.wst.validation.internal.model.FilterGroup)">add</A></B>(org.eclipse.wst.validation.internal.model.FilterGroup&nbsp;fg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#asIValidator()">asIValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#asV2Validator()">asV2Validator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If you are a version 2 validator, answer yourself as one, otherwise answer null.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#bumpChangeCountGroups()">bumpChangeCountGroups</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#clean(IProject, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">clean</A></B>(IProject&nbsp;project,
+      org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+      IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Let the validator know that a clean is about to happen.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#copy(boolean)">copy</A></B>(boolean&nbsp;includeChangeCounts)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#getAdapter(java.lang.Class)">getAdapter</A></B>(java.lang.Class&nbsp;adapter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#getChangeCountGroups()">getChangeCountGroups</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#getDelegatedValidator()">getDelegatedValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the actual validator that is going to perform the validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;org.eclipse.wst.validation.internal.model.FilterGroup[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#getGroups()">getGroups</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validator's filter groups.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#getLevel()">getLevel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#getName()">getName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#getValidator()">getValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#getValidatorClassname()">getValidatorClassname</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the name of the class that implements the validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#getValidatorGroups()">getValidatorGroups</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#hashCodeForConfig()">hashCodeForConfig</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a hash code for the configurable fields so that we can quickly determine if two
+ validators are the same.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#isChanged()">isChanged</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Has the validator changed since it was last created or copied?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#remove(org.eclipse.wst.validation.internal.model.FilterGroup)">remove</A></B>(org.eclipse.wst.validation.internal.model.FilterGroup&nbsp;group)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#replaceFilterGroup(org.eclipse.wst.validation.internal.model.FilterGroup, org.eclipse.wst.validation.internal.model.FilterGroup)">replaceFilterGroup</A></B>(org.eclipse.wst.validation.internal.model.FilterGroup&nbsp;existing,
+                   org.eclipse.wst.validation.internal.model.FilterGroup&nbsp;merged)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#resetChangeCounters()">resetChangeCounters</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#setDelegatingId(java.lang.String)">setDelegatingId</A></B>(java.lang.String&nbsp;delegating)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the id of the "real" validator, that is the validator that will be called when this delegating
+ validator is asked to validate something.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#setGroups(java.util.List)">setGroups</A></B>(java.util.List&lt;org.eclipse.wst.validation.internal.model.FilterGroup&gt;&nbsp;groups)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#setId(java.lang.String)">setId</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#setLevel(org.eclipse.wst.validation.Validator.Level)">setLevel</A></B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>&nbsp;level)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#setName(java.lang.String)">setName</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)">shouldClearMarkers</A></B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Should the validation framework first clear the markers that this
+ validator has placed on this resource?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor,
+         <A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A></B>(IProject&nbsp;project,
+                    <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                    IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called when validation is complete.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></B>(IProject&nbsp;project,
+                   <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                   IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called before any validation takes place.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.validation.Validator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class org.eclipse.wst.validation.<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asV1Validator()">asV1Validator</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#bumpChangeCountGlobal()">bumpChangeCountGlobal</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#bumpChangeCountMessages()">bumpChangeCountMessages</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#compareTo(org.eclipse.wst.validation.Validator)">compareTo</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#copy()">copy</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#create(IConfigurationElement, IProject)">create</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#create(ValidatorMetaData, ValidationConfiguration, IProject)">create</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getChangeCountGlobal()">getChangeCountGlobal</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getChangeCountMessages()">getChangeCountMessages</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getDelegatingId()">getDelegatingId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMarkerId()">getMarkerId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMessage(java.lang.String)">getMessage</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMessageSettings()">getMessageSettings</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getProject()">getProject</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getSourceId()">getSourceId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#getVersion()">getVersion</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#hasGlobalChanges()">hasGlobalChanges</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#isBuildValidation()">isBuildValidation</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#isManualValidation()">isManualValidation</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#sameConfig(org.eclipse.wst.validation.Validator)">sameConfig</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setBuildValidation(boolean)">setBuildValidation</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setManualValidation(boolean)">setManualValidation</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setMarkerId(java.lang.String)">setMarkerId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setSourceId(java.lang.String)">setSourceId</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#setVersion(int)">setVersion</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidate(IResource, boolean, boolean)">shouldValidate</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidate(IResource, org.eclipse.wst.validation.internal.ValType)">shouldValidate</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidateProject(IProject, boolean, boolean)">shouldValidateProject</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidateProject(IProject, org.eclipse.wst.validation.internal.ValType)">shouldValidateProject</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.html#toString()">toString</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="add(org.eclipse.wst.validation.internal.model.FilterGroup)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(org.eclipse.wst.validation.internal.model.FilterGroup&nbsp;fg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asIValidator()"><!-- --></A><H3>
+asIValidator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A> <B>asIValidator</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asIValidator()">asIValidator</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asV2Validator()"><!-- --></A><H3>
+asV2Validator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A> <B>asV2Validator</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asV2Validator()">Validator</A></CODE></B></DD>
+<DD>If you are a version 2 validator, answer yourself as one, otherwise answer null.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asV2Validator()">asV2Validator</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clean(IProject, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)"><!-- --></A><H3>
+clean</H3>
+<PRE>
+public void <B>clean</B>(IProject&nbsp;project,
+                  org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+                  IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>Let the validator know that a clean is about to happen.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#clean(IProject, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">clean</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - the project that is being cleaned. This can be null which means that the workspace
+ is being cleaned (in which case a separate call will be made for each open project).<DD><CODE>monitor</CODE> - the monitor that should be used for reporting progress if the clean takes a long time.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="copy(boolean)"><!-- --></A><H3>
+copy</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> <B>copy</B>(boolean&nbsp;includeChangeCounts)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#copy(boolean)">copy</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getChangeCountGroups()"><!-- --></A><H3>
+getChangeCountGroups</H3>
+<PRE>
+public int <B>getChangeCountGroups</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="bumpChangeCountGroups()"><!-- --></A><H3>
+bumpChangeCountGroups</H3>
+<PRE>
+public void <B>bumpChangeCountGroups</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLevel()"><!-- --></A><H3>
+getLevel</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A> <B>getLevel</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLevel(org.eclipse.wst.validation.Validator.Level)"><!-- --></A><H3>
+setLevel</H3>
+<PRE>
+public void <B>setLevel</B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>&nbsp;level)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDelegatedValidator()"><!-- --></A><H3>
+getDelegatedValidator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A> <B>getDelegatedValidator</B>()</PRE>
+<DL>
+<DD>Answer the actual validator that is going to perform the validation. If this is a normal validator this
+ method will simply answer itself. However if this is a delegating validator, then this will answer the
+ "real" validator.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getId()">getId</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroups()"><!-- --></A><H3>
+getGroups</H3>
+<PRE>
+public org.eclipse.wst.validation.internal.model.FilterGroup[] <B>getGroups</B>()</PRE>
+<DL>
+<DD>Answer the validator's filter groups.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an empty array if the validator does not have any filter groups.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getName()"><!-- --></A><H3>
+getName</H3>
+<PRE>
+public java.lang.String <B>getName</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getName()">getName</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidator()"><!-- --></A><H3>
+getValidator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A> <B>getValidator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidatorClassname()"><!-- --></A><H3>
+getValidatorClassname</H3>
+<PRE>
+public java.lang.String <B>getValidatorClassname</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getValidatorClassname()">Validator</A></CODE></B></DD>
+<DD>Answer the name of the class that implements the validator.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getValidatorClassname()">getValidatorClassname</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidatorGroups()"><!-- --></A><H3>
+getValidatorGroups</H3>
+<PRE>
+public java.lang.String[] <B>getValidatorGroups</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hashCodeForConfig()"><!-- --></A><H3>
+hashCodeForConfig</H3>
+<PRE>
+public int <B>hashCodeForConfig</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#hashCodeForConfig()">Validator</A></CODE></B></DD>
+<DD>Answer a hash code for the configurable fields so that we can quickly determine if two
+ validators are the same.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#hashCodeForConfig()">hashCodeForConfig</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isChanged()"><!-- --></A><H3>
+isChanged</H3>
+<PRE>
+public boolean <B>isChanged</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#isChanged()">Validator</A></CODE></B></DD>
+<DD>Has the validator changed since it was last created or copied? Or was it migrated from an earlier version.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#isChanged()">isChanged</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)"><!-- --></A><H3>
+shouldClearMarkers</H3>
+<PRE>
+public boolean <B>shouldClearMarkers</B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)">Validator</A></CODE></B></DD>
+<DD>Should the validation framework first clear the markers that this
+ validator has placed on this resource? This method can be overridden by
+ validator implementors to provide a validator specific behavior.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)">shouldClearMarkers</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>event</CODE> - The validation event that triggered the validation.
+<DT><B>Returns:</B><DD>true if the validation framework should first clear all the
+         markers that this validator produced. This is the default
+         behavior. Return false to leave the markers unchanged. It then
+         becomes the responsibility of the validator to manage it's own
+         markers for this resource, for this validation event.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDelegatingId(java.lang.String)"><!-- --></A><H3>
+setDelegatingId</H3>
+<PRE>
+public void <B>setDelegatingId</B>(java.lang.String&nbsp;delegating)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setDelegatingId(java.lang.String)">Validator</A></CODE></B></DD>
+<DD>Set the id of the "real" validator, that is the validator that will be called when this delegating
+ validator is asked to validate something.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setDelegatingId(java.lang.String)">setDelegatingId</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>delegating</CODE> - the id of the validator that is actually going to perform the validation.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setGroups(java.util.List)"><!-- --></A><H3>
+setGroups</H3>
+<PRE>
+public void <B>setGroups</B>(java.util.List&lt;org.eclipse.wst.validation.internal.model.FilterGroup&gt;&nbsp;groups)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setId(java.lang.String)"><!-- --></A><H3>
+setId</H3>
+<PRE>
+public void <B>setId</B>(java.lang.String&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setName(java.lang.String)"><!-- --></A><H3>
+setName</H3>
+<PRE>
+public void <B>setName</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A> <B>validate</B>(IResource&nbsp;resource,
+                                 int&nbsp;kind,
+                                 org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+                                 IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">Validator</A></CODE></B></DD>
+<DD>Validate the resource.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">validate</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource to be validated.<DD><CODE>kind</CODE> - The kind of resource change, see IResourceDelta for values.<DD><CODE>operation</CODE> - The operation that this validation is running under. This can
+            be null.<DD><CODE>monitor</CODE> - A way to report progress. This can be null.
+<DT><B>Returns:</B><DD>the result of doing the validation, it can be, but usually isn't
+         null.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A> <B>validate</B>(IResource&nbsp;resource,
+                                 int&nbsp;kind,
+                                 org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+                                 IProgressMonitor&nbsp;monitor,
+                                 <A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)">Validator</A></CODE></B></DD>
+<DD>Validate the resource.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)">validate</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource to be validated.<DD><CODE>kind</CODE> - The kind of resource change, see IResourceDelta for values.<DD><CODE>operation</CODE> - The operation that this validation is running under. This can
+            be null.<DD><CODE>monitor</CODE> - A way to report progress. This can be null.<DD><CODE>event</CODE> - An event that describes in more detail what should be
+            validated and why it should be validated. This can be null.
+<DT><B>Returns:</B><DD>the result of doing the validation, it can be, but usually isn't
+         null.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)"><!-- --></A><H3>
+validationStarting</H3>
+<PRE>
+public void <B>validationStarting</B>(IProject&nbsp;project,
+                               <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                               IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">Validator</A></CODE></B></DD>
+<DD>This method will be called before any validation takes place. It allows validators to perform any
+ initialization that they might need.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - the project that is being validated. For the very first call in the validation phase,
+ this will be null. That is the signal to the validator that a top level validation is starting.
+ Subsequently, the project will be set, as each of the individual projects are validated.<DD><CODE>state</CODE> - a way to pass arbitrary, validator specific, data from one invocation of a validator to
+ the next, during the validation phase.<DD><CODE>monitor</CODE> - the monitor that should be used for reporting progress if the clean takes a long time.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)"><!-- --></A><H3>
+validationFinishing</H3>
+<PRE>
+public void <B>validationFinishing</B>(IProject&nbsp;project,
+                                <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                                IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">Validator</A></CODE></B></DD>
+<DD>This method will be called when validation is complete. It allows validators to perform any
+ cleanup that they might need to do.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - the project that was validated. The very last call in the validation will set this to 
+ null so that the validator knows that all the projects have now been validated.<DD><CODE>state</CODE> - a way to pass arbitrary, validator specific, data from one invocation of a validator to
+ the next, during the validation phase.<DD><CODE>monitor</CODE> - the monitor that should be used for reporting progress if the clean takes a long time.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAdapter(java.lang.Class)"><!-- --></A><H3>
+getAdapter</H3>
+<PRE>
+public java.lang.Object <B>getAdapter</B>(java.lang.Class&nbsp;adapter)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(org.eclipse.wst.validation.internal.model.FilterGroup)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(org.eclipse.wst.validation.internal.model.FilterGroup&nbsp;group)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resetChangeCounters()"><!-- --></A><H3>
+resetChangeCounters</H3>
+<PRE>
+public void <B>resetChangeCounters</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html#resetChangeCounters()">resetChangeCounters</A></CODE> in class <CODE><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="replaceFilterGroup(org.eclipse.wst.validation.internal.model.FilterGroup, org.eclipse.wst.validation.internal.model.FilterGroup)"><!-- --></A><H3>
+replaceFilterGroup</H3>
+<PRE>
+public void <B>replaceFilterGroup</B>(org.eclipse.wst.validation.internal.model.FilterGroup&nbsp;existing,
+                               org.eclipse.wst.validation.internal.model.FilterGroup&nbsp;merged)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Validator.V2.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Validator.V2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_classes_inherited_from_class_org.eclipse.wst.validation.Validator">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.html
new file mode 100644
index 0000000..10606f5
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/Validator.html
@@ -0,0 +1,1438 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Validator
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Validator";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Validator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Validator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class Validator</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.Validator</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&gt;</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A>, <A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>Validator</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&gt;</DL>
+</PRE>
+
+<P>
+Represents a validator. This gets instantiated through one of the validator extension points.
+ <p>
+ <b>This class is not API</b>.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The level of configuration for the validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A validator that uses version 1 of the validation framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A validator that uses version 2 of the validation framework.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#Validator(IProject)">Validator</A></B>(IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asIValidator()">asIValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asV1Validator()">asV1Validator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If you are a version 1 validator, answer yourself as one, otherwise answer null.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#asV2Validator()">asV2Validator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If you are a version 2 validator, answer yourself as one, otherwise answer null.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#bumpChangeCountGlobal()">bumpChangeCountGlobal</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#bumpChangeCountMessages()">bumpChangeCountMessages</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#clean(IProject, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">clean</A></B>(IProject&nbsp;project,
+      org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+      IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The project is being cleaned, this method gives the validator a chance to do any special cleanup.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#compareTo(org.eclipse.wst.validation.Validator)">compareTo</A></B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare yourself based on Validator name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#copy()">copy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a deep copy of yourself.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#copy(boolean)">copy</A></B>(boolean&nbsp;includeChangeCounts)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#create(IConfigurationElement, IProject)">create</A></B>(IConfigurationElement&nbsp;validator,
+       IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new validator based on a abstract validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#create(ValidatorMetaData, ValidationConfiguration, IProject)">create</A></B>(ValidatorMetaData&nbsp;vmd,
+       ValidationConfiguration&nbsp;config,
+       IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new validator based on validator meta data.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getChangeCountGlobal()">getChangeCountGlobal</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getChangeCountMessages()">getChangeCountMessages</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getDelegatingId()">getDelegatingId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the id of the "real" validator, that is the validator that will be called when this delegating
+ validator is asked to validate something.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMarkerId()">getMarkerId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMessage(java.lang.String)">getMessage</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Map&lt;java.lang.String,<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getMessageSettings()">getMessageSettings</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the message settings that this validator has defined.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getName()">getName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IProject</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getProject()">getProject</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the project that you were enabled on.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getSourceId()">getSourceId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getValidatorClassname()">getValidatorClassname</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the name of the class that implements the validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#getVersion()">getVersion</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#hasGlobalChanges()">hasGlobalChanges</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#hashCodeForConfig()">hashCodeForConfig</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a hash code for the configurable fields so that we can quickly determine if two
+ validators are the same.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#isBuildValidation()">isBuildValidation</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is this validator currently enabled for validations that are triggered by builds?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#isChanged()">isChanged</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Has the validator changed since it was last created or copied?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#isManualValidation()">isManualValidation</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is this validator currently enabled for validations that are triggered manually?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#resetChangeCounters()">resetChangeCounters</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#sameConfig(org.eclipse.wst.validation.Validator)">sameConfig</A></B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer true if you have the same configuration settings as validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setBuildValidation(boolean)">setBuildValidation</A></B>(boolean&nbsp;buildValidation)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether this validator should be triggered by the build process.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setDelegatingId(java.lang.String)">setDelegatingId</A></B>(java.lang.String&nbsp;delegating)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the id of the "real" validator, that is the validator that will be called when this delegating
+ validator is asked to validate something.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setManualValidation(boolean)">setManualValidation</A></B>(boolean&nbsp;manualValidation)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether this validator should be triggered as part of a manual validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setMarkerId(java.lang.String)">setMarkerId</A></B>(java.lang.String&nbsp;markerId)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setSourceId(java.lang.String)">setSourceId</A></B>(java.lang.String&nbsp;sourceId)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#setVersion(int)">setVersion</A></B>(int&nbsp;version)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)">shouldClearMarkers</A></B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Should the validation framework first clear the markers that this
+ validator has placed on this resource?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidate(IResource, boolean, boolean)">shouldValidate</A></B>(IResource&nbsp;resource,
+               boolean&nbsp;isManual,
+               boolean&nbsp;isBuild)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer true if this validator, based on it's filters, should validate
+ this resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidate(IResource, org.eclipse.wst.validation.internal.ValType)">shouldValidate</A></B>(IResource&nbsp;resource,
+               org.eclipse.wst.validation.internal.ValType&nbsp;valType)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer true if this validator, based on it's filters, should validate
+ this resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidateProject(IProject, boolean, boolean)">shouldValidateProject</A></B>(IProject&nbsp;project,
+                      boolean&nbsp;isManual,
+                      boolean&nbsp;isBuild)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer true if this validator, based on it's filters, should validate this project.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#shouldValidateProject(IProject, org.eclipse.wst.validation.internal.ValType)">shouldValidateProject</A></B>(IProject&nbsp;project,
+                      org.eclipse.wst.validation.internal.ValType&nbsp;type)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer true if this validator, based on it's filters, should validate this project.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor,
+         <A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A></B>(IProject&nbsp;project,
+                    <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                    IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called when validation is complete.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></B>(IProject&nbsp;project,
+                   <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                   IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called before any validation takes place.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Validator(IProject)"><!-- --></A><H3>
+Validator</H3>
+<PRE>
+public <B>Validator</B>(IProject&nbsp;project)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="create(IConfigurationElement, IProject)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> <B>create</B>(IConfigurationElement&nbsp;validator,
+                               IProject&nbsp;project)</PRE>
+<DL>
+<DD>Create a new validator based on a abstract validator.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>validator</CODE> - The validator that is being wrapped.<DD><CODE>project</CODE> - The project that you are defined in. This can be null which
+            means that you are a global validator.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(ValidatorMetaData, ValidationConfiguration, IProject)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> <B>create</B>(ValidatorMetaData&nbsp;vmd,
+                               ValidationConfiguration&nbsp;config,
+                               IProject&nbsp;project)</PRE>
+<DL>
+<DD>Create a new validator based on validator meta data.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - The project that you are defined in. This can be null which
+            means that you are a global validator.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asV1Validator()"><!-- --></A><H3>
+asV1Validator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A> <B>asV1Validator</B>()</PRE>
+<DL>
+<DD>If you are a version 1 validator, answer yourself as one, otherwise answer null.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asV2Validator()"><!-- --></A><H3>
+asV2Validator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A> <B>asV2Validator</B>()</PRE>
+<DL>
+<DD>If you are a version 2 validator, answer yourself as one, otherwise answer null.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clean(IProject, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)"><!-- --></A><H3>
+clean</H3>
+<PRE>
+public void <B>clean</B>(IProject&nbsp;project,
+                  org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+                  IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>The project is being cleaned, this method gives the validator a chance to do any special cleanup.
+ The default is to do nothing.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - the project being built.<DD><CODE>monitor</CODE> - the monitor that should be used for reporting progress if the clean takes a long time.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(org.eclipse.wst.validation.Validator)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</PRE>
+<DL>
+<DD>Compare yourself based on Validator name.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&gt;</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="copy()"><!-- --></A><H3>
+copy</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> <B>copy</B>()</PRE>
+<DL>
+<DD>Answer a deep copy of yourself.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="copy(boolean)"><!-- --></A><H3>
+copy</H3>
+<PRE>
+public abstract <A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> <B>copy</B>(boolean&nbsp;includeChangeCounts)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)"><!-- --></A><H3>
+shouldClearMarkers</H3>
+<PRE>
+public boolean <B>shouldClearMarkers</B>(<A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</PRE>
+<DL>
+<DD>Should the validation framework first clear the markers that this
+ validator has placed on this resource? This method can be overridden by
+ validator implementors to provide a validator specific behavior.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>event</CODE> - The validation event that triggered the validation.
+<DT><B>Returns:</B><DD>true if the validation framework should first clear all the
+         markers that this validator produced. This is the default
+         behavior. Return false to leave the markers unchanged. It then
+         becomes the responsibility of the validator to manage it's own
+         markers for this resource, for this validation event.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldValidate(IResource, boolean, boolean)"><!-- --></A><H3>
+shouldValidate</H3>
+<PRE>
+public boolean <B>shouldValidate</B>(IResource&nbsp;resource,
+                              boolean&nbsp;isManual,
+                              boolean&nbsp;isBuild)</PRE>
+<DL>
+<DD>Answer true if this validator, based on it's filters, should validate
+ this resource. This method does not check to see if global validation or
+ project validation has been suspended or not.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource to be checked.<DD><CODE>isManual</CODE> - If true then this validator must also be enabled for manual
+            validation.<DD><CODE>isBuild</CODE> - If true then this validator must also be enabled for builder
+            based validation.
+<DT><B>Returns:</B><DD>true if the resource should be validated.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldValidate(IResource, org.eclipse.wst.validation.internal.ValType)"><!-- --></A><H3>
+shouldValidate</H3>
+<PRE>
+public boolean <B>shouldValidate</B>(IResource&nbsp;resource,
+                              org.eclipse.wst.validation.internal.ValType&nbsp;valType)</PRE>
+<DL>
+<DD>Answer true if this validator, based on it's filters, should validate
+ this resource. This method does not check to see if global validation or
+ project validation has been suspended or not.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource to be checked.<DD><CODE>valType</CODE> - The context to use when performing the check.
+<DT><B>Returns:</B><DD>true if the resource should be validated.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldValidateProject(IProject, org.eclipse.wst.validation.internal.ValType)"><!-- --></A><H3>
+shouldValidateProject</H3>
+<PRE>
+public boolean <B>shouldValidateProject</B>(IProject&nbsp;project,
+                                     org.eclipse.wst.validation.internal.ValType&nbsp;type)</PRE>
+<DL>
+<DD>Answer true if this validator, based on it's filters, should validate this project. This method
+ does not check to see if global validation or project validation has been suspended or not.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - the project to be checked<DD><CODE>type</CODE> - The type of validation request
+<DT><B>Returns:</B><DD>true if the project should be validated.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldValidateProject(IProject, boolean, boolean)"><!-- --></A><H3>
+shouldValidateProject</H3>
+<PRE>
+public boolean <B>shouldValidateProject</B>(IProject&nbsp;project,
+                                     boolean&nbsp;isManual,
+                                     boolean&nbsp;isBuild)</PRE>
+<DL>
+<DD>Answer true if this validator, based on it's filters, should validate this project. This method
+ does not check to see if global validation or project validation has been suspended or not.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - the project to be checked<DD><CODE>isManual</CODE> - if true then this validator must also be enabled for manual validation.<DD><CODE>isBuild</CODE> - if true then this validator must also be enabled for builder based validation.
+<DT><B>Returns:</B><DD>true if the project should be validated.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+public abstract <A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A> <B>validate</B>(IResource&nbsp;resource,
+                                          int&nbsp;kind,
+                                          org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+                                          IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>Validate the resource.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource to be validated.<DD><CODE>kind</CODE> - The kind of resource change, see IResourceDelta for values.<DD><CODE>operation</CODE> - The operation that this validation is running under. This can
+            be null.<DD><CODE>monitor</CODE> - A way to report progress. This can be null.
+<DT><B>Returns:</B><DD>the result of doing the validation, it can be, but usually isn't
+         null.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A> <B>validate</B>(IResource&nbsp;resource,
+                                 int&nbsp;kind,
+                                 org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+                                 IProgressMonitor&nbsp;monitor,
+                                 <A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</PRE>
+<DL>
+<DD>Validate the resource.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The resource to be validated.<DD><CODE>kind</CODE> - The kind of resource change, see IResourceDelta for values.<DD><CODE>operation</CODE> - The operation that this validation is running under. This can
+            be null.<DD><CODE>monitor</CODE> - A way to report progress. This can be null.<DD><CODE>event</CODE> - An event that describes in more detail what should be
+            validated and why it should be validated. This can be null.
+<DT><B>Returns:</B><DD>the result of doing the validation, it can be, but usually isn't
+         null.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)"><!-- --></A><H3>
+validationStarting</H3>
+<PRE>
+public void <B>validationStarting</B>(IProject&nbsp;project,
+                               <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                               IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>This method will be called before any validation takes place. It allows validators to perform any
+ initialization that they might need.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - the project that is being validated. For the very first call in the validation phase,
+ this will be null. That is the signal to the validator that a top level validation is starting.
+ Subsequently, the project will be set, as each of the individual projects are validated.<DD><CODE>state</CODE> - a way to pass arbitrary, validator specific, data from one invocation of a validator to
+ the next, during the validation phase.<DD><CODE>monitor</CODE> - the monitor that should be used for reporting progress if the clean takes a long time.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)"><!-- --></A><H3>
+validationFinishing</H3>
+<PRE>
+public void <B>validationFinishing</B>(IProject&nbsp;project,
+                                <A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                                IProgressMonitor&nbsp;monitor)</PRE>
+<DL>
+<DD>This method will be called when validation is complete. It allows validators to perform any
+ cleanup that they might need to do.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>project</CODE> - the project that was validated. The very last call in the validation will set this to 
+ null so that the validator knows that all the projects have now been validated.<DD><CODE>state</CODE> - a way to pass arbitrary, validator specific, data from one invocation of a validator to
+ the next, during the validation phase.<DD><CODE>monitor</CODE> - the monitor that should be used for reporting progress if the clean takes a long time.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asIValidator()"><!-- --></A><H3>
+asIValidator</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A> <B>asIValidator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public abstract java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMessage(java.lang.String)"><!-- --></A><H3>
+getMessage</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A> <B>getMessage</B>(java.lang.String&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMessageSettings()"><!-- --></A><H3>
+getMessageSettings</H3>
+<PRE>
+public java.util.Map&lt;java.lang.String,<A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A>&gt; <B>getMessageSettings</B>()</PRE>
+<DL>
+<DD>Answer all the message settings that this validator has defined.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an empty map if the validator did not define any message settings.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hashCodeForConfig()"><!-- --></A><H3>
+hashCodeForConfig</H3>
+<PRE>
+public int <B>hashCodeForConfig</B>()</PRE>
+<DL>
+<DD>Answer a hash code for the configurable fields so that we can quickly determine if two
+ validators are the same.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getName()"><!-- --></A><H3>
+getName</H3>
+<PRE>
+public abstract java.lang.String <B>getName</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getProject()"><!-- --></A><H3>
+getProject</H3>
+<PRE>
+public IProject <B>getProject</B>()</PRE>
+<DL>
+<DD>Answer the project that you were enabled on.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>null if you are a global (i.e. workspace level) validator.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidatorClassname()"><!-- --></A><H3>
+getValidatorClassname</H3>
+<PRE>
+public abstract java.lang.String <B>getValidatorClassname</B>()</PRE>
+<DL>
+<DD>Answer the name of the class that implements the validator.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isManualValidation()"><!-- --></A><H3>
+isManualValidation</H3>
+<PRE>
+public boolean <B>isManualValidation</B>()</PRE>
+<DL>
+<DD>Is this validator currently enabled for validations that are triggered manually?
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setManualValidation(boolean)"><!-- --></A><H3>
+setManualValidation</H3>
+<PRE>
+public boolean <B>setManualValidation</B>(boolean&nbsp;manualValidation)</PRE>
+<DL>
+<DD>Set whether this validator should be triggered as part of a manual validation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>manualValidation</CODE> - 
+<DT><B>Returns:</B><DD>true if the setting changed.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isBuildValidation()"><!-- --></A><H3>
+isBuildValidation</H3>
+<PRE>
+public boolean <B>isBuildValidation</B>()</PRE>
+<DL>
+<DD>Is this validator currently enabled for validations that are triggered by builds?
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isChanged()"><!-- --></A><H3>
+isChanged</H3>
+<PRE>
+public boolean <B>isChanged</B>()</PRE>
+<DL>
+<DD>Has the validator changed since it was last created or copied? Or was it migrated from an earlier version.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setBuildValidation(boolean)"><!-- --></A><H3>
+setBuildValidation</H3>
+<PRE>
+public boolean <B>setBuildValidation</B>(boolean&nbsp;buildValidation)</PRE>
+<DL>
+<DD>Set whether this validator should be triggered by the build process.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buildValidation</CODE> - 
+<DT><B>Returns:</B><DD>true if the setting changed.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDelegatingId()"><!-- --></A><H3>
+getDelegatingId</H3>
+<PRE>
+public java.lang.String <B>getDelegatingId</B>()</PRE>
+<DL>
+<DD>Get the id of the "real" validator, that is the validator that will be called when this delegating
+ validator is asked to validate something. If this isn't a delegating validator answer null.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDelegatingId(java.lang.String)"><!-- --></A><H3>
+setDelegatingId</H3>
+<PRE>
+public void <B>setDelegatingId</B>(java.lang.String&nbsp;delegating)</PRE>
+<DL>
+<DD>Set the id of the "real" validator, that is the validator that will be called when this delegating
+ validator is asked to validate something.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>delegating</CODE> - the id of the validator that is actually going to perform the validation.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getVersion()"><!-- --></A><H3>
+getVersion</H3>
+<PRE>
+public int <B>getVersion</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setVersion(int)"><!-- --></A><H3>
+setVersion</H3>
+<PRE>
+public void <B>setVersion</B>(int&nbsp;version)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSourceId()"><!-- --></A><H3>
+getSourceId</H3>
+<PRE>
+public java.lang.String <B>getSourceId</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSourceId(java.lang.String)"><!-- --></A><H3>
+setSourceId</H3>
+<PRE>
+public void <B>setSourceId</B>(java.lang.String&nbsp;sourceId)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getChangeCountGlobal()"><!-- --></A><H3>
+getChangeCountGlobal</H3>
+<PRE>
+public int <B>getChangeCountGlobal</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasGlobalChanges()"><!-- --></A><H3>
+hasGlobalChanges</H3>
+<PRE>
+public boolean <B>hasGlobalChanges</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getChangeCountMessages()"><!-- --></A><H3>
+getChangeCountMessages</H3>
+<PRE>
+public int <B>getChangeCountMessages</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="bumpChangeCountMessages()"><!-- --></A><H3>
+bumpChangeCountMessages</H3>
+<PRE>
+public void <B>bumpChangeCountMessages</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resetChangeCounters()"><!-- --></A><H3>
+resetChangeCounters</H3>
+<PRE>
+public void <B>resetChangeCounters</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="bumpChangeCountGlobal()"><!-- --></A><H3>
+bumpChangeCountGlobal</H3>
+<PRE>
+public void <B>bumpChangeCountGlobal</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sameConfig(org.eclipse.wst.validation.Validator)"><!-- --></A><H3>
+sameConfig</H3>
+<PRE>
+public boolean <B>sameConfig</B>(<A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</PRE>
+<DL>
+<DD>Answer true if you have the same configuration settings as validator.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>validator</CODE> - this can be null.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMarkerId()"><!-- --></A><H3>
+getMarkerId</H3>
+<PRE>
+public java.lang.String <B>getMarkerId</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMarkerId(java.lang.String)"><!-- --></A><H3>
+setMarkerId</H3>
+<PRE>
+public void <B>setMarkerId</B>(java.lang.String&nbsp;markerId)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Validator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/Validator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidatorMessage.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidatorMessage.html
new file mode 100644
index 0000000..84f3ebd
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/ValidatorMessage.html
@@ -0,0 +1,625 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+ValidatorMessage
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ValidatorMessage";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidatorMessage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidatorMessage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidatorMessage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation</FONT>
+<BR>
+Class ValidatorMessage</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.ValidatorMessage</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>ValidatorMessage</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+This class provides a way for a validator to return messages, that are easily
+ converted into IMarkers.
+ <p>
+ This class is completely optional for validators. A validator can choose to
+ directly manage IMarkers. However, some validators want to be used in
+ multiple contexts, for example as-you-type validation and build based
+ validation. For these types of validators it is not possible for them to use
+ only IMarkers, because often the Resource has not been saved yet.
+ </p>
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that
+ is still under development and expected to change significantly before
+ reaching stability. It is being made available at this early stage to solicit
+ feedback from pioneering adopters on the understanding that any code that
+ uses this API will almost certainly be broken (repeatedly) as the API
+ evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#ValidationId">ValidationId</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#asCopy()">asCopy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a copy of yourself.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#create(java.lang.String, IResource)">create</A></B>(java.lang.String&nbsp;message,
+       IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new validation message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#getAttribute(java.lang.String)">getAttribute</A></B>(java.lang.String&nbsp;attributeName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the attribute with the given name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#getAttribute(java.lang.String, boolean)">getAttribute</A></B>(java.lang.String&nbsp;attributeName,
+             boolean&nbsp;defaultValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the boolean valued attribute with the given name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#getAttribute(java.lang.String, int)">getAttribute</A></B>(java.lang.String&nbsp;attributeName,
+             int&nbsp;defaultValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the integer valued attribute with the given name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#getAttribute(java.lang.String, java.lang.String)">getAttribute</A></B>(java.lang.String&nbsp;attributeName,
+             java.lang.String&nbsp;defaultValue)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the string valued attribute with the given name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Map</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#getAttributes()">getAttributes</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a map with all the attributes for the marker.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IResource</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#getResource()">getResource</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the resource with which this marker is associated.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#getType()">getType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the type of this marker.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#setAttribute(java.lang.String, boolean)">setAttribute</A></B>(java.lang.String&nbsp;attributeName,
+             boolean&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the boolean valued attribute with the given name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#setAttribute(java.lang.String, int)">setAttribute</A></B>(java.lang.String&nbsp;attributeName,
+             int&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the integer valued attribute with the given name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#setAttribute(java.lang.String, java.lang.Object)">setAttribute</A></B>(java.lang.String&nbsp;attributeName,
+             java.lang.Object&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the attribute with the given name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#setAttributes(java.util.Map)">setAttributes</A></B>(java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;attributes)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the attributes for this marker to be the ones contained in the given
+ table.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#setAttributes(java.lang.String[], java.lang.Object[])">setAttributes</A></B>(java.lang.String[]&nbsp;attributeNames,
+              java.lang.Object[]&nbsp;values)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the given attribute key-value pairs on this marker.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html#setType(java.lang.String)">setType</A></B>(java.lang.String&nbsp;type)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the marker type.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ValidationId"><!-- --></A><H3>
+ValidationId</H3>
+<PRE>
+public static final java.lang.String <B>ValidationId</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.wst.validation.ValidatorMessage.ValidationId">Constant Field Values</A></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="create(java.lang.String, IResource)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A> <B>create</B>(java.lang.String&nbsp;message,
+                                      IResource&nbsp;resource)</PRE>
+<DL>
+<DD>Create a new validation message.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>message</CODE> - The localized message that will be displayed to the user.<DD><CODE>resource</CODE> - The resource that the message is associated with.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asCopy()"><!-- --></A><H3>
+asCopy</H3>
+<PRE>
+public <A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A> <B>asCopy</B>()</PRE>
+<DL>
+<DD>Answer a copy of yourself.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAttribute(java.lang.String)"><!-- --></A><H3>
+getAttribute</H3>
+<PRE>
+public java.lang.Object <B>getAttribute</B>(java.lang.String&nbsp;attributeName)</PRE>
+<DL>
+<DD>Returns the attribute with the given name. The result is an instance of
+ one of the following classes: <code>String</code>, <code>Integer</code>,
+ or <code>Boolean</code>. Returns <code>null</code> if the attribute is
+ undefined.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeName</CODE> - The name of the attribute.
+<DT><B>Returns:</B><DD>the value, or <code>null</code> if the attribute is undefined.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAttribute(java.lang.String, int)"><!-- --></A><H3>
+getAttribute</H3>
+<PRE>
+public int <B>getAttribute</B>(java.lang.String&nbsp;attributeName,
+                        int&nbsp;defaultValue)</PRE>
+<DL>
+<DD>Returns the integer valued attribute with the given name. Returns the
+ given default value if the attribute is undefined or the marker does not
+ exist or is not an integer value.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeName</CODE> - The name of the attribute.<DD><CODE>defaultValue</CODE> - The value to use if no integer value is found.
+<DT><B>Returns:</B><DD>the value or the default value if no integer value was found.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAttribute(java.lang.String, java.lang.String)"><!-- --></A><H3>
+getAttribute</H3>
+<PRE>
+public java.lang.String <B>getAttribute</B>(java.lang.String&nbsp;attributeName,
+                                     java.lang.String&nbsp;defaultValue)</PRE>
+<DL>
+<DD>Returns the string valued attribute with the given name. Returns the
+ given default value if the attribute is undefined or the marker does not
+ exist or is not a string value.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeName</CODE> - The name of the attribute.<DD><CODE>defaultValue</CODE> - The value to use if no value is found.
+<DT><B>Returns:</B><DD>the value or the default value if no value was found.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAttribute(java.lang.String, boolean)"><!-- --></A><H3>
+getAttribute</H3>
+<PRE>
+public boolean <B>getAttribute</B>(java.lang.String&nbsp;attributeName,
+                            boolean&nbsp;defaultValue)</PRE>
+<DL>
+<DD>Returns the boolean valued attribute with the given name. Returns the
+ given default value if the attribute is undefined or the marker does not
+ exist or is not a boolean value.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeName</CODE> - The name of the attribute.<DD><CODE>defaultValue</CODE> - The value to use if no value is found.
+<DT><B>Returns:</B><DD>the value or the default value if no value was found.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAttributes()"><!-- --></A><H3>
+getAttributes</H3>
+<PRE>
+public java.util.Map <B>getAttributes</B>()</PRE>
+<DL>
+<DD>Returns a map with all the attributes for the marker. If the marker has
+ no attributes then <code>null</code> is returned.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a map of attribute keys and values (key type :
+        <code>String</code> value type : <code>String</code>,
+        <code>Integer</code>, or <code>Boolean</code>) or <code>null</code>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResource()"><!-- --></A><H3>
+getResource</H3>
+<PRE>
+public IResource <B>getResource</B>()</PRE>
+<DL>
+<DD>Returns the resource with which this marker is associated.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the resource with which this marker is associated</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getType()"><!-- --></A><H3>
+getType</H3>
+<PRE>
+public java.lang.String <B>getType</B>()</PRE>
+<DL>
+<DD>Returns the type of this marker. The returned marker type will not be 
+ <code>null</code>.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the type of this marker</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setType(java.lang.String)"><!-- --></A><H3>
+setType</H3>
+<PRE>
+public void <B>setType</B>(java.lang.String&nbsp;type)</PRE>
+<DL>
+<DD>Sets the marker type.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>type</CODE> - The marker id to use when creating new markers.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAttribute(java.lang.String, int)"><!-- --></A><H3>
+setAttribute</H3>
+<PRE>
+public void <B>setAttribute</B>(java.lang.String&nbsp;attributeName,
+                         int&nbsp;value)</PRE>
+<DL>
+<DD>Sets the integer valued attribute with the given name.
+ <p>
+ This method changes resources; these changes will be reported in a
+ subsequent resource change event, including an indication that this
+ marker has been modified.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeName</CODE> - The name of the attribute.<DD><CODE>value</CODE> - The value.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAttribute(java.lang.String, java.lang.Object)"><!-- --></A><H3>
+setAttribute</H3>
+<PRE>
+public void <B>setAttribute</B>(java.lang.String&nbsp;attributeName,
+                         java.lang.Object&nbsp;value)</PRE>
+<DL>
+<DD>Sets the attribute with the given name. The value must be
+ <code>null</code> or an instance of one of the following classes:
+ <code>String</code>, <code>Integer</code>, or <code>Boolean</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeName</CODE> - The name of the attribute.<DD><CODE>value</CODE> - The value, or <code>null</code> if the attribute is to be undefined.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAttribute(java.lang.String, boolean)"><!-- --></A><H3>
+setAttribute</H3>
+<PRE>
+public void <B>setAttribute</B>(java.lang.String&nbsp;attributeName,
+                         boolean&nbsp;value)</PRE>
+<DL>
+<DD>Sets the boolean valued attribute with the given name.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeName</CODE> - The name of the attribute.<DD><CODE>value</CODE> - The value.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAttributes(java.lang.String[], java.lang.Object[])"><!-- --></A><H3>
+setAttributes</H3>
+<PRE>
+public void <B>setAttributes</B>(java.lang.String[]&nbsp;attributeNames,
+                          java.lang.Object[]&nbsp;values)</PRE>
+<DL>
+<DD>Sets the given attribute key-value pairs on this marker. The values must
+ be <code>null</code> or an instance of one of the following classes:
+ <code>String</code>, <code>Integer</code>, or <code>Boolean</code>. If a
+ value is <code>null</code>, the new value of the attribute is considered
+ to be undefined.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeNames</CODE> - An array of attribute names.<DD><CODE>values</CODE> - An array of attribute values.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAttributes(java.util.Map)"><!-- --></A><H3>
+setAttributes</H3>
+<PRE>
+public void <B>setAttributes</B>(java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;attributes)</PRE>
+<DL>
+<DD>Sets the attributes for this marker to be the ones contained in the given
+ table. The values must be an instance of one of the following classes:
+ <code>String</code>, <code>Integer</code>, or <code>Boolean</code>.
+ Attributes previously set on the marker but not included in the given map
+ are considered to be removals. This includes the text of the message.
+ Setting the given map to be
+ <code>null</code> is equivalent to removing all marker attributes.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributes</CODE> - A map of attribute names to attribute values (key type :
+                <code>String</code> value type : <code>String</code>,
+                <code>Integer</code>, or <code>Boolean</code>) or <code>null</code>.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ValidatorMessage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/ValidatorMessage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidatorMessage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/AbstractValidator.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/AbstractValidator.html
new file mode 100644
index 0000000..2e51fb3
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/AbstractValidator.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.AbstractValidator
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.AbstractValidator";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useAbstractValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="AbstractValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.AbstractValidator</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#getDelegatedValidator()">getDelegatedValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the actual validator that is going to perform the validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#getValidator()">getValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useAbstractValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="AbstractValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/DependentResource.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/DependentResource.html
new file mode 100644
index 0000000..37af1ac
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/DependentResource.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.DependentResource
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.DependentResource";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useDependentResource.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DependentResource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.DependentResource</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation">DependentResource</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation">DependentResource</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return types with arguments of type <A HREF="../../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation">DependentResource</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.List&lt;<A HREF="../../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation">DependentResource</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B>IDependencyIndex.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IDependencyIndex.html#get(IResource)">get</A></B>(IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the resources that depend on this resource.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useDependentResource.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DependentResource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Friend.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Friend.html
new file mode 100644
index 0000000..ec4f773
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Friend.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.Friend
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.Friend";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Friend.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useFriend.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Friend.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.Friend</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.validation.Friend
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Friend.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useFriend.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Friend.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IDependencyIndex.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IDependencyIndex.html
new file mode 100644
index 0000000..1b69aef
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IDependencyIndex.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.IDependencyIndex
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.IDependencyIndex";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useIDependencyIndex.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IDependencyIndex.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.IDependencyIndex</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation">IDependencyIndex</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation">IDependencyIndex</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation">IDependencyIndex</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation">IDependencyIndex</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getDependencyIndex()">getDependencyIndex</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the dependency index.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useIDependencyIndex.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IDependencyIndex.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IMutableValidator.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IMutableValidator.html
new file mode 100644
index 0000000..051ad21
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IMutableValidator.html
@@ -0,0 +1,208 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.IMutableValidator
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.IMutableValidator";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useIMutableValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMutableValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.IMutableValidator</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[]</CODE></FONT></TD>
+<TD><CODE><B>MutableWorkspaceSettings.</B><B><A HREF="../../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#getValidators()">getValidators</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[]</CODE></FONT></TD>
+<TD><CODE><B>MutableProjectSettings.</B><B><A HREF="../../../../../org/eclipse/wst/validation/MutableProjectSettings.html#getValidators()">getValidators</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/validation/MutableProjectSettings.html#MutableProjectSettings(IProject, org.eclipse.wst.validation.IMutableValidator[])">MutableProjectSettings</A></B>(IProject&nbsp;project,
+                       <A HREF="../../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[]&nbsp;validators)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html#MutableWorkspaceSettings(org.eclipse.wst.validation.IMutableValidator[], org.eclipse.wst.validation.internal.model.GlobalPreferencesValues)">MutableWorkspaceSettings</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A>[]&nbsp;validators,
+                         org.eclipse.wst.validation.internal.model.GlobalPreferencesValues&nbsp;values)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useIMutableValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMutableValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IPerformanceMonitor.CollectionLevel.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IPerformanceMonitor.CollectionLevel.html
new file mode 100644
index 0000000..4b9780c
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IPerformanceMonitor.CollectionLevel.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.IPerformanceMonitor.CollectionLevel
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.IPerformanceMonitor.CollectionLevel";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useIPerformanceMonitor.CollectionLevel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IPerformanceMonitor.CollectionLevel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.IPerformanceMonitor.CollectionLevel</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A></CODE></FONT></TD>
+<TD><CODE><B>IPerformanceMonitor.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#getCollectionLevel()">getCollectionLevel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the level of performance events that are being collected by the validation framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A></CODE></FONT></TD>
+<TD><CODE><B>IPerformanceMonitor.CollectionLevel.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A>[]</CODE></FONT></TD>
+<TD><CODE><B>IPerformanceMonitor.CollectionLevel.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they are declared.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IPerformanceMonitor.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#setCollectionLevel(org.eclipse.wst.validation.IPerformanceMonitor.CollectionLevel)">setCollectionLevel</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A>&nbsp;level)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the performance event collection level.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useIPerformanceMonitor.CollectionLevel.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IPerformanceMonitor.CollectionLevel.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IPerformanceMonitor.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IPerformanceMonitor.html
new file mode 100644
index 0000000..8ec29e2
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IPerformanceMonitor.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.IPerformanceMonitor
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.IPerformanceMonitor";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useIPerformanceMonitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IPerformanceMonitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.IPerformanceMonitor</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation">IPerformanceMonitor</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation">IPerformanceMonitor</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation">IPerformanceMonitor</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation">IPerformanceMonitor</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getPerformanceMonitor()">getPerformanceMonitor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a performance monitor for the validators.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useIPerformanceMonitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IPerformanceMonitor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IValidatorGroupListener.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IValidatorGroupListener.html
new file mode 100644
index 0000000..5fec1ee
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/IValidatorGroupListener.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.IValidatorGroupListener
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.IValidatorGroupListener";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/IValidatorGroupListener.html" title="interface in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useIValidatorGroupListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidatorGroupListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.IValidatorGroupListener</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.validation.IValidatorGroupListener
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/IValidatorGroupListener.html" title="interface in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useIValidatorGroupListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidatorGroupListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MessageSeveritySetting.Severity.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MessageSeveritySetting.Severity.html
new file mode 100644
index 0000000..9809030
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MessageSeveritySetting.Severity.html
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.MessageSeveritySetting.Severity
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.MessageSeveritySetting.Severity";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useMessageSeveritySetting.Severity.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageSeveritySetting.Severity.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.MessageSeveritySetting.Severity</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></CODE></FONT></TD>
+<TD><CODE><B>MessageSeveritySetting.</B><B><A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#getCurrent()">getCurrent</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the current severity for the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></CODE></FONT></TD>
+<TD><CODE><B>MessageSeveritySetting.</B><B><A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#getDefault()">getDefault</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the default severity as defined by the validator owner.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></CODE></FONT></TD>
+<TD><CODE><B>MessageSeveritySetting.Severity.</B><B><A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>[]</CODE></FONT></TD>
+<TD><CODE><B>MessageSeveritySetting.Severity.</B><B><A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they are declared.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>MessageSeveritySetting.</B><B><A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#setCurrent(org.eclipse.wst.validation.MessageSeveritySetting.Severity)">setCurrent</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>&nbsp;severity)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the current message severity.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#MessageSeveritySetting(java.lang.String, java.lang.String, org.eclipse.wst.validation.MessageSeveritySetting.Severity)">MessageSeveritySetting</A></B>(java.lang.String&nbsp;id,
+                       java.lang.String&nbsp;label,
+                       <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A>&nbsp;defaultSeverity)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an association between a label and a message severity.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useMessageSeveritySetting.Severity.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageSeveritySetting.Severity.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MessageSeveritySetting.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MessageSeveritySetting.html
new file mode 100644
index 0000000..ce1e888
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MessageSeveritySetting.html
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.MessageSeveritySetting
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.MessageSeveritySetting";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useMessageSeveritySetting.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageSeveritySetting.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.MessageSeveritySetting</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A></CODE></FONT></TD>
+<TD><CODE><B>MessageSeveritySetting.</B><B><A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html#copy()">copy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a copy of this object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#getMessage(java.lang.String)">getMessage</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return types with arguments of type <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Map&lt;java.lang.String,<A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#getMessageSettings()">getMessageSettings</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the message settings that this validator has defined.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with type arguments of type <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>Friend.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Friend.html#setMessages(org.eclipse.wst.validation.Validator, java.util.Map)">setMessages</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+            java.util.Map&lt;java.lang.String,<A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A>&gt;&nbsp;map)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useMessageSeveritySetting.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageSeveritySetting.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MutableProjectSettings.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MutableProjectSettings.html
new file mode 100644
index 0000000..05c57a9
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MutableProjectSettings.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.MutableProjectSettings
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.MutableProjectSettings";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useMutableProjectSettings.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MutableProjectSettings.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.MutableProjectSettings</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getProjectSettings(IProject)">getProjectSettings</A></B>(IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validation settings that have been defined on the
+ project.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#applyChanges(org.eclipse.wst.validation.MutableProjectSettings, boolean)">applyChanges</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A>&nbsp;settings,
+             boolean&nbsp;persist)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apply the changes that have been been to the validation settings.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useMutableProjectSettings.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MutableProjectSettings.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MutableWorkspaceSettings.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MutableWorkspaceSettings.html
new file mode 100644
index 0000000..85407ff
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/MutableWorkspaceSettings.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.MutableWorkspaceSettings
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.MutableWorkspaceSettings";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useMutableWorkspaceSettings.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MutableWorkspaceSettings.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.MutableWorkspaceSettings</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getWorkspaceSettings()">getWorkspaceSettings</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validation settings that have been defined at the workspace level.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#applyChanges(org.eclipse.wst.validation.MutableWorkspaceSettings, boolean)">applyChanges</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A>&nbsp;settings,
+             boolean&nbsp;persist)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apply the changes that have been been to the validation settings.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useMutableWorkspaceSettings.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MutableWorkspaceSettings.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/PerformanceCounters.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/PerformanceCounters.html
new file mode 100644
index 0000000..bec8f5b
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/PerformanceCounters.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.PerformanceCounters
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.PerformanceCounters";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-usePerformanceCounters.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="PerformanceCounters.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.PerformanceCounters</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return types with arguments of type <A HREF="../../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.List&lt;<A HREF="../../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B>IPerformanceMonitor.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#getPerformanceCounters(boolean)">getPerformanceCounters</A></B>(boolean&nbsp;asSummary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the performance counters that have been collected so far.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IPerformanceMonitor.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IPerformanceMonitor.html#add(org.eclipse.wst.validation.PerformanceCounters)">add</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A>&nbsp;counters)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add this performance counter to the monitor.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-usePerformanceCounters.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="PerformanceCounters.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ReporterHelper.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ReporterHelper.html
new file mode 100644
index 0000000..44c7be5
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ReporterHelper.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.ReporterHelper
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.ReporterHelper";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useReporterHelper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ReporterHelper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.ReporterHelper</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.validation.ReporterHelper
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useReporterHelper.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ReporterHelper.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationEvent.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationEvent.html
new file mode 100644
index 0000000..ae5b6c1
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationEvent.html
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.ValidationEvent
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.ValidationEvent";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.ValidationEvent</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)">shouldClearMarkers</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Should the validation framework first clear the markers that this
+ validator has placed on this resource?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)">shouldClearMarkers</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#shouldClearMarkers(org.eclipse.wst.validation.ValidationEvent)">shouldClearMarkers</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Should the validation framework first clear the markers that this
+ validator has placed on this resource?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor,
+         <A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor,
+         <A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#validate(org.eclipse.wst.validation.ValidationEvent, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validate</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event,
+         <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationFramework.ResourceAdder.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationFramework.ResourceAdder.html
new file mode 100644
index 0000000..56c7ee6
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationFramework.ResourceAdder.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.ValidationFramework.ResourceAdder
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.ValidationFramework.ResourceAdder";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationFramework.ResourceAdder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationFramework.ResourceAdder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.ValidationFramework.ResourceAdder</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.validation.ValidationFramework.ResourceAdder
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationFramework.ResourceAdder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationFramework.ResourceAdder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationFramework.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationFramework.html
new file mode 100644
index 0000000..e5cafd2
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationFramework.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.ValidationFramework
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.ValidationFramework";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationFramework.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationFramework.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.ValidationFramework</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation">ValidationFramework</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation">ValidationFramework</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation">ValidationFramework</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation">ValidationFramework</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getDefault()">getDefault</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the singleton, default instance of this class.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationFramework.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationFramework.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationResult.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationResult.html
new file mode 100644
index 0000000..baee6e6
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationResult.html
@@ -0,0 +1,278 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.ValidationResult
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.ValidationResult";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationResult.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationResult.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.ValidationResult</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#validate(IResource, int, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V1.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor,
+         <A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#validate(IResource, int, org.eclipse.wst.validation.internal.ValOperation, IProgressMonitor, org.eclipse.wst.validation.ValidationEvent)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         org.eclipse.wst.validation.internal.ValOperation&nbsp;operation,
+         IProgressMonitor&nbsp;monitor,
+         <A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#validate(org.eclipse.wst.validation.ValidationEvent, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validate</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event,
+         <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ValidationResult.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html#mergeResults(org.eclipse.wst.validation.ValidationResult)">mergeResults</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A>&nbsp;result)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Merge the message counts and messages from an individual validator into this result.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationResults.html#ValidationResults(org.eclipse.wst.validation.ValidationResult)">ValidationResults</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A>&nbsp;result)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationResult.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationResult.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationResults.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationResults.html
new file mode 100644
index 0000000..43e4c15
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationResults.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.ValidationResults
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.ValidationResults";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationResults.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationResults.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.ValidationResults</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#validate(IFile, IProgressMonitor)">validate</A></B>(IFile&nbsp;file,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate a specific file resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#validate(IProject[], boolean, boolean, IProgressMonitor)">validate</A></B>(IProject[]&nbsp;projects,
+         boolean&nbsp;isManual,
+         boolean&nbsp;isBuild,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the projects.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationResults.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationResults.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationState.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationState.html
new file mode 100644
index 0000000..4eaa40d
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidationState.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.ValidationState
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.ValidationState";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.ValidationState</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#clean(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">clean</A></B>(IProject&nbsp;project,
+      <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+      IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call back method that lets the validator know that the project is being
+ cleaned.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#validate(IResource, int, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validate</A></B>(IResource&nbsp;resource,
+         int&nbsp;kind,
+         <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
+<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#validate(org.eclipse.wst.validation.ValidationEvent, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validate</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A>&nbsp;event,
+         <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+         IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A></B>(IProject&nbsp;project,
+                    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                    IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called when validation is complete.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A></B>(IProject&nbsp;project,
+                    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                    IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A></B>(IProject&nbsp;project,
+                    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                    IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called when validation is complete.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IValidatorGroupListener.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IValidatorGroupListener.html#validationFinishing(IResource, IProgressMonitor, org.eclipse.wst.validation.ValidationState)">validationFinishing</A></B>(IResource&nbsp;resource,
+                    IProgressMonitor&nbsp;monitor,
+                    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the validationStarting method was called on the resource, then this
+ method will be called after the last validator has processed the
+ resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></B>(IProject&nbsp;project,
+                   <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                   IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called before any validation takes place.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></B>(IProject&nbsp;project,
+                   <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                   IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></B>(IProject&nbsp;project,
+                   <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
+                   IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is called before any validation takes place.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IValidatorGroupListener.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IValidatorGroupListener.html#validationStarting(IResource, IProgressMonitor, org.eclipse.wst.validation.ValidationState)">validationStarting</A></B>(IResource&nbsp;resource,
+                   IProgressMonitor&nbsp;monitor,
+                   <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is called before the first validator in the group that is interested
+ in the resource is called.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidationState.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.Level.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.Level.html
new file mode 100644
index 0000000..56415b3
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.Level.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.Validator.Level
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.Validator.Level";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidator.Level.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.Level.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.Validator.Level</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#getLevel()">getLevel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.Level.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>[]</CODE></FONT></TD>
+<TD><CODE><B>Validator.Level.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they are declared.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#setLevel(org.eclipse.wst.validation.Validator.Level)">setLevel</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A>&nbsp;level)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidator.Level.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.Level.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.V1.V1Copy.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.V1.V1Copy.html
new file mode 100644
index 0000000..61eeb18
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.V1.V1Copy.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.Validator.V1.V1Copy
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.Validator.V1.V1Copy";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidator.V1.V1Copy.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V1.V1Copy.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.Validator.V1.V1Copy</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.validation.Validator.V1.V1Copy
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidator.V1.V1Copy.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V1.V1Copy.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.V1.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.V1.html
new file mode 100644
index 0000000..4c65806
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.V1.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.Validator.V1
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.Validator.V1";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidator.V1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.Validator.V1</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation">Validator.V1.V1Copy</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#asV1Validator()">asV1Validator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If you are a version 1 validator, answer yourself as one, otherwise answer null.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V1.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html#asV1Validator()">asV1Validator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidator.V1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.V2.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.V2.html
new file mode 100644
index 0000000..dd17ed8
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.V2.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.Validator.V2
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.Validator.V2";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidator.V2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.Validator.V2</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#asV2Validator()">asV2Validator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If you are a version 2 validator, answer yourself as one, otherwise answer null.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#asV2Validator()">asV2Validator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></CODE></FONT></TD>
+<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#getParent()">getParent</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validator that you belong to.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidator.V2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.V2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.html
new file mode 100644
index 0000000..1c9f725
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/Validator.html
@@ -0,0 +1,437 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.Validator
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.Validator";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.Validator</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A validator that uses version 1 of the validation framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation">Validator.V1.V1Copy</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A validator that uses version 2 of the validation framework.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#copy()">copy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a deep copy of yourself.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#copy(boolean)">copy</A></B>(boolean&nbsp;includeChangeCounts)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V1.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V1.html#copy(boolean)">copy</A></B>(boolean&nbsp;includeChangeCounts)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#copy(boolean)">copy</A></B>(boolean&nbsp;includeChangeCounts)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#create(IConfigurationElement, IProject)">create</A></B>(IConfigurationElement&nbsp;validator,
+       IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new validator based on a abstract validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#create(ValidatorMetaData, ValidationConfiguration, IProject)">create</A></B>(ValidatorMetaData&nbsp;vmd,
+       ValidationConfiguration&nbsp;config,
+       IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new validator based on validator meta data.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B>DependentResource.</B><B><A HREF="../../../../../org/eclipse/wst/validation/DependentResource.html#getValidator()">getValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validator that asserted the dependency.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidator(java.lang.String)">getValidator</A></B>(java.lang.String&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use getValidator(String id, IProject project) with a null project instead.</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidator(java.lang.String, IProject)">getValidator</A></B>(java.lang.String&nbsp;id,
+             IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer the validator with the given id that is in effect for the given
+ project.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]</CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidators()">getValidators</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer copies of all the registered validators.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]</CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidatorsConfiguredForProject(IProject)">getValidatorsConfiguredForProject</A></B>(IProject&nbsp;project)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validators can use project level settings (Project natures and facets) to
+ determine if they are applicable to the project or not.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]</CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidatorsFor(IResource)">getValidatorsFor</A></B>(IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the validators that are applicable for the given resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]</CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getValidatorsFor(IResource, boolean, boolean)">getValidatorsFor</A></B>(IResource&nbsp;resource,
+                 boolean&nbsp;isManual,
+                 boolean&nbsp;isBuild)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the validators that are applicable for the given resource.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return types with arguments of type <A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Set&lt;<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#getDisabledValidatorsFor(IResource)">getDisabledValidatorsFor</A></B>(IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer all the validators that should not validate the resource, either
+ because their filters don't support the resource, or the validator has
+ been disabled for both build validation and manual validation.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#compareTo(org.eclipse.wst.validation.Validator)">compareTo</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare yourself based on Validator name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#isLoaded(org.eclipse.wst.validation.Validator)">isLoaded</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer whether or not the validator has been activated, i.e. has the
+ bundle that defines the validator been loaded.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>Friend.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Friend.html#isLoaded(org.eclipse.wst.validation.Validator)">isLoaded</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Has the validator's implementation been loaded yet?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#sameConfig(org.eclipse.wst.validation.Validator)">sameConfig</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer true if you have the same configuration settings as validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationFramework.html#saveValidators(org.eclipse.wst.validation.Validator[])">saveValidators</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>[]&nbsp;validators)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save the validators settings into the persistent store, there by making their settings the active settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>Friend.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Friend.html#setMessages(org.eclipse.wst.validation.Validator, java.util.Map)">setMessages</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+            java.util.Map&lt;java.lang.String,<A HREF="../../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A>&gt;&nbsp;map)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>Friend.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Friend.html#setMigrated(org.eclipse.wst.validation.Validator, boolean)">setMigrated</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+            boolean&nbsp;migrated)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>Friend.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Friend.html#shouldValidate(org.eclipse.wst.validation.Validator, IResource, boolean, boolean, org.eclipse.wst.validation.internal.ContentTypeWrapper)">shouldValidate</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+               IResource&nbsp;resource,
+               boolean&nbsp;isManual,
+               boolean&nbsp;isBuild,
+               org.eclipse.wst.validation.internal.ContentTypeWrapper&nbsp;contentTypeWrapper)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>Friend.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Friend.html#shouldValidate(org.eclipse.wst.validation.Validator, IResource, org.eclipse.wst.validation.internal.ValType, org.eclipse.wst.validation.internal.ContentTypeWrapper)">shouldValidate</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator,
+               IResource&nbsp;resource,
+               org.eclipse.wst.validation.internal.ValType&nbsp;valType,
+               org.eclipse.wst.validation.internal.ContentTypeWrapper&nbsp;contentTypeWrapper)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/validation/DependentResource.html#DependentResource(IResource, org.eclipse.wst.validation.Validator)">DependentResource</A></B>(IResource&nbsp;resource,
+                  <A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A>&nbsp;validator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Validator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidatorMessage.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidatorMessage.html
new file mode 100644
index 0000000..ebdc152
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/class-use/ValidatorMessage.html
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.ValidatorMessage
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.ValidatorMessage";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidatorMessage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidatorMessage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.ValidatorMessage</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A></CODE></FONT></TD>
+<TD><CODE><B>ValidatorMessage.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html#asCopy()">asCopy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a copy of yourself.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A></CODE></FONT></TD>
+<TD><CODE><B>ValidatorMessage.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html#create(java.lang.String, IResource)">create</A></B>(java.lang.String&nbsp;message,
+       IResource&nbsp;resource)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new validation message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>[]</CODE></FONT></TD>
+<TD><CODE><B>ValidationResults.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationResults.html#getMessages()">getMessages</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer any validation messages that were added by the validation operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>[]</CODE></FONT></TD>
+<TD><CODE><B>ValidationResult.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html#getMessages()">getMessages</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer any validation messages that were added by the validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>[]</CODE></FONT></TD>
+<TD><CODE><B>ValidationResult.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html#getMessagesAsCopy()">getMessagesAsCopy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer a copy of any validation messages that were added by the validator.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ValidationResult.</B><B><A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html#add(org.eclipse.wst.validation.ValidatorMessage)">add</A></B>(<A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is an optional method, that a validator can use to return error
+ messages.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidatorMessage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ValidatorMessage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/doc-files/faq.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/doc-files/faq.html
new file mode 100644
index 0000000..8096d0a
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/doc-files/faq.html
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>Validation Framework - Frequently Asked Questions</title>
+</head>
+<body>
+<h1>Validation Framework - Frequently Asked Questions</h1>
+<h3>How do I create Problem Markers?</h3>
+<p>There are three different ways to create problem markers.</p>
+<ol>
+	<li>Use the native support in the validation framework.</li>
+	<li>Manage your own markers.</li>
+	<li>Use the support in the previous version of the validation framework.</li>
+</ol>
+<p>The first approach, is the recommended approach.</p>
+
+<h4>1. Use the native support in the validation framework</h4>
+<p>After you have finished performing your validation, and are returning control back to
+the validation framework, add your messages into the 
+<a href="../ValidationResult.html">ValidationResult</a> by using
+the <a href="../ValidationResult.html#add(org.eclipse.wst.validation.ValidatorMessage)">add(ValidatorMessage message)</a> method.
+
+<h4>2. Manage your own markers</h4>
+
+<p>Create and remove your own markers. So that summary information can still be displayed, set the counts of any newly
+created markers in the <a href="../ValidationResult.html">ValidationResult</a> by using the setSeverityXXX() methods.
+For example, if this validation pass generated two error markers, you would call 
+<a href="../ValidationResult.html#setSeverityError(int)">setSeverityError(2)</a>. 
+</p>
+
+<h4>3. Use the support in the previous version of the validation framework</h4>
+
+<p>If you are porting a validator that used the previous version of the validation framework, and you wish to continue to use an
+<A HREF="../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html">IReporter</a> to
+report your markers, you can continue to do so.</p>
+<p>For this approach, use the
+<a href="../ValidationResult.html#getReporter(IProgressMonitor)">getReporter(IProgressMonitor&nbsp;monitor)</a> method,
+and return your messages through the IReporter. If this method is called it is assumed by the framework, 
+that this IReporter will be used as the only way of passing messages back to the framework. 
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IMessage.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IMessage.html
new file mode 100644
index 0000000..0d8d7f2
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IMessage.html
@@ -0,0 +1,1012 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+IMessage
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IMessage";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMessage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IMessage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMessage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation.internal.provisional.core</FONT>
+<BR>
+Interface IMessage</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IMessage</B></DL>
+</PRE>
+
+<P>
+<p>
+ This interface represents a locale-independent validation message.
+ </p>
+ <p>
+ Given these three values as input, this interface can be queried for the final message string.
+ (i.e., the message with the parameters already substituted in.) Either the default Locale can be
+ used, or the caller can specify a Locale.
+ </p>
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#ALL_MESSAGES">ALL_MESSAGES</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specify all types of messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#ERROR_AND_WARNING">ERROR_AND_WARNING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specify high (error) and normal (warning) messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#HIGH_SEVERITY">HIGH_SEVERITY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Typically used to specify error messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#LINENO_UNSET">LINENO_UNSET</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#LOW_SEVERITY">LOW_SEVERITY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Typically used to specify information messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#NORMAL_SEVERITY">NORMAL_SEVERITY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Typically used to specify warning messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#OFFSET_UNSET">OFFSET_UNSET</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#TargetResource">TargetResource</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TargetResource - The key to use when associating a resource with a message via an
+ attribute.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getAttribute(java.lang.String)">getAttribute</A></B>(java.lang.String&nbsp;attributeName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides a way to store some additional attributes that a message would like to store
+ that can used by some other parties that are interested in those attribute values.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.HashMap</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getAttributes()">getAttributes</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all the attributes of a Message object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getBundleName()">getBundleName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getGroupName()">getGroupName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To support removal of a subset of validation messages, an IValidator may assign group names
+ to IMessages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the id of the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getLength()">getLength</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getLineNumber()">getLineNumber</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If there is a target object associated with this IMessage, and that target object is a file,
+ then an optional line number may be set.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getMarkerId()">getMarkerId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the marker id if one is set on this object when created.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getOffset()">getOffset</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the offset of the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getParams()">getParams</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the parameters of the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getSeverity()">getSeverity</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Returns the severity level of the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getTargetObject()">getTargetObject</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the object that this IMessage is reporting the problem against, if any. null will be
+ returned if this is a general message which does not apply to a particular object; for
+ example, "internal error".</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getText()">getText</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getText(java.lang.ClassLoader)">getText</A></B>(java.lang.ClassLoader&nbsp;classLoader)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getText(java.util.Locale)">getText</A></B>(java.util.Locale&nbsp;locale)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getText(java.util.Locale, java.lang.ClassLoader)">getText</A></B>(java.util.Locale&nbsp;locale,
+        java.lang.ClassLoader&nbsp;classLoader)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setAttribute(java.lang.String, java.lang.Object)">setAttribute</A></B>(java.lang.String&nbsp;attributeName,
+             java.lang.Object&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the attributeName and value as key value pair.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setBundleName(java.lang.String)">setBundleName</A></B>(java.lang.String&nbsp;bundleName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the name of the bundle which this message is contained in.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setGroupName(java.lang.String)">setGroupName</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To support removal of a subset of validation messages, an IValidator may assign group names
+ to IMessages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setId(java.lang.String)">setId</A></B>(java.lang.String&nbsp;newId)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the id of the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setLength(int)">setLength</A></B>(int&nbsp;length)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the length of the problem, starting from the offset.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setLineNo(int)">setLineNo</A></B>(int&nbsp;lineNumber)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If there is a target object associated with this IMessage, and that target object is a file,
+ then an optional line number may be set.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setMarkerId(java.lang.String)">setMarkerId</A></B>(java.lang.String&nbsp;markerId)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the marker id on a Message object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setOffset(int)">setOffset</A></B>(int&nbsp;offset)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the offset of the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setParams(java.lang.String[])">setParams</A></B>(java.lang.String[]&nbsp;newParams)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the parameters of the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setSeverity(int)">setSeverity</A></B>(int&nbsp;newSeverity)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the severity level of the message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setTargetObject(java.lang.Object)">setTargetObject</A></B>(java.lang.Object&nbsp;obj)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Associate this IMessage with the object that has the problem.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OFFSET_UNSET"><!-- --></A><H3>
+OFFSET_UNSET</H3>
+<PRE>
+static final int <B>OFFSET_UNSET</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../../constant-values.html#org.eclipse.wst.validation.internal.provisional.core.IMessage.OFFSET_UNSET">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LINENO_UNSET"><!-- --></A><H3>
+LINENO_UNSET</H3>
+<PRE>
+static final int <B>LINENO_UNSET</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../../constant-values.html#org.eclipse.wst.validation.internal.provisional.core.IMessage.LINENO_UNSET">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="HIGH_SEVERITY"><!-- --></A><H3>
+HIGH_SEVERITY</H3>
+<PRE>
+static final int <B>HIGH_SEVERITY</B></PRE>
+<DL>
+<DD>Typically used to specify error messages.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../../constant-values.html#org.eclipse.wst.validation.internal.provisional.core.IMessage.HIGH_SEVERITY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NORMAL_SEVERITY"><!-- --></A><H3>
+NORMAL_SEVERITY</H3>
+<PRE>
+static final int <B>NORMAL_SEVERITY</B></PRE>
+<DL>
+<DD>Typically used to specify warning messages.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../../constant-values.html#org.eclipse.wst.validation.internal.provisional.core.IMessage.NORMAL_SEVERITY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LOW_SEVERITY"><!-- --></A><H3>
+LOW_SEVERITY</H3>
+<PRE>
+static final int <B>LOW_SEVERITY</B></PRE>
+<DL>
+<DD>Typically used to specify information messages.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../../constant-values.html#org.eclipse.wst.validation.internal.provisional.core.IMessage.LOW_SEVERITY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ERROR_AND_WARNING"><!-- --></A><H3>
+ERROR_AND_WARNING</H3>
+<PRE>
+static final int <B>ERROR_AND_WARNING</B></PRE>
+<DL>
+<DD>Specify high (error) and normal (warning) messages. Typically used with a MessageFilter, to
+ filter out information messages.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../../constant-values.html#org.eclipse.wst.validation.internal.provisional.core.IMessage.ERROR_AND_WARNING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ALL_MESSAGES"><!-- --></A><H3>
+ALL_MESSAGES</H3>
+<PRE>
+static final int <B>ALL_MESSAGES</B></PRE>
+<DL>
+<DD>Specify all types of messages. Typically used with a MessageFilter.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../../constant-values.html#org.eclipse.wst.validation.internal.provisional.core.IMessage.ALL_MESSAGES">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TargetResource"><!-- --></A><H3>
+TargetResource</H3>
+<PRE>
+static final java.lang.String <B>TargetResource</B></PRE>
+<DL>
+<DD>TargetResource - The key to use when associating a resource with a message via an
+ attribute. 
+ <p>
+ Normally, the target is stored using the setTargetObject() method, but
+ some of the legacy validators used this field for objects that where not IResources.
+ In order to associate the message with the proper IResource the validator can store
+ the IResource as an attribute and use this string as the key.
+ </p>
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../../constant-values.html#org.eclipse.wst.validation.internal.provisional.core.IMessage.TargetResource">Constant Field Values</A></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getBundleName()"><!-- --></A><H3>
+getBundleName</H3>
+<PRE>
+java.lang.String <B>getBundleName</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of the bundle which this message is contained in.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupName()"><!-- --></A><H3>
+getGroupName</H3>
+<PRE>
+java.lang.String <B>getGroupName</B>()</PRE>
+<DL>
+<DD>To support removal of a subset of validation messages, an IValidator may assign group names
+ to IMessages. An IMessage subset will be identified by the name of its group. Default (null)
+ means no group.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of the group to which the message belongs.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+java.lang.String <B>getId</B>()</PRE>
+<DL>
+<DD>Returns the id of the message. Message ids are used as the constants in property bundles
+ which localize the description of the message in a locale-independent fashion. The id is the
+ key, in the resource bundle, which identifies the string to be loaded. The id may not be null
+ or the empty string.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the id of the message</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLength()"><!-- --></A><H3>
+getLength</H3>
+<PRE>
+int <B>getLength</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the length of the problem area, starting from the offset. If unset, value =
+ IMessage.OFFSET_UNSET.<DT><B>See Also:</B><DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getOffset()"><CODE>getOffset()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLineNumber()"><!-- --></A><H3>
+getLineNumber</H3>
+<PRE>
+int <B>getLineNumber</B>()</PRE>
+<DL>
+<DD>If there is a target object associated with this IMessage, and that target object is a file,
+ then an optional line number may be set. The line number identifies the location of the
+ problem identified by this message. If no line number has been set, #LINENO_UNSET will be
+ returned.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>line number of the location of the problem.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOffset()"><!-- --></A><H3>
+getOffset</H3>
+<PRE>
+int <B>getOffset</B>()</PRE>
+<DL>
+<DD>Returns the offset of the message. If unset, value = IMessage.OFFSET_UNSET. For example, if
+ the java compiler were a validator, and it reported that a variable name was unknown, offset
+ would identify the position of the first character of the unknown variable. The position is
+ identified by the number of characters from the start of the file.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>offset of the message</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getParams()"><!-- --></A><H3>
+getParams</H3>
+<PRE>
+java.lang.String[] <B>getParams</B>()</PRE>
+<DL>
+<DD>Returns the parameters of the message. Message parameters are the values which are
+ substituted into parameter slots in localized message text descriptions.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>parameters of the message</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSeverity()"><!-- --></A><H3>
+getSeverity</H3>
+<PRE>
+int <B>getSeverity</B>()</PRE>
+<DL>
+<DD><p>
+ Returns the severity level of the message. One of SeverityEnum constants.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the severity level of the message<DT><B>See Also:</B><DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#HIGH_SEVERITY"><CODE>HIGH_SEVERITY</CODE></A>, 
+<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#NORMAL_SEVERITY"><CODE>NORMAL_SEVERITY</CODE></A>, 
+<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#LOW_SEVERITY"><CODE></p></CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTargetObject()"><!-- --></A><H3>
+getTargetObject</H3>
+<PRE>
+java.lang.Object <B>getTargetObject</B>()</PRE>
+<DL>
+<DD>Return the object that this IMessage is reporting the problem against, if any. null will be
+ returned if this is a general message which does not apply to a particular object; for
+ example, "internal error".
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the target object for the message</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getText()"><!-- --></A><H3>
+getText</H3>
+<PRE>
+java.lang.String <B>getText</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a text representation of this message formatted in the default Locale, with the
+ bundle loaded by the default ClassLoader.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getText(java.lang.ClassLoader)"><!-- --></A><H3>
+getText</H3>
+<PRE>
+java.lang.String <B>getText</B>(java.lang.ClassLoader&nbsp;classLoader)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>classLoader</CODE> - The ClassLoader which will be used to load the ResourceBundle.
+<DT><B>Returns:</B><DD>a text representation of this message formatted in the default locale, with the
+ bundle loaded by the specified ClassLoader.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getText(java.util.Locale)"><!-- --></A><H3>
+getText</H3>
+<PRE>
+java.lang.String <B>getText</B>(java.util.Locale&nbsp;locale)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locale</CODE> - The locale to translate the message text into.
+<DT><B>Returns:</B><DD>a text representation of this message formatted in the specified locale, with the
+ bundle loaded by the default ClassLoader.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getText(java.util.Locale, java.lang.ClassLoader)"><!-- --></A><H3>
+getText</H3>
+<PRE>
+java.lang.String <B>getText</B>(java.util.Locale&nbsp;locale,
+                         java.lang.ClassLoader&nbsp;classLoader)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locale</CODE> - The locale to translate the message text into.<DD><CODE>classLoader</CODE> - The ClassLoader which will be used to load the ResourceBundle.
+<DT><B>Returns:</B><DD>a text representation of this message formatted in the specified locale, with the
+ bundle loaded by the specified ClassLoader.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAttribute(java.lang.String)"><!-- --></A><H3>
+getAttribute</H3>
+<PRE>
+java.lang.Object <B>getAttribute</B>(java.lang.String&nbsp;attributeName)</PRE>
+<DL>
+<DD>Provides a way to store some additional attributes that a message would like to store
+ that can used by some other parties that are interested in those attribute values.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeName</CODE> - 
+<DT><B>Returns:</B><DD>an Object basically the value associated with the object name.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAttribute(java.lang.String, java.lang.Object)"><!-- --></A><H3>
+setAttribute</H3>
+<PRE>
+void <B>setAttribute</B>(java.lang.String&nbsp;attributeName,
+                  java.lang.Object&nbsp;value)</PRE>
+<DL>
+<DD>Set the attributeName and value as key value pair.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeName</CODE> - <DT><B>See Also:</B><DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#getAttribute(java.lang.String)"><CODE>getAttribute(String attributeName)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setBundleName(java.lang.String)"><!-- --></A><H3>
+setBundleName</H3>
+<PRE>
+void <B>setBundleName</B>(java.lang.String&nbsp;bundleName)</PRE>
+<DL>
+<DD>Set the name of the bundle which this message is contained in.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>bundleName</CODE> - Name of the bundle which contains the message.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setGroupName(java.lang.String)"><!-- --></A><H3>
+setGroupName</H3>
+<PRE>
+void <B>setGroupName</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD>To support removal of a subset of validation messages, an IValidator may assign group names
+ to IMessages. An IMessage subset will be identified by the name of its group. Default (null)
+ means no group.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - Name of the group.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setId(java.lang.String)"><!-- --></A><H3>
+setId</H3>
+<PRE>
+void <B>setId</B>(java.lang.String&nbsp;newId)</PRE>
+<DL>
+<DD>Set the id of the message. Message ids are used as the constants in property bundles which
+ localize the description of the message in a locale-independent fashion. The id is the key,
+ in the resource bundle, which identifies the string to be loaded. The id may not be null or
+ the empty string.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>newId</CODE> - Id of the message.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLength(int)"><!-- --></A><H3>
+setLength</H3>
+<PRE>
+void <B>setLength</B>(int&nbsp;length)</PRE>
+<DL>
+<DD>Sets the length of the problem, starting from the offset. If unset, value =
+ IMessage.OFFSET_UNSET.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>length</CODE> - Sets the length.<DT><B>See Also:</B><DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#setOffset(int)"><CODE>setOffset(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLineNo(int)"><!-- --></A><H3>
+setLineNo</H3>
+<PRE>
+void <B>setLineNo</B>(int&nbsp;lineNumber)</PRE>
+<DL>
+<DD>If there is a target object associated with this IMessage, and that target object is a file,
+ then an optional line number may be set. The line number identifies the location of the
+ problem identified by this message. To indicate no line number, use #LINENO_UNSET.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lineNumber</CODE> - Sets the line number.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOffset(int)"><!-- --></A><H3>
+setOffset</H3>
+<PRE>
+void <B>setOffset</B>(int&nbsp;offset)</PRE>
+<DL>
+<DD>Sets the offset of the message. If unset, value = IMessage.OFFSET_UNSET. For example, if the
+ java compiler were a validator, and it reported that a variable name was unknown, offset
+ would identify the position of the first character of the unknown variable. The position is
+ identified by the number of characters from the start of the file.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>offset</CODE> - Sets the offset of the message.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setParams(java.lang.String[])"><!-- --></A><H3>
+setParams</H3>
+<PRE>
+void <B>setParams</B>(java.lang.String[]&nbsp;newParams)</PRE>
+<DL>
+<DD>Sets the parameters of the message. Message parameters are the values which are substituted
+ into parameter slots in localized message text descriptions.
+ <p>
+ For example, if getId() returns "MY_ID", then the ResourceBundle identified by
+ getBundleName() is searched for the message named "MY_ID", and if found,
+ has it's parameters set.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>newParams</CODE> - Parameters of the message.<DT><B>See Also:</B><DD><CODE>is invoked on the message, with
+      <code>newParams</code> passed in as the Object[].</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSeverity(int)"><!-- --></A><H3>
+setSeverity</H3>
+<PRE>
+void <B>setSeverity</B>(int&nbsp;newSeverity)</PRE>
+<DL>
+<DD>Sets the severity level of the message. One of SeverityEnum constants.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>newSeverity</CODE> - Severity level of the message.<DT><B>See Also:</B><DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#HIGH_SEVERITY"><CODE>HIGH_SEVERITY</CODE></A>, 
+<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#NORMAL_SEVERITY"><CODE>NORMAL_SEVERITY</CODE></A>, 
+<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html#LOW_SEVERITY"><CODE>LOW_SEVERITY</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTargetObject(java.lang.Object)"><!-- --></A><H3>
+setTargetObject</H3>
+<PRE>
+void <B>setTargetObject</B>(java.lang.Object&nbsp;obj)</PRE>
+<DL>
+<DD>Associate this IMessage with the object that has the problem. A null value is permitted. If a
+ message is applicable to one object, then this value should be set. Otherwise, the default
+ value (null) should be kept. Given this target object, it should be possible to calculate the
+ exact location of the problem.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>obj</CODE> - The object that has the problem.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAttributes()"><!-- --></A><H3>
+getAttributes</H3>
+<PRE>
+java.util.HashMap <B>getAttributes</B>()</PRE>
+<DL>
+<DD>Return all the attributes of a Message object.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMarkerId()"><!-- --></A><H3>
+getMarkerId</H3>
+<PRE>
+java.lang.String <B>getMarkerId</B>()</PRE>
+<DL>
+<DD>Return the marker id if one is set on this object when created.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMarkerId(java.lang.String)"><!-- --></A><H3>
+setMarkerId</H3>
+<PRE>
+void <B>setMarkerId</B>(java.lang.String&nbsp;markerId)</PRE>
+<DL>
+<DD>Set the marker id on a Message object.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMessage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IMessage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMessage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html
new file mode 100644
index 0000000..5609b67
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+IMetaModelContext
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IMetaModelContext";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMetaModelContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaModelContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation.internal.provisional.core</FONT>
+<BR>
+Interface IMetaModelContext</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IMetaModelContext</B><DT>extends <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A></DL>
+</PRE>
+
+<P>
+<p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html#getModel(java.lang.String)">getModel</A></B>(java.lang.String&nbsp;URI)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.validation.internal.provisional.core.IValidationContext"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface org.eclipse.wst.validation.internal.provisional.core.<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html#getURIs()">getURIs</A>, <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html#loadModel(java.lang.String)">loadModel</A>, <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html#loadModel(java.lang.String, java.lang.Object[])">loadModel</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getModel(java.lang.String)"><!-- --></A><H3>
+getModel</H3>
+<PRE>
+java.lang.Object <B>getModel</B>(java.lang.String&nbsp;URI)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMetaModelContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaModelContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html
new file mode 100644
index 0000000..4942d7b
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+IProjectValidationContext
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IProjectValidationContext";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IProjectValidationContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IProjectValidationContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation.internal.provisional.core</FONT>
+<BR>
+Interface IProjectValidationContext</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IProjectValidationContext</B><DT>extends <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A></DL>
+</PRE>
+
+<P>
+IProjectValidationContext extends IValidationContext to provide access to a
+ reference to the project on which a validator is being invoked.
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IProject</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html#getProject()">getProject</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides the project on which the validator is being invoked.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.validation.internal.provisional.core.IValidationContext"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface org.eclipse.wst.validation.internal.provisional.core.<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html#getURIs()">getURIs</A>, <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html#loadModel(java.lang.String)">loadModel</A>, <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html#loadModel(java.lang.String, java.lang.Object[])">loadModel</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getProject()"><!-- --></A><H3>
+getProject</H3>
+<PRE>
+IProject <B>getProject</B>()</PRE>
+<DL>
+<DD>Provides the project on which the validator is being invoked.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an IProject reference to the project on which the validator is
+         being invoked.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IProjectValidationContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IProjectValidationContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IReporter.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IReporter.html
new file mode 100644
index 0000000..b7e55ef
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IReporter.html
@@ -0,0 +1,427 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+IReporter
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IReporter";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IReporter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IReporter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IReporter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation.internal.provisional.core</FONT>
+<BR>
+Interface IReporter</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../../../org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation">ReporterHelper</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IReporter</B></DL>
+</PRE>
+
+<P>
+The interface used by IValidator's to report messages. The implementation of the IReporter could
+ simply log the messages to stdout, a file, or retain them in a buffer for later access by a user
+ interface.
+ <p>
+ Reporter implementations should keep non-localized versions of their messages.
+ </p>
+ <p>
+ Any messages which need to be displayed to the user are done through this class, and if the user
+ cancels the current function, this class is the one which registers the cancellation.
+ </p>
+ <p>
+ The IReporter instance is created at the time validation begins and ends when validation is complete.
+ There is only one IReporter instance created for all validators that are run on a IResource. The IResource
+ provides a way to get messages put out each validator and add and delete messages for one validator
+ at a time. 
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">addMessage</A></B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+           <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Add a locale-independent validation message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#displaySubtask(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">displaySubtask</A></B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+               <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Show a text representation of this message, formatted in the default
+ Locale, to the user immediately.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#getMessages()">getMessages</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#isCancelled()">isCancelled</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if the user canceled validation, and false otherwise.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator)">removeAllMessages</A></B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove all validation messages entered by the identified validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object)">removeAllMessages</A></B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+                  java.lang.Object&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove all validation messages, entered by the identified validator,
+ pertaining to the Object provided.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeMessageSubset(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object, java.lang.String)">removeMessageSubset</A></B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+                    java.lang.Object&nbsp;obj,
+                    java.lang.String&nbsp;groupName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To support removal of a subset of validation messages, an IValidator may
+ assign group names to IMessages.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)"><!-- --></A><H3>
+addMessage</H3>
+<PRE>
+void <B>addMessage</B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+                <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</PRE>
+<DL>
+<DD><p>
+ Add a locale-independent validation message. It will be displayed later, with all of the
+ other validation messages.
+ </p>
+ <p>
+ The IValidator passed in is needed for incremental validation (when a message needs to be
+ removed, one validator should not remove messages entered by another validator.) The
+ validator is also queried for information about its resource bundle, to enable support for
+ localization of messages in a client-server environment.
+ </p>
+ <p>
+ Both parameters must not be null.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>origin</CODE> - The validator which is the source of the message.<DD><CODE>message</CODE> - A message to be reported.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="displaySubtask(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)"><!-- --></A><H3>
+displaySubtask</H3>
+<PRE>
+void <B>displaySubtask</B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+                    <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</PRE>
+<DL>
+<DD>Show a text representation of this message, formatted in the default
+ Locale, to the user immediately. This message indicates which subtask is
+ currently being processed. The message is not stored. The subtask message
+ in this context is the subtask in a IProgressMontior
+ <p>
+ Both parameters must not be null.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>validator</CODE> - The validator issuing the subtask message.<DD><CODE>message</CODE> - The message to be displayed to the user.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMessages()"><!-- --></A><H3>
+getMessages</H3>
+<PRE>
+java.util.List <B>getMessages</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the message access interface to this reporter, or null if message access is not
+ supported.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCancelled()"><!-- --></A><H3>
+isCancelled</H3>
+<PRE>
+boolean <B>isCancelled</B>()</PRE>
+<DL>
+<DD>Return true if the user canceled validation, and false otherwise. This method should be
+ called by IValidators periodically, because no event is fired to notify IValidators that the
+ user canceled validation. If a validator does not check this method, a cancellation request
+ is ignored.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the user canceled validation, and false otherwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator)"><!-- --></A><H3>
+removeAllMessages</H3>
+<PRE>
+void <B>removeAllMessages</B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin)</PRE>
+<DL>
+<DD>Remove all validation messages entered by the identified validator. This method is provided
+ for incremental validation. 
+ <p>
+ The IValidator parameter must not be null.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>origin</CODE> - Originator validator of the message.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object)"><!-- --></A><H3>
+removeAllMessages</H3>
+<PRE>
+void <B>removeAllMessages</B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+                       java.lang.Object&nbsp;object)</PRE>
+<DL>
+<DD>Remove all validation messages, entered by the identified validator,
+ pertaining to the Object provided. This method is provided for
+ incremental validation. <br>
+ <br>
+ If <code>object</code> is null, then this method should remove all
+ messages owned by the validator. (i.e., the same behaviour as the
+ removeAllMessages(IValidator) method.) <br>
+ <br>
+ <p>
+ The IValidator parameter must not be null.
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>origin</CODE> - Originator validator of the message.<DD><CODE>object</CODE> - Object to which the message belongs. Object is the target object
+                that was set on the IMessage when adding the message as problem
+                marker.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeMessageSubset(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object, java.lang.String)"><!-- --></A><H3>
+removeMessageSubset</H3>
+<PRE>
+void <B>removeMessageSubset</B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+                         java.lang.Object&nbsp;obj,
+                         java.lang.String&nbsp;groupName)</PRE>
+<DL>
+<DD>To support removal of a subset of validation messages, an IValidator may
+ assign group names to IMessages. An IMessage subset will be identified by
+ the name of its group. This method will remove only the IMessage's that
+ are in the group identified by groupName. 
+ <p>
+ The IValidator parameter must not be null.
+ </p>
+ <p>
+ If <code>object</code> is null, then this method should remove all
+ messages owned by the validator. (i.e., the same behaviour as the
+ removeAllMessages(IValidator) method.)
+ </p>
+ <p>
+ If groupName is null, that's the same as no group (i.e., the same
+ behaviour as the <code>removeAllMessages(IValidator, Object)</code>
+ method.)
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>validator</CODE> - Originator validator of the message.<DD><CODE>obj</CODE> - Object to which the message belongs.<DD><CODE>groupName</CODE> - Name of the group to which the message belongs.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IReporter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IReporter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IReporter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html
new file mode 100644
index 0000000..4bbbf4b
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html
@@ -0,0 +1,296 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+IValidationContext
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IValidationContext";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IValidationContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidationContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation.internal.provisional.core</FONT>
+<BR>
+Interface IValidationContext</H2>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMetaModelContext</A>, <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IProjectValidationContext</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IValidationContext</B></DL>
+</PRE>
+
+<P>
+This class is used to to separate the IValidator from the model loading. A model 
+ is a group of object(s) that must follow some rules.
+ <p>
+ The model is loaded differently depending on whether the validator is running in 
+ as-you-type or builder based context. If the <code>loadModel</code> method was a method on the IValidator, 
+ then there would need to be two versions of validators, one for as-you-type and one for 
+ builder based. Because <code>loadModel</code> is separate from the IValidator, we provide 
+ two different IHelpers instead, and ship the one specific to the environment.
+ </p>
+ <p>
+ Each IValidationContext implementation loads a specific model as identified by a String
+ <code>symbolicName</code>. The symbolicName can be any value except null or the 
+ empty string. Each validator identifies the symbolic names which it needs, and the
+ type of model which needs to be returned when that symbolic name is loaded via a 
+ <code>loadModel</code> method. An IValidationContext can support more than one IValidator; 
+ the helper needs to support every model that each validator needs.
+ </p>
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html#getURIs()">getURIs</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html#loadModel(java.lang.String)">loadModel</A></B>(java.lang.String&nbsp;symbolicName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Load the model identified by <code>symbolicName</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html#loadModel(java.lang.String, java.lang.Object[])">loadModel</A></B>(java.lang.String&nbsp;symbolicName,
+          java.lang.Object[]&nbsp;parms)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Load the model identified by <code>symbolicName</code> and <code>parms</code>.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="loadModel(java.lang.String)"><!-- --></A><H3>
+loadModel</H3>
+<PRE>
+java.lang.Object <B>loadModel</B>(java.lang.String&nbsp;symbolicName)</PRE>
+<DL>
+<DD><p>
+ Load the model identified by <code>symbolicName</code>. <code>symbolicName</code> 
+ must not be null or the empty string if the validator needs to be run in both 
+ as-you-type and builder based validation.
+ </p>
+ <p>
+ The symbolicName is a string name that is registered in the implementation of the
+ IValidatorContext. For an example our internal implementation of the loadModel use
+ method names for symbolicNames to load the model object to be validated. Users can
+ use their own model load mechanism.
+ </p>
+<P>
+<DD><DL>
+<DT><B>See Also:</B><DD><code>WorkbenchContext</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="loadModel(java.lang.String, java.lang.Object[])"><!-- --></A><H3>
+loadModel</H3>
+<PRE>
+java.lang.Object <B>loadModel</B>(java.lang.String&nbsp;symbolicName,
+                           java.lang.Object[]&nbsp;parms)</PRE>
+<DL>
+<DD><p>
+ Load the model identified by <code>symbolicName</code> and <code>parms</code>.
+ <code>symbolicName</code> must not be null or the empty string if the validator 
+ needs to be run in both as-you-type and builder based validation. 
+ If <code>parms</code> is null then this
+ method behaves the same as
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>symbolicName</CODE> - String identifier for model.<DD><CODE>parms</CODE> - List of parameters that the model takes for invocation.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getURIs()"><!-- --></A><H3>
+getURIs</H3>
+<PRE>
+java.lang.String[] <B>getURIs</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a string array with the list of URI's that need to be validated in the
+ case of Incremental build.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IValidationContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidationContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IValidator.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IValidator.html
new file mode 100644
index 0000000..1b1c66e
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IValidator.html
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+IValidator
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IValidator";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IValidator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation.internal.provisional.core</FONT>
+<BR>
+Interface IValidator</H2>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidatorJob</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IValidator</B></DL>
+</PRE>
+
+<P>
+This is the base interface for all Validators. A Validator is a class which verifies that objects
+ follow some rules. For example, in a MOF model which represents an EJB jar, the EJB specification
+ determines the rules. 
+ <p>
+ A validator can perform full validation or incremental validation. All validators must implement
+ full validation but incremental validation is optional.
+ </p>
+ <p>
+ Each validator must not be tied to any particular workbench implementation.
+ </p>
+ <p>
+ A validator's verification starts when the ValidatorLauncher singleton calls
+ <code>validate</code>.
+ </p>
+ <p>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ (repeatedly) as the API evolves.
+ </p>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html#cleanup(org.eclipse.wst.validation.internal.provisional.core.IReporter)">cleanup</A></B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Perform any resource cleanup once validation is complete.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html#validate(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)">validate</A></B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper,
+         <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the method which performs the validation on the objects.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="cleanup(org.eclipse.wst.validation.internal.provisional.core.IReporter)"><!-- --></A><H3>
+cleanup</H3>
+<PRE>
+void <B>cleanup</B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)</PRE>
+<DL>
+<DD>Perform any resource cleanup once validation is complete. If cleanup will take some time, the
+ IValidator should report subtask information to the user through the IReporter parameter. The
+ IReporter parameter will not be null.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>reporter</CODE> - Used for the interaction with the user.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="validate(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)"><!-- --></A><H3>
+validate</H3>
+<PRE>
+void <B>validate</B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper,
+              <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)
+              throws org.eclipse.wst.validation.internal.core.ValidationException</PRE>
+<DL>
+<DD>This is the method which performs the validation on the objects.
+ <p>
+ <code>helper</code> and <code>reporter</code> may not be null. <code>changedFiles</code>
+ may be null, if a full build is desired. <br>
+ </p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>helper</CODE> - Loads an object.<DD><CODE>reporter</CODE> - Is an instance of an IReporter interface, which is used for interaction with the user.
+<DT><B>Throws:</B>
+<DD><CODE>org.eclipse.wst.validation.internal.core.ValidationException</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IValidator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html
new file mode 100644
index 0000000..6f6efe8
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html
@@ -0,0 +1,301 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+IValidatorJob
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IValidatorJob";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IValidatorJob.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" title="class in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidatorJob.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation.internal.provisional.core</FONT>
+<BR>
+Interface IValidatorJob</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IValidatorJob</B><DT>extends <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></DL>
+</PRE>
+
+<P>
+This is the Job interface for the validator. Validators implementing this interface are executed as
+ background jobs. 
+ Following is a sequence of  calls:
+ <ul>
+ <li>validator.getSchedulingRule(helper)
+ <li>validator.validate(reporter)
+ </ul>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;IStatus</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html#OK_STATUS">OK_STATUS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;ISchedulingRule</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html#getSchedulingRule(org.eclipse.wst.validation.internal.provisional.core.IValidationContext)">getSchedulingRule</A></B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the scheduling rule, which the framework applies to the Validator job.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IStatus</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html#validateInJob(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)">validateInJob</A></B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper,
+              <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the method which performs the validation on the objects.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.validation.internal.provisional.core.IValidator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface org.eclipse.wst.validation.internal.provisional.core.<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html#cleanup(org.eclipse.wst.validation.internal.provisional.core.IReporter)">cleanup</A>, <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html#validate(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)">validate</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OK_STATUS"><!-- --></A><H3>
+OK_STATUS</H3>
+<PRE>
+static final IStatus <B>OK_STATUS</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="validateInJob(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)"><!-- --></A><H3>
+validateInJob</H3>
+<PRE>
+IStatus <B>validateInJob</B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper,
+                      <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)
+                      throws org.eclipse.wst.validation.internal.core.ValidationException</PRE>
+<DL>
+<DD>This is the method which performs the validation on the objects.
+ <p>
+ <code>reporter</code> may not be null. <code>changedFiles</code>
+ may be null, if a full build is desired. <br>
+ </p>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>reporter</CODE> - Is an instance of an IReporter interface, which is used for interaction with the
+            user.<DD><CODE>helper</CODE> - Will not be null, loads an object.
+<DT><B>Throws:</B>
+<DD><CODE>org.eclipse.wst.validation.internal.core.ValidationException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSchedulingRule(org.eclipse.wst.validation.internal.provisional.core.IValidationContext)"><!-- --></A><H3>
+getSchedulingRule</H3>
+<PRE>
+ISchedulingRule <B>getSchedulingRule</B>(<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper)</PRE>
+<DL>
+<DD>Get the scheduling rule, which the framework applies to the Validator job.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>helper</CODE> - Will not be null, loads an object.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IValidatorJob.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" title="class in org.eclipse.wst.validation.internal.provisional.core"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidatorJob.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html
new file mode 100644
index 0000000..3947043
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+MessageLimitException
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="MessageLimitException";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MessageLimitException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageLimitException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.wst.validation.internal.provisional.core</FONT>
+<BR>
+Class MessageLimitException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../../../../resources/inherit.gif" ALT="extended by ">java.lang.RuntimeException
+              <IMG SRC="../../../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.validation.internal.provisional.core.MessageLimitException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<B>Deprecated.</B>&nbsp;<I>This class is not longer used by the framework. The framework is
+  not going to limit the number of messages displayed by a validator.</I>
+<P>
+<DL>
+<DT><PRE>public class <B>MessageLimitException</B><DT>extends java.lang.RuntimeException</DL>
+</PRE>
+
+<P>
+This exception is thrown by
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)"><CODE>method if no more messages can be reported
+      because the maximum number of messages has been reported.</CODE></A>, 
+<A HREF="../../../../../../../serialized-form.html#org.eclipse.wst.validation.internal.provisional.core.MessageLimitException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html#MessageLimitException()">MessageLimitException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="MessageLimitException()"><!-- --></A><H3>
+MessageLimitException</H3>
+<PRE>
+public <B>MessageLimitException</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B>&nbsp;</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MessageLimitException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageLimitException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IMessage.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IMessage.html
new file mode 100644
index 0000000..862659d
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IMessage.html
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IMessage
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IMessage";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIMessage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMessage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.internal.provisional.core.IMessage</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation.internal.provisional.core"><B>org.eclipse.wst.validation.internal.provisional.core</B></A></TD>
+<TD>An earlier framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A> in <A HREF="../../../../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return types with arguments of type <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.List&lt;<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B>ReporterHelper.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ReporterHelper.html#getMessages()">getMessages</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ReporterHelper.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ReporterHelper.html#addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">addMessage</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+           <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ReporterHelper.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ReporterHelper.html#displaySubtask(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">displaySubtask</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+               <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation.internal.provisional.core"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A> in <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A> with parameters of type <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IReporter.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">addMessage</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+           <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Add a locale-independent validation message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IReporter.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#displaySubtask(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">displaySubtask</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+               <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Show a text representation of this message, formatted in the default
+ Locale, to the user immediately.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIMessage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMessage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IMetaModelContext.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IMetaModelContext.html
new file mode 100644
index 0000000..9fdac81
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IMetaModelContext.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IMetaModelContext
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IMetaModelContext";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIMetaModelContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaModelContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.internal.provisional.core.IMetaModelContext</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.validation.internal.provisional.core.IMetaModelContext
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIMetaModelContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaModelContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IProjectValidationContext.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IProjectValidationContext.html
new file mode 100644
index 0000000..42b54d5
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IProjectValidationContext.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IProjectValidationContext
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IProjectValidationContext";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIProjectValidationContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IProjectValidationContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.internal.provisional.core.IProjectValidationContext</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.validation.internal.provisional.core.IProjectValidationContext
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIProjectValidationContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IProjectValidationContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IReporter.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IReporter.html
new file mode 100644
index 0000000..bfc32f3
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IReporter.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IReporter
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IReporter";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIReporter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IReporter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.internal.provisional.core.IReporter</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation.internal.provisional.core"><B>org.eclipse.wst.validation.internal.provisional.core</B></A></TD>
+<TD>An earlier framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A> in <A HREF="../../../../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that implement <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation">ReporterHelper</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is a temporary class to ease the transition from the previous validation framework.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationResult.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ValidationResult.html#getReporter(IProgressMonitor)">getReporter</A></B>(IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Answer an IReporter for handing error messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></CODE></FONT></TD>
+<TD><CODE><B>ValidationFramework.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ValidationFramework.html#getReporter(IProject, IProgressMonitor)">getReporter</A></B>(IProject&nbsp;project,
+            IProgressMonitor&nbsp;monitor)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation.internal.provisional.core"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A> in <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A> with parameters of type <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IValidator.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html#cleanup(org.eclipse.wst.validation.internal.provisional.core.IReporter)">cleanup</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Perform any resource cleanup once validation is complete.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IValidator.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html#validate(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)">validate</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper,
+         <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the method which performs the validation on the objects.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IStatus</CODE></FONT></TD>
+<TD><CODE><B>IValidatorJob.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html#validateInJob(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)">validateInJob</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper,
+              <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the method which performs the validation on the objects.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIReporter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IReporter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IValidationContext.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IValidationContext.html
new file mode 100644
index 0000000..2cd7f6e
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IValidationContext.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IValidationContext
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IValidationContext";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIValidationContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidationContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.internal.provisional.core.IValidationContext</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation.internal.provisional.core"><B>org.eclipse.wst.validation.internal.provisional.core</B></A></TD>
+<TD>An earlier framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation.internal.provisional.core"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A> in <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Subinterfaces of <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A> in <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;interface</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMetaModelContext</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;interface</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IProjectValidationContext</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IProjectValidationContext extends IValidationContext to provide access to a
+ reference to the project on which a validator is being invoked.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A> with parameters of type <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;ISchedulingRule</CODE></FONT></TD>
+<TD><CODE><B>IValidatorJob.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html#getSchedulingRule(org.eclipse.wst.validation.internal.provisional.core.IValidationContext)">getSchedulingRule</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the scheduling rule, which the framework applies to the Validator job.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IValidator.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html#validate(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)">validate</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper,
+         <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the method which performs the validation on the objects.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;IStatus</CODE></FONT></TD>
+<TD><CODE><B>IValidatorJob.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html#validateInJob(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)">validateInJob</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A>&nbsp;helper,
+              <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A>&nbsp;reporter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the method which performs the validation on the objects.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIValidationContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidationContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IValidator.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IValidator.html
new file mode 100644
index 0000000..0168f1b
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IValidator.html
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IValidator
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IValidator";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.internal.provisional.core.IValidator</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation.internal.provisional.core"><B>org.eclipse.wst.validation.internal.provisional.core</B></A></TD>
+<TD>An earlier framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A> in <A HREF="../../../../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> that return <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/Validator.html#asIValidator()">asIValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V1.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/Validator.V1.html#asIValidator()">asIValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></CODE></FONT></TD>
+<TD><CODE><B>Validator.V2.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/Validator.V2.html#asIValidator()">asIValidator</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ReporterHelper.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ReporterHelper.html#addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">addMessage</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+           <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ReporterHelper.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ReporterHelper.html#displaySubtask(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">displaySubtask</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+               <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ReporterHelper.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ReporterHelper.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator)">removeAllMessages</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ReporterHelper.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ReporterHelper.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object)">removeAllMessages</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+                  java.lang.Object&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ReporterHelper.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/ReporterHelper.html#removeMessageSubset(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object, java.lang.String)">removeMessageSubset</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+                    java.lang.Object&nbsp;obj,
+                    java.lang.String&nbsp;groupName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation.internal.provisional.core"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A> in <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Subinterfaces of <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A> in <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;interface</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidatorJob</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the Job interface for the validator.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A> with parameters of type <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IReporter.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#addMessage(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">addMessage</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+           <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Add a locale-independent validation message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IReporter.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#displaySubtask(org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IMessage)">displaySubtask</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+               <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A>&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Show a text representation of this message, formatted in the default
+ Locale, to the user immediately.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IReporter.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator)">removeAllMessages</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove all validation messages entered by the identified validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IReporter.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeAllMessages(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object)">removeAllMessages</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;origin,
+                  java.lang.Object&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove all validation messages, entered by the identified validator,
+ pertaining to the Object provided.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IReporter.</B><B><A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html#removeMessageSubset(org.eclipse.wst.validation.internal.provisional.core.IValidator, java.lang.Object, java.lang.String)">removeMessageSubset</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A>&nbsp;validator,
+                    java.lang.Object&nbsp;obj,
+                    java.lang.String&nbsp;groupName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To support removal of a subset of validation messages, an IValidator may
+ assign group names to IMessages.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIValidator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IValidatorJob.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IValidatorJob.html
new file mode 100644
index 0000000..55d0066
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/IValidatorJob.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IValidatorJob
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.wst.validation.internal.provisional.core.IValidatorJob";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIValidatorJob.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidatorJob.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.wst.validation.internal.provisional.core.IValidatorJob</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.validation.internal.provisional.core.IValidatorJob
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useIValidatorJob.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IValidatorJob.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/MessageLimitException.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/MessageLimitException.html
new file mode 100644
index 0000000..ec4cbdb
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/class-use/MessageLimitException.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Class org.eclipse.wst.validation.internal.provisional.core.MessageLimitException
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.wst.validation.internal.provisional.core.MessageLimitException";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" title="class in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useMessageLimitException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageLimitException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.wst.validation.internal.provisional.core.MessageLimitException</B></H2>
+</CENTER>
+No usage of org.eclipse.wst.validation.internal.provisional.core.MessageLimitException
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" title="class in org.eclipse.wst.validation.internal.provisional.core"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/\class-useMessageLimitException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MessageLimitException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/package-frame.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/package-frame.html
new file mode 100644
index 0000000..edf1615
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/package-frame.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+org.eclipse.wst.validation.internal.provisional.core
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html" target="classFrame">org.eclipse.wst.validation.internal.provisional.core</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IMessage</I></A>
+<BR>
+<A HREF="IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IMetaModelContext</I></A>
+<BR>
+<A HREF="IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IProjectValidationContext</I></A>
+<BR>
+<A HREF="IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IReporter</I></A>
+<BR>
+<A HREF="IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IValidationContext</I></A>
+<BR>
+<A HREF="IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IValidator</I></A>
+<BR>
+<A HREF="IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core" target="classFrame"><I>IValidatorJob</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="MessageLimitException.html" title="class in org.eclipse.wst.validation.internal.provisional.core" target="classFrame">MessageLimitException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/package-summary.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/package-summary.html
new file mode 100644
index 0000000..5a11f72
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/package-summary.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+org.eclipse.wst.validation.internal.provisional.core
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.eclipse.wst.validation.internal.provisional.core";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.eclipse.wst.validation.internal.provisional.core
+</H2>
+An earlier framework for calling validators that are build based.
+<P>
+<B>See:</B>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMessage.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMessage</A></B></TD>
+<TD>
+ This interface represents a locale-independent validation message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IMetaModelContext</A></B></TD>
+<TD>
+ <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ change significantly before reaching stability.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IProjectValidationContext</A></B></TD>
+<TD>IProjectValidationContext extends IValidationContext to provide access to a
+ reference to the project on which a validator is being invoked.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IReporter</A></B></TD>
+<TD>The interface used by IValidator's to report messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidationContext.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidationContext</A></B></TD>
+<TD>This class is used to to separate the IValidator from the model loading.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidator.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidator</A></B></TD>
+<TD>This is the base interface for all Validators.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.html" title="interface in org.eclipse.wst.validation.internal.provisional.core">IValidatorJob</A></B></TD>
+<TD>This is the Job interface for the validator.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" title="class in org.eclipse.wst.validation.internal.provisional.core">MessageLimitException</A></B></TD>
+<TD><B>Deprecated.</B>&nbsp;<I>This class is not longer used by the framework.</I></TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package org.eclipse.wst.validation.internal.provisional.core Description
+</H2>
+
+<P>
+<p>An earlier framework for calling validators that are build based.</p>
+<p>This framework is being replaced by the <code>newer org.eclipse.wst.validation</code> framework.</p>
+<P>
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../../../org/eclipse/wst/validation/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/package-use.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/package-use.html
new file mode 100644
index 0000000..44e11e4
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/internal/provisional/core/package-use.html
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Package org.eclipse.wst.validation.internal.provisional.core
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Package org.eclipse.wst.validation.internal.provisional.core";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.eclipse.wst.validation.internal.provisional.core</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation.internal.provisional.core"><B>org.eclipse.wst.validation.internal.provisional.core</B></A></TD>
+<TD>An earlier framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A> used by <A HREF="../../../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/class-use/IMessage.html#org.eclipse.wst.validation"><B>IMessage</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ This interface represents a locale-independent validation message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/class-use/IReporter.html#org.eclipse.wst.validation"><B>IReporter</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The interface used by IValidator's to report messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/class-use/IValidator.html#org.eclipse.wst.validation"><B>IValidator</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the base interface for all Validators.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation.internal.provisional.core"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A> used by <A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/class-use/IMessage.html#org.eclipse.wst.validation.internal.provisional.core"><B>IMessage</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ This interface represents a locale-independent validation message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/class-use/IReporter.html#org.eclipse.wst.validation.internal.provisional.core"><B>IReporter</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The interface used by IValidator's to report messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/class-use/IValidationContext.html#org.eclipse.wst.validation.internal.provisional.core"><B>IValidationContext</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class is used to to separate the IValidator from the model loading.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../../../org/eclipse/wst/validation/internal/provisional/core/class-use/IValidator.html#org.eclipse.wst.validation.internal.provisional.core"><B>IValidator</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the base interface for all Validators.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../../index.html?org/eclipse/wst/validation/internal/provisional/core/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/package-frame.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/package-frame.html
new file mode 100644
index 0000000..1aede36
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/package-frame.html
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+org.eclipse.wst.validation
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../org/eclipse/wst/validation/package-summary.html" target="classFrame">org.eclipse.wst.validation</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="IDependencyIndex.html" title="interface in org.eclipse.wst.validation" target="classFrame"><I>IDependencyIndex</I></A>
+<BR>
+<A HREF="IMutableValidator.html" title="interface in org.eclipse.wst.validation" target="classFrame"><I>IMutableValidator</I></A>
+<BR>
+<A HREF="IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation" target="classFrame"><I>IPerformanceMonitor</I></A>
+<BR>
+<A HREF="IValidatorGroupListener.html" title="interface in org.eclipse.wst.validation" target="classFrame"><I>IValidatorGroupListener</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="AbstractValidator.html" title="class in org.eclipse.wst.validation" target="classFrame">AbstractValidator</A>
+<BR>
+<A HREF="DependentResource.html" title="class in org.eclipse.wst.validation" target="classFrame">DependentResource</A>
+<BR>
+<A HREF="Friend.html" title="class in org.eclipse.wst.validation" target="classFrame">Friend</A>
+<BR>
+<A HREF="MessageSeveritySetting.html" title="class in org.eclipse.wst.validation" target="classFrame">MessageSeveritySetting</A>
+<BR>
+<A HREF="MutableProjectSettings.html" title="class in org.eclipse.wst.validation" target="classFrame">MutableProjectSettings</A>
+<BR>
+<A HREF="MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation" target="classFrame">MutableWorkspaceSettings</A>
+<BR>
+<A HREF="PerformanceCounters.html" title="class in org.eclipse.wst.validation" target="classFrame">PerformanceCounters</A>
+<BR>
+<A HREF="ReporterHelper.html" title="class in org.eclipse.wst.validation" target="classFrame">ReporterHelper</A>
+<BR>
+<A HREF="ValidationEvent.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationEvent</A>
+<BR>
+<A HREF="ValidationFramework.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationFramework</A>
+<BR>
+<A HREF="ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationFramework.ResourceAdder</A>
+<BR>
+<A HREF="ValidationResult.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationResult</A>
+<BR>
+<A HREF="ValidationResults.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationResults</A>
+<BR>
+<A HREF="ValidationState.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidationState</A>
+<BR>
+<A HREF="Validator.html" title="class in org.eclipse.wst.validation" target="classFrame">Validator</A>
+<BR>
+<A HREF="Validator.V1.html" title="class in org.eclipse.wst.validation" target="classFrame">Validator.V1</A>
+<BR>
+<A HREF="Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation" target="classFrame">Validator.V1.V1Copy</A>
+<BR>
+<A HREF="Validator.V2.html" title="class in org.eclipse.wst.validation" target="classFrame">Validator.V2</A>
+<BR>
+<A HREF="ValidatorMessage.html" title="class in org.eclipse.wst.validation" target="classFrame">ValidatorMessage</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Enums</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation" target="classFrame">IPerformanceMonitor.CollectionLevel</A>
+<BR>
+<A HREF="MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation" target="classFrame">MessageSeveritySetting.Severity</A>
+<BR>
+<A HREF="Validator.Level.html" title="enum in org.eclipse.wst.validation" target="classFrame">Validator.Level</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/package-summary.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/package-summary.html
new file mode 100644
index 0000000..17d6874
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/package-summary.html
@@ -0,0 +1,336 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+org.eclipse.wst.validation
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.eclipse.wst.validation";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.eclipse.wst.validation
+</H2>
+A framework for calling validators that are build based.
+<P>
+<B>See:</B>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/IDependencyIndex.html" title="interface in org.eclipse.wst.validation">IDependencyIndex</A></B></TD>
+<TD>This service is used to specify the resources that a particular resource depends on.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/IMutableValidator.html" title="interface in org.eclipse.wst.validation">IMutableValidator</A></B></TD>
+<TD>A validator that has fields that can be updated.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.html" title="interface in org.eclipse.wst.validation">IPerformanceMonitor</A></B></TD>
+<TD>A service that collects performance information on validation operations.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/IValidatorGroupListener.html" title="interface in org.eclipse.wst.validation">IValidatorGroupListener</A></B></TD>
+<TD>Validators may wish to join validator groups for performance or other
+ reasons.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/AbstractValidator.html" title="class in org.eclipse.wst.validation">AbstractValidator</A></B></TD>
+<TD>The class that all Validators that wish to use version two of the validation framework must subclass.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/DependentResource.html" title="class in org.eclipse.wst.validation">DependentResource</A></B></TD>
+<TD>A resource that is dependent on another resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/Friend.html" title="class in org.eclipse.wst.validation">Friend</A></B></TD>
+<TD>This class is only to be called by the validation framework and it's test cases.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.html" title="class in org.eclipse.wst.validation">MessageSeveritySetting</A></B></TD>
+<TD>Associate a message severity with a message category.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/MutableProjectSettings.html" title="class in org.eclipse.wst.validation">MutableProjectSettings</A></B></TD>
+<TD>This class holds the overall project validation settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/MutableWorkspaceSettings.html" title="class in org.eclipse.wst.validation">MutableWorkspaceSettings</A></B></TD>
+<TD>This class holds the overall workspace validation settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/PerformanceCounters.html" title="class in org.eclipse.wst.validation">PerformanceCounters</A></B></TD>
+<TD>Some performance information for a validation invocation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/ReporterHelper.html" title="class in org.eclipse.wst.validation">ReporterHelper</A></B></TD>
+<TD>This is a temporary class to ease the transition from the previous validation framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/ValidationEvent.html" title="class in org.eclipse.wst.validation">ValidationEvent</A></B></TD>
+<TD>An object that describes which object should be validated and what triggered its validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.html" title="class in org.eclipse.wst.validation">ValidationFramework</A></B></TD>
+<TD>The central class of the Validation Framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/ValidationFramework.ResourceAdder.html" title="class in org.eclipse.wst.validation">ValidationFramework.ResourceAdder</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></B></TD>
+<TD>The result of running a validate operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/ValidationResults.html" title="class in org.eclipse.wst.validation">ValidationResults</A></B></TD>
+<TD>The combined results of validating multiple resources.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A></B></TD>
+<TD>Keep track of arbitrary validation data, during the course of a validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/Validator.html" title="class in org.eclipse.wst.validation">Validator</A></B></TD>
+<TD>Represents a validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.html" title="class in org.eclipse.wst.validation">Validator.V1</A></B></TD>
+<TD>A validator that uses version 1 of the validation framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V1.V1Copy.html" title="class in org.eclipse.wst.validation">Validator.V1.V1Copy</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/Validator.V2.html" title="class in org.eclipse.wst.validation">Validator.V2</A></B></TD>
+<TD>A validator that uses version 2 of the validation framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/ValidatorMessage.html" title="class in org.eclipse.wst.validation">ValidatorMessage</A></B></TD>
+<TD>This class provides a way for a validator to return messages, that are easily
+ converted into IMarkers.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Enum Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/IPerformanceMonitor.CollectionLevel.html" title="enum in org.eclipse.wst.validation">IPerformanceMonitor.CollectionLevel</A></B></TD>
+<TD>The level of information to collect.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/MessageSeveritySetting.Severity.html" title="enum in org.eclipse.wst.validation">MessageSeveritySetting.Severity</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/wst/validation/Validator.Level.html" title="enum in org.eclipse.wst.validation">Validator.Level</A></B></TD>
+<TD>The level of configuration for the validator.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package org.eclipse.wst.validation Description
+</H2>
+
+<P>
+<p>A framework for calling validators that are build based.</p>
+<p>Also see <a href="doc-files/faq.html">Frequently Asked Questions</a></p>
+<p>
+There are two main types of validation, <b>build based</b> and 
+<b>as you type</b>. This framework supports build based
+validation. If auto build is turned on then the validators are called
+when the user saves their file. If auto build is not turned on then
+the validators are called when the user starts a build.</p>
+<p>This framework was added to WTP in version 3.0.</p>
+<h3>Dependency Support</h3>
+<p>Sometimes resources depend on other resources, to determine whether they are 
+valid or not. An example would be that an XML resource could depend on a DTD. If at some 
+point in the future the DTD changes, then the dependent XML resource should be 
+revalidated to ensure that it still meets the requirements of the changed DTD 
+file. In order to do this efficiently, there needs to be an association between 
+the DTD and all the resources that depend on it.<p>To be as efficient as possible, the validation framework allows 
+this dependency information to be returned as part of a
+<a href="AbstractValidator.html#validate(org.eclipse.core.resources.IResource, int, ValidationState, org.eclipse.core.runtime.IProgressMonitor)">
+validate operation</a>. Since the validator needed to figure this out anyways, 
+why not pass this information back to the framework, so that it can be saved. 
+This saves the cost of having to parse the file at some later point in time 
+(when the file is probably sitting cold on disk). The fewer times that we need 
+to open, read and/or parse the same file, will improve the performance of the 
+product.
+<p>In particular when the validate method returns, a
+<a href="ValidationResult.html">ValidationResult</a> must be returned, inside of 
+this result, all your dependencies need to be specified with the
+<a href="ValidationResult.html#setDependsOn(org.eclipse.core.resources.IResource[])">
+setDependsOn</a> method.<p>In addition to keeping the dependency information 
+up-to-date through the normal course of validation, direct access is also 
+provided to the dependency support through the
+<a href="ValidationFramework.html#getDependencyIndex()">getDependencyIndex</a> 
+method. The <a href="IDependencyIndex.html">IDependencyIndex</a> allows you to 
+directly manipulate the dependency information for a validator.
+<h3>Entry Points into the Validation Framework</h3>
+<p>Here are some of the points where the platform calls into the framework:</p>
+<ul>
+<li><b>Builder</b> - ValidationBuilder</li>
+<li><b>IFacetedProjectListener</b> - ValManager</li>
+<li><b>IJobChangeListener</b> - ValidationOperation, ValidationOperation.ValidationLauncherJob</li>
+<li><b>IProjectChangeListener</b> - ValManager</li>
+<li><b>IPropertyChangeListener</b> - ValidationConfiguration, DisabledResourceManager</li>
+<li><b>IResourceChangeListener</b> - EventManger</li>
+<li><b>IValChangedListener</b> - ValManager, DisabledValidatorManager</li>
+</ul>
+<P>
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/wst/validation/internal/provisional/core/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/package-use.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/package-use.html
new file mode 100644
index 0000000..7429d3f
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/org/eclipse/wst/validation/package-use.html
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Uses of Package org.eclipse.wst.validation
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Package org.eclipse.wst.validation";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.eclipse.wst.validation</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
+<TD>A framework for calling validators that are build based.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.wst.validation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> used by <A HREF="../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/AbstractValidator.html#org.eclipse.wst.validation"><B>AbstractValidator</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The class that all Validators that wish to use version two of the validation framework must subclass.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/DependentResource.html#org.eclipse.wst.validation"><B>DependentResource</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A resource that is dependent on another resource.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/IDependencyIndex.html#org.eclipse.wst.validation"><B>IDependencyIndex</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This service is used to specify the resources that a particular resource depends on.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/IMutableValidator.html#org.eclipse.wst.validation"><B>IMutableValidator</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A validator that has fields that can be updated.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/IPerformanceMonitor.html#org.eclipse.wst.validation"><B>IPerformanceMonitor</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A service that collects performance information on validation operations.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/IPerformanceMonitor.CollectionLevel.html#org.eclipse.wst.validation"><B>IPerformanceMonitor.CollectionLevel</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The level of information to collect.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/MessageSeveritySetting.html#org.eclipse.wst.validation"><B>MessageSeveritySetting</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Associate a message severity with a message category.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/MessageSeveritySetting.Severity.html#org.eclipse.wst.validation"><B>MessageSeveritySetting.Severity</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/MutableProjectSettings.html#org.eclipse.wst.validation"><B>MutableProjectSettings</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class holds the overall project validation settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/MutableWorkspaceSettings.html#org.eclipse.wst.validation"><B>MutableWorkspaceSettings</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class holds the overall workspace validation settings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/PerformanceCounters.html#org.eclipse.wst.validation"><B>PerformanceCounters</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Some performance information for a validation invocation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/ValidationEvent.html#org.eclipse.wst.validation"><B>ValidationEvent</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An object that describes which object should be validated and what triggered its validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/ValidationFramework.html#org.eclipse.wst.validation"><B>ValidationFramework</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The central class of the Validation Framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/ValidationResult.html#org.eclipse.wst.validation"><B>ValidationResult</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The result of running a validate operation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/ValidationResults.html#org.eclipse.wst.validation"><B>ValidationResults</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The combined results of validating multiple resources.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/ValidationState.html#org.eclipse.wst.validation"><B>ValidationState</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keep track of arbitrary validation data, during the course of a validation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/Validator.html#org.eclipse.wst.validation"><B>Validator</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents a validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/Validator.Level.html#org.eclipse.wst.validation"><B>Validator.Level</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The level of configuration for the validator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/Validator.V1.html#org.eclipse.wst.validation"><B>Validator.V1</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A validator that uses version 1 of the validation framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/Validator.V2.html#org.eclipse.wst.validation"><B>Validator.V2</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A validator that uses version 2 of the validation framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/wst/validation/class-use/ValidatorMessage.html#org.eclipse.wst.validation"><B>ValidatorMessage</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class provides a way for a validator to return messages, that are easily
+ converted into IMarkers.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/wst/validation/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/overview-frame.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/overview-frame.html
new file mode 100644
index 0000000..a6942e2
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/overview-frame.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Overview List
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
+<B></B></FONT></TH>
+</TR>
+</TABLE>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
+<P>
+<FONT size="+1" CLASS="FrameHeadingFont">
+Packages</FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/eclipse/wst/validation/package-frame.html" target="packageFrame">org.eclipse.wst.validation</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/eclipse/wst/validation/internal/provisional/core/package-frame.html" target="packageFrame">org.eclipse.wst.validation.internal.provisional.core</A></FONT>
+<BR>
+</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/overview-summary.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/overview-summary.html
new file mode 100644
index 0000000..c138162
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/overview-summary.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Overview";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Web Tools Platform: Validation Framework
+</H1>
+</CENTER>
+A framework for calling validators that are build based.
+<P>
+<B>See:</B>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#overview_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Packages</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></B></TD>
+<TD>A framework for calling validators that are build based.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/eclipse/wst/validation/internal/provisional/core/package-summary.html">org.eclipse.wst.validation.internal.provisional.core</A></B></TD>
+<TD>An earlier framework for calling validators that are build based.</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;<A NAME="overview_description"><!-- --></A>
+<P>
+<p>A framework for calling validators that are build based.</p>
+<h2>Approach</h2>
+<p>In WTP 3.0 a new validation framework has been added. This was developed at 
+the request of validator owners and end users. To ease the transition to this 
+new framework, that approach that has been taken is to support both the old and 
+the new frameworks for a while. This means that the old validators work exactly 
+like they used to. They can still plug into the old framework and will continue 
+to be run by the old framework. This allows validator owners to migrate at their 
+own pace.</p>
+<p>For validator owners that wish to exploit the new framework, it has been 
+designed n such a way to minimize the transition from the old framework to the 
+new framework. There is a new extension point that needs to be specified, and a 
+new abstract class that needs to be extended.</p>
+<h3>Benefits</h3>
+<p>What benefits does the new framework have to offer? Or asked another way, as 
+a validator owner, why would I want to switch?</p>
+<h4>Performance</h4>
+<h5>Tuning</h5>
+<p>The main reason for creating a new framework was to improve performance. As 
+more and more validators are added, validation is consuming a bigger slice of 
+the resources that it takes to perform a build.</p>
+<p>The best performance improvement is eliminating unnecessary work. We 
+eliminate work, by providing significantly more tuning options. Validation 
+owners can tune which resources they are called on. This is done through the use 
+of filter rules. These filter rules are grouped into inclusion and exclusion 
+groups. If you have multiple inclusion groups they are &quot;anded&quot; together, meaning 
+that each of the inclusion groups must have at least one successful filter rule. 
+Exclusion groups are used to specify what doesn't get validated. Exclusion 
+groups have a higher precedence than inclusion groups. If an exclusion group 
+excludes a resource than it is excluded no matter what the inclusion groups may 
+say.</p>
+<p>They are several different types of filter rules:</p>
+<ul>
+        <li><strong>File extension</strong> - Rules based on the file extension. For 
+        example, include all the files with extension *.xml.</li>
+        <li><strong>Folder or File name</strong> - Rules based on the folder or file 
+        name. For example exclude all the resources in the build folder. File names 
+        can be fully qualified, project relative names, e.g. <strong>WebContent/WEB-INF/web.xml</strong>, 
+        or simple names, <strong>web.xml</strong>.</li>
+        <li><strong>Project nature</strong> - Projects with certain natures can be 
+        either included or excluded.</li>
+        <li><strong>Facet</strong> - Projects with certain facets can be either 
+        included or excluded.</li>
+        <li><strong>Content Type </strong>- Resources of a particular content type 
+        can be included or excluded.</li>
+</ul>
+<p>The filter rules and groups form the building blocks of what gets validated.
+</p>
+<p>In terms of tuning however, the end user has the final say. The validator 
+owners specify the default filter rules and groups for their validator, but the 
+end user through the use of preferences can override these settings. </p>
+<h5>Caching</h5>
+<p>Another way that performance is improved is through more effective caching. 
+With the previous framework we were noticing that different validators would be 
+opening and processing the same file, but that this would happen far enough 
+apart, that caches weren't effective. Even if files were being cached, the 
+second (or third, or forth, ...) open would happen far enough a means that way 
+that the file would have already been evicted from the cache. In the new 
+framework, the processing order is more tightly controlled. The framework calls 
+the validator and tells it what to validate. This way files are processed in 
+order, which means that the chance of them being a cache is much higher. Every 
+validator that is interested in file A processes it, and then we move on and 
+every validator that is interested in file B processes it, etc.</p>
+<p>Also because state information is kept for the lifetime of the validation 
+operation, validators can cache expensive operations, like model creation, that 
+might be needed as part of validating several files. </p>
+<h5>Job Control</h5>
+<p>With the earlier framework, there were too many jobs/threads running 
+concurrently. This is now more tightly controlled.</p>
+<h4>Dependency Support</h4>
+<p>Another new feature is dependency support. A validator can now assert that a 
+resource is dependant on some other resources. For example that a XML file is 
+dependant on a XSD file. Now if the XSD file changes the XML can be revalidated. 
+As the user comes to trust this dependency support, they wont perform as many 
+clean builds.</p>
+<h4>Primary Framework</h4>
+<p>This is the primary validation framework. At some point, the earlier 
+framework will be deprecated and then removed. All the new investment will 
+happen in this framework. </p>
+<p>The framework collateral will continue to be enhanced (junit testcases, 
+documentation, performance improvements, ...)</p>
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/package-list b/docs/org.eclipse.wst.validation.doc.isv/reference/api/package-list
new file mode 100644
index 0000000..becb24d
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/package-list
@@ -0,0 +1,2 @@
+org.eclipse.wst.validation
+org.eclipse.wst.validation.internal.provisional.core
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/resources/inherit.gif b/docs/org.eclipse.wst.validation.doc.isv/reference/api/resources/inherit.gif
new file mode 100644
index 0000000..c814867
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/resources/inherit.gif
Binary files differ
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/serialized-form.html b/docs/org.eclipse.wst.validation.doc.isv/reference/api/serialized-form.html
new file mode 100644
index 0000000..b679969
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/serialized-form.html
@@ -0,0 +1,164 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0) on Tue Jan 27 04:28:33 EST 2009 -->
+<TITLE>
+Serialized Form
+</TITLE>
+
+<META NAME="date" CONTENT="2009-01-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Serialized Form";
+    }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Serialized</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Serialized Form</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>org.eclipse.wst.validation.internal.provisional.core</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="org.eclipse.wst.validation.internal.provisional.core.MessageLimitException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.html" title="class in org.eclipse.wst.validation.internal.provisional.core">org.eclipse.wst.validation.internal.provisional.core.MessageLimitException</A> extends java.lang.RuntimeException implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-7034897190745766940L
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Serialized</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/api/stylesheet.css b/docs/org.eclipse.wst.validation.doc.isv/reference/api/stylesheet.css
new file mode 100644
index 0000000..6ea9e51
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/api/stylesheet.css
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults */
+
+/* Page background color */
+body { background-color: #FFFFFF; color:#000000 }
+
+/* Headings */
+h1 { font-size: 145% }
+
+/* Table colors */
+.TableHeadingColor     { background: #CCCCFF; color:#000000 } /* Dark mauve */
+.TableSubHeadingColor  { background: #EEEEFF; color:#000000 } /* Light mauve */
+.TableRowColor         { background: #FFFFFF; color:#000000 } /* White */
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
+.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
+.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
+
+/* Navigation bar fonts and colors */
+.NavBarCell1    { background-color:#EEEEFF; color:#000000} /* Light mauve */
+.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */
+.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;}
+
+.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
+.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
+
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/index.html b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/index.html
new file mode 100644
index 0000000..2cd4e15
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/index.html
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+		<html xmlns:xalan="http://xml.apache.org/xslt">
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<meta name="copyright" content="Copyright (c) Oracle Corporation and others 2000, 2008. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
+
+   		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   		<title>Validation Framework Extension Points</title>
+		<LINK REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
+		</head>
+<body link="#0000FF" vlink="#800080">
+<center>
+<h1>Validation Framework Extension Points </h1>
+</center>The following extension points can be used to add new validators: <h3>
+<a name="vf"></a>Validation Framework</h3>
+<ul>
+<li>
+<a href="vf/org_eclipse_wst_validation_validatorGroup.html">org.eclipse.wst.validation.validatorGroup</a>
+</li>
+<li>
+<a href="vf/org_eclipse_wst_validation_validatorV2.html">org.eclipse.wst.validation.validatorV2</a>
+</li>
+</ul>
+</body>
+</html>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_exclude.html b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_exclude.html
new file mode 100644
index 0000000..81271f8
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_exclude.html
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Validator Exclusion</title>
+<style type="text/css">@import url("../../book.css");</style>
+<style type="text/css">@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1 style="text-align:center">Validator Exclusion</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.wst.validation.exclude<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>WebTools 3.0
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>A way to add additional exclusion filters to a V2 validator.<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.validator">validator</a>+)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - A short id that is unique within the plug-in, so that this set of extra exclusion filters can be identified.</li>
+<li><b>name</b> - The short user friendly name for the exclusion.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.validator">validator</a> (<a href="#e.exclude">exclude</a>)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST validator</p>
+<p class="code SchemaDtdAttlist">id&nbsp;IDREF #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Identifies the validator that is being extended.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - The fully qualifed validator id that is being extended.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.exclude">exclude</a> (<a href="#e.rules">rules</a>)&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This contains a set of exclusion rules, used in filtering which resources get validated. If any of these rules are matched, then the validator is not called on this resource.</p>
+<br><br>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.fileext">fileext</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST fileext</p>
+<p class="code SchemaDtdAttlist">ext&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">caseSensitive&nbsp;(true | false) &gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+A file extension, for example html.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>ext</b> - The file extension, for example html.</li>
+<li><b>caseSensitive</b> - If the file extension is case sensitive, then this needs to be set to true.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.projectNature">projectNature</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST projectNature</p>
+<p class="code SchemaDtdAttlist">id&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Used to filter on project natures.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - The fully qualified project nature id, for example "org.eclipse.jdt.core.javanature".</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.file">file</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST file</p>
+<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">caseSensitive&nbsp;(true | false) <p class="code SchemaDtdAttlist">type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(folder|file|full) &gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>name</b> - The file or folder name. The file name can be fully qualified, that is it starts with a leading slash ("/"), or it can be a relative name. Folder names are separated with the forward slash ("/") character.</li>
+<li><b>caseSensitive</b> - If the file name is not case senstitive, then this needs to be set to false.</li>
+<li><b>type</b> - Type of name, there are three choices. <ul><li>folder - specifies a project relative folder name.</li><li>file - a simple file name (i.e. no path information).</li><li>full - a fully qualified (project relative) file name.</li></ul></li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.rules">rules</a> (<a href="#e.fileext">fileext</a>* , <a href="#e.file">file</a>* , <a href="#e.projectNature">projectNature</a>* , <a href="#e.facet">facet</a>* , <a href="#e.contentType">contentType</a>* , <a href="#e.pattern">pattern</a>*)&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+A set of rules for determining if a resource is passed to this validator or not. The rules are OR'ed together.</p>
+<br><br>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.facet">facet</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST facet</p>
+<p class="code SchemaDtdAttlist">id&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - The facet id.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.contentType">contentType</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST contentType</p>
+<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">exactMatch&nbsp;(true | false) &gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Used to filter based on content types.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - The content type id.</li>
+<li><b>exactMatch</b> - Set to true if the content type needs to match exactly. Set to false if sub types are considered matches as well.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.pattern">pattern</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST pattern</p>
+<p class="code SchemaDtdAttlist">regex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">caseSensitive&nbsp;(true | false) &gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Holds a regualr expression, that matches the resource's project relative name.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>regex</b> - Holds a Java regular expression. See the class java.util.regex.Pattern for more details. This regular expression is matched against a resource's project relative path, after that path has been converted into a portable path.
+<p>The path will always start with a forward slash (/) so that folder names can be more easily matched.</li>
+<li><b>caseSensitive</b> - If the file name is not case senstitive, then this needs to be set to false.</li>
+</ul>
+<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6><!-- A plug-in is turning off the T1A validator for projects that have the ModuleCoreNature -->
+ <extension
+       id="exclude1"
+       point="org.eclipse.wst.validation.exclude">
+    <validator
+          id="org.eclipse.wst.common.tests.validation.T1A">
+       <exclude>
+          <rules>
+             <projectNature
+                   id="org.eclipse.jst.j2ee.ModuleCoreNature">
+             </projectNature>
+          </rules>
+       </exclude>
+    </validator>
+ </extension>
+<p></p>
+
+<br>
+<p class="note SchemaCopyright">
+</p>
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_referencialFileValidator.html b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_referencialFileValidator.html
new file mode 100644
index 0000000..e6a3950
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_referencialFileValidator.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Referencial File Validator</title>
+<style type="text/css">@import url("../../book.css");</style>
+<style type="text/css">@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1 style="text-align:center">Referencial File Validator</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.wst.validation.referencialFileValidator<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6><b>This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.</b>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point is used for referential file validation. This extension point should be extended if you have files that reference other files and would like the validation on referenced files to run when the validation on the referencing file is run. The Post Validator operation that is used by this extension point expects a flat list of files to run validation on referenced files.<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.referencialFileValidator">referencialFileValidator</a>)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>point</b> - a fully qualified identifier of the target extension point</li>
+<li><b>id</b> - an optional identifier of the extension instance</li>
+<li><b>name</b> - an optional name of the extension instance</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.referencialFileValidator">referencialFileValidator</a> (<a href="#e.run">run</a>)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST referencialFileValidator</p>
+<p class="code SchemaDtdAttlist">id&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - </li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.run">run</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST run</p>
+<p class="code SchemaDtdAttlist">class&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>class</b> - This class must implement org.eclipse.wst.validation.internal.operations.ReferencialFileValidator.</li>
+</ul>
+<br><br>
+<p class="note SchemaCopyright">
+Copyright (c) 2005 IBM Corporation and others.<br>
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at <a
+href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+
+</p>
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validationHelper.html b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validationHelper.html
new file mode 100644
index 0000000..d8ffd90
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validationHelper.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Validation Helper</title>
+<style type="text/css">@import url("../../book.css");</style>
+<style type="text/css">@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1 style="text-align:center">Validation Helper</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.wst.validation.validationHelper<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6><b>This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.</b>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6><p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.validationHelper">validationHelper</a>)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>point</b> - a fully qualified identifier of the target extension point</li>
+<li><b>id</b> - an optional identifier of the extension instance</li>
+<li><b>name</b> - an optional name of the extension instance</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.validationHelper">validationHelper</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST validationHelper</p>
+<p class="code SchemaDtdAttlist">helperClass&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>helperClass</b> - The class must implement org.eclipse.wst.validation.internal.IProjectValidationHelper.</li>
+<li><b>id</b> - </li>
+</ul>
+<br><br>
+<p class="note SchemaCopyright">
+Copyright (c) 2005 IBM Corporation and others.<br>
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at <a
+href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+
+</p>
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validationSelectionHandler.html b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validationSelectionHandler.html
new file mode 100644
index 0000000..d8bec99
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validationSelectionHandler.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Validation Selection Handler</title>
+<style type="text/css">@import url("../../book.css");</style>
+<style type="text/css">@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1 style="text-align:center">Validation Selection Handler</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.wst.validation.validationSelectionHandler<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6><b>This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.</b>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6><p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.validationSelectionHandler">validationSelectionHandler</a>+)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>point</b> - a fully qualified identifier of the target extension point</li>
+<li><b>id</b> - an optional identifier of the extension instance</li>
+<li><b>name</b> - an optional name of the extension instance</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.validationSelectionHandler">validationSelectionHandler</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST validationSelectionHandler</p>
+<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">handlerClass&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">selectionType&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - </li>
+<li><b>handlerClass</b> - The class must implement the IValidationSelectionHandler interface.</li>
+<li><b>selectionType</b> - </li>
+</ul>
+<br><br>
+<p class="note SchemaCopyright">
+Copyright (c) 2005 IBM Corporation and others.<br>
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at <a
+href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+
+</p>
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validator.html b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validator.html
new file mode 100644
index 0000000..c013c1b
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validator.html
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Validator</title>
+<style type="text/css">@import url("../../book.css");</style>
+<style type="text/css">@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1 style="text-align:center">Validator</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.wst.validation.validator<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6><b>This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.</b>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point give the ability to create a new validator that can validate resources in a Java Project. The validator needs to registered for a given nature of the project for it to run on that project. The user can specifiy file filters to filter out files that need to be validated. The new validator registered by the project nature on the project can be run manually or incrementally if  Auto Build is turned on, during incremental builds the changed delta of files are only validated if those files are part of the validation filters specified.<p>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.validator">validator</a>)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>point</b> - A fully qualified identifier of the target extension point</li>
+<li><b>id</b> - An optional identifier of the extension instance</li>
+<li><b>name</b> - An optional name of the extension instance</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.validator">validator</a> (<a href="#e.projectNature">projectNature</a>* , <a href="#e.filter">filter</a>* , <a href="#e.enablement">enablement</a>* , <a href="#e.helper">helper</a> , <a href="#e.dependentValidator">dependentValidator</a>? , <a href="#e.run">run</a> , <a href="#e.markerId">markerId</a>? , <a href="#e.facet">facet</a>* , <a href="#e.contentTypeBinding">contentTypeBinding</a>*)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST validator</p>
+<p class="code SchemaDtdAttlist">to&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">from&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>to</b> - Optional migration tag</li>
+<li><b>from</b> - Optional migration tag</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.projectNature">projectNature</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST projectNature</p>
+<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">include&nbsp;(true | false) &gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - </li>
+<li><b>include</b> - </li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.contentTypeBinding">contentTypeBinding</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST contentTypeBinding</p>
+<p class="code SchemaDtdAttlist">contentTypeId&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Associates a particular content type with the current validator, and enables the validator to be run on resources of the specified content type.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>contentTypeId</b> - The content type identifier. This is an ID defined by the 'org.eclipse.core.runtime.contentTypes' extension point.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.filter">filter</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST filter</p>
+<p class="code SchemaDtdAttlist">objectClass&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">nameFilter&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">caseSensitive&nbsp;(true | false) <p class="code SchemaDtdAttlist">action&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>objectClass</b> - </li>
+<li><b>nameFilter</b> - </li>
+<li><b>caseSensitive</b> - </li>
+<li><b>action</b> - </li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.helper">helper</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST helper</p>
+<p class="code SchemaDtdAttlist">class&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>class</b> - </li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.dependentValidator">dependentValidator</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST dependentValidator</p>
+<p class="code SchemaDtdAttlist">depValValue&nbsp;(true | false) &gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>depValValue</b> - </li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.run">run</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST run</p>
+<p class="code SchemaDtdAttlist">class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">incremental&nbsp;(true | false) <p class="code SchemaDtdAttlist">enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(true | false) <p class="code SchemaDtdAttlist">fullBuild&nbsp;&nbsp;&nbsp;(true | false) <p class="code SchemaDtdAttlist">async&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(true | false) &gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>class</b> - </li>
+<li><b>incremental</b> - </li>
+<li><b>enabled</b> - </li>
+<li><b>fullBuild</b> - </li>
+<li><b>async</b> - </li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.markerId">markerId</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST markerId</p>
+<p class="code SchemaDtdAttlist">markerIdValue&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+The markerId element is is used to get a custom problem marker for the custom validator implemented using this extension point
+
+This markerId element also needs a corresponding problemMarker extension to be defined bythis validator with the same Id as the makerIdValue for the validator to have its own marker type. Here is an example of the a problemMarker extension defined for a markerIdValue "FooMarker"
+
+ <extension
+         id="FooMarker"
+         name="%EJB_VALIDATION_PROBLEMMARKER_NAME"
+         point="org.eclipse.core.resources.markers">
+      <super
+            type="org.eclipse.wst.validation.problemmarker">
+      </super>
+      <persistent
+            value="true">
+      </persistent>
+      <attribute
+            name="owner">
+      </attribute>
+      <attribute
+            name="validationSeverity">
+      </attribute>
+      <attribute
+            name="targetObject">
+      </attribute>
+      <attribute
+            name="groupName">
+      </attribute>
+      <attribute
+            name="messageId">
+      </attribute>
+   </extension>
+   
+   Without a problemMarker extension defined, the customer validator will use the base Validation Message problemMarker type.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>markerIdValue</b> - </li>
+</ul>
+<br><div style="color: red; font-style: italic;">The <b>facet</b> element is deprecated</div> <p class="code SchemaDtd">&lt;!ELEMENT <a name="e.facet">facet</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST facet</p>
+<p class="code SchemaDtdAttlist">facetId&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element is deprecated and enablement is the new recommended approach to filter validators based on facets.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>facetId</b> - </li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.enablement">enablement</a> (<a href="#e.not">not</a> , <a href="#e.and">and</a> , <a href="#e.or">or</a> , <a href="#e.instanceof">instanceof</a> , <a href="#e.test">test</a> , <a href="#e.systemTest">systemTest</a> , <a href="#e.equals">equals</a> , <a href="#e.count">count</a> , <a href="#e.with">with</a> , <a href="#e.resolve">resolve</a> , <a href="#e.adapt">adapt</a> , <a href="#e.iterate">iterate</a> , <a href="#e.reference">reference</a>)*&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+A generic root element. The element can be used inside an extension point to define its enablement expression.
+            The children of an enablement expression are combined using the and operator.</p>
+<br><br>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.not">not</a> (<a href="#e.not">not</a> | <a href="#e.and">and</a> | <a href="#e.or">or</a> | <a href="#e.instanceof">instanceof</a> | <a href="#e.test">test</a> | <a href="#e.systemTest">systemTest</a> | <a href="#e.equals">equals</a> | <a href="#e.count">count</a> | <a href="#e.with">with</a> | <a href="#e.resolve">resolve</a> | <a href="#e.adapt">adapt</a> | <a href="#e.iterate">iterate</a> | <a href="#e.reference">reference</a>)&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element represent a NOT operation on the result of evaluating it's sub-element expression.</p>
+<br><br>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.and">and</a> (<a href="#e.not">not</a> , <a href="#e.and">and</a> , <a href="#e.or">or</a> , <a href="#e.instanceof">instanceof</a> , <a href="#e.test">test</a> , <a href="#e.systemTest">systemTest</a> , <a href="#e.equals">equals</a> , <a href="#e.count">count</a> , <a href="#e.with">with</a> , <a href="#e.resolve">resolve</a> , <a href="#e.adapt">adapt</a> , <a href="#e.iterate">iterate</a> , <a href="#e.reference">reference</a>)*&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element represent an AND operation on the result of evaluating all it's sub-elements expressions.</p>
+<br><br>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.or">or</a> (<a href="#e.not">not</a> , <a href="#e.and">and</a> , <a href="#e.or">or</a> , <a href="#e.instanceof">instanceof</a> , <a href="#e.test">test</a> , <a href="#e.systemTest">systemTest</a> , <a href="#e.equals">equals</a> , <a href="#e.count">count</a> , <a href="#e.with">with</a> , <a href="#e.resolve">resolve</a> , <a href="#e.adapt">adapt</a> , <a href="#e.iterate">iterate</a> , <a href="#e.reference">reference</a>)*&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element represent an  OR operation on the result of evaluating all it's sub-element expressions.</p>
+<br><br>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.instanceof">instanceof</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST instanceof</p>
+<p class="code SchemaDtdAttlist">value&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element is used to perform an instanceof check of the object in focus. The expression returns
+            EvaluationResult.TRUE if the object's type is a sub type of the type specified by the attribute value.
+            Otherwise EvaluationResult.FALSE is returned.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>value</b> - a fully qualified name of a class or interface.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.test">test</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST test</p>
+<p class="code SchemaDtdAttlist">property&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">args&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">forcePluginActivation&nbsp;(true | false) &gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element is used to evaluate the property state of the object in focus. The set of
+            testable properties can be extended using the propery tester extension point. The test
+            expression returns EvaluationResult.NOT_LOADED if the property tester doing the actual
+            testing isn't loaded yet and the attribute forcePluginActivation is set to false. 
+            If forcePluginActivation is set to true and the evaluation context used to evaluate
+            this expression support plug-in activation then evaluating the property will result in 
+            activating the plug-in defining the tester.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>property</b> - the name of an object's property to test.</li>
+<li><b>args</b> - additional arguments passed to the property tester. Multiple arguments are seperated
+                  by commas. Each individual argument is converted into a Java base type using the same
+                  rules as defined for the value attribute of the test expression.</li>
+<li><b>value</b> - the expected value of the property. Can be omitted if the property 
+                  is a boolean property. The test expression is supposed to return 
+EvaluationResult.TRUE if the property matches the value and EvaluationResult.FALSE
+otherwise. The value attribute is converted into a Java base type using the following
+rules:
+<ul>
+ <li>the string &quot;true&quot; is converted into Boolean.TRUE</li>
+ <li>the string &quot;false&quot; is converted into Boolean.FALSE</li>
+ <li>if the string contains a dot then the interpreter tries to convert
+ the value into a Float object. If this fails the string is treated as a
+ java.lang.String</li>
+ <li>if the string only consists of numbers then the interpreter
+ converts the value in an Integer object.</li>
+ <li>in all other cases the string is treated as a java.lang.String</li>
+ <li>the conversion of the string into a Boolean, Float, or Integer can
+ be suppressed by surrounding the string with single quotes. For
+ example, the attribute value=&quot;'true'&quot; is converted into the
+ string &quot;true&quot;</li>
+</ul></li>
+<li><b>forcePluginActivation</b> - a flag indicating whether the plug-in contributing the property tester
+                  should be loaded if necessary. As such, this flag should be used judiciously, 
+                  in order to avoid unnecessary plug-in activations. Most clients should avoid
+                  setting this flag to true. This flag is only honored if the evaluation context
+                  used to evaluate this expression allows plug-in activation. Otherwise the flag
+                  is ignored and no plug-in loading takes place.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.systemTest">systemTest</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST systemTest</p>
+<p class="code SchemaDtdAttlist">property&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">value&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Tests a system property by calling the System.getProperty method and compares the result
+            with the value specified through the value attribute.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>property</b> - the name of an system property to test.</li>
+<li><b>value</b> - the expected value of the property. The value is interpreted as a string value.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.equals">equals</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST equals</p>
+<p class="code SchemaDtdAttlist">value&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element is used to perform an equals check of the object in focus. The expression returns
+            EvaluationResult.TRUE if the object is equal to the value provided by the attribute value. Otherwise
+            EvaluationResult.FALSE is returned.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>value</b> - the expected value. The value provided as a string is converted into
+                  a Java base type using the same rules as for the value attribute of the test expression.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.count">count</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST count</p>
+<p class="code SchemaDtdAttlist">value&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element is used to test the number of elements in a collection.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>value</b> - an expression to specify the number of elements in a list. Following wildcard
+                  characters can be used:
+                  <dl>
+                    <dt>*</dt> <dd>any number of elements</dd>
+                    <dt>?</dt> <dd>no elements or one element</dd>
+                    <dt>+</dt> <dd>one or more elements</dd>
+                    <dt>!</dt> <dd>no elements</dd>
+                    <dt>integer value</dt> <dd>the list must contain the exact number of elements</dd>
+                  </dl></li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.with">with</a> (<a href="#e.not">not</a> , <a href="#e.and">and</a> , <a href="#e.or">or</a> , <a href="#e.instanceof">instanceof</a> , <a href="#e.test">test</a> , <a href="#e.systemTest">systemTest</a> , <a href="#e.equals">equals</a> , <a href="#e.count">count</a> , <a href="#e.with">with</a> , <a href="#e.resolve">resolve</a> , <a href="#e.adapt">adapt</a> , <a href="#e.iterate">iterate</a> , <a href="#e.reference">reference</a>)*&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST with</p>
+<p class="code SchemaDtdAttlist">variable&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element changes the object to be inspected for all its child element to the object
+            referenced by the given variable. If the variable can not be resolved then the expression
+            will throw a ExpressionException when evaluating it. The children of a with expression 
+            are combined using the and operator.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>variable</b> - the name of the variable to be used for further inspection. It is up to the evaluator
+                  of an extension point to provide the variable in the variable pool.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.resolve">resolve</a> (<a href="#e.not">not</a> , <a href="#e.and">and</a> , <a href="#e.or">or</a> , <a href="#e.instanceof">instanceof</a> , <a href="#e.test">test</a> , <a href="#e.systemTest">systemTest</a> , <a href="#e.equals">equals</a> , <a href="#e.count">count</a> , <a href="#e.with">with</a> , <a href="#e.resolve">resolve</a> , <a href="#e.adapt">adapt</a> , <a href="#e.iterate">iterate</a> , <a href="#e.reference">reference</a>)*&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST resolve</p>
+<p class="code SchemaDtdAttlist">variable&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">args&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element changes the object to be inspected for all its child element to the object
+            referenced by the given variable. If the variable can not be resolved then the expression
+            will throw a ExpressionException when evaluating it. The children of a with expression 
+            are combined using the and operator.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>variable</b> - the name of the variable to be resolved. This variable is then used as the object in focus
+                  for child element evaluation. It is up to the evaluator of an extension point to provide a 
+                  corresponding variable resolver (see IVariableResolver) through the evaluation context passed
+                  to the root expression element when evaluating the expression.</li>
+<li><b>args</b> - additional arguments passed to the variable resolver. Multiple arguments are seperated
+                  by commas. Each individual argument is converted into a Java base type using the same
+                  rules as defined for the value attribute of the test expression.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.adapt">adapt</a> (<a href="#e.not">not</a> , <a href="#e.and">and</a> , <a href="#e.or">or</a> , <a href="#e.instanceof">instanceof</a> , <a href="#e.test">test</a> , <a href="#e.systemTest">systemTest</a> , <a href="#e.equals">equals</a> , <a href="#e.count">count</a> , <a href="#e.with">with</a> , <a href="#e.resolve">resolve</a> , <a href="#e.adapt">adapt</a> , <a href="#e.iterate">iterate</a> , <a href="#e.reference">reference</a>)*&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST adapt</p>
+<p class="code SchemaDtdAttlist">type&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element is used to adapt the object in focus to the type specified by the attribute
+            type. The expression returns not loaded if either the adapter or the type referenced isn't
+            loaded yet. It throws a ExpressionException during evaluation if the type name doesn't exist 
+            at all. The children of an adapt expression are combined using the and operator.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>type</b> - the type to which the object in focus is to be adapted.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.iterate">iterate</a> (<a href="#e.not">not</a> , <a href="#e.and">and</a> , <a href="#e.or">or</a> , <a href="#e.instanceof">instanceof</a> , <a href="#e.test">test</a> , <a href="#e.systemTest">systemTest</a> , <a href="#e.equals">equals</a> , <a href="#e.count">count</a> , <a href="#e.with">with</a> , <a href="#e.resolve">resolve</a> , <a href="#e.adapt">adapt</a> , <a href="#e.iterate">iterate</a> , <a href="#e.reference">reference</a>)*&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST iterate</p>
+<p class="code SchemaDtdAttlist">operator&nbsp;(or|and) <p class="code SchemaDtdAttlist">ifEmpty&nbsp;&nbsp;(true | false) &gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element is used to iterate over a variable that is of type java.util.Collection. If
+            the object in focus is not of type java.util.Collection then an ExpressionException will
+            be thrown while evaluating the expression.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>operator</b> - either "and" or "or". The operator defines how the child
+                  elements will be combined. If not specified, "and" will be used.</li>
+<li><b>ifEmpty</b> - the value return from the iterate expression if the collection is empty. If
+                 not specified then true is returned when the operator equals "and" 
+                 and false is return if the operator equals "or".</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.reference">reference</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST reference</p>
+<p class="code SchemaDtdAttlist">definitionId&nbsp;IDREF #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This element is used to reference an expression from the <b>org.eclipse.core.expressions.definitions</b> extension point.  The expression definition will be evaluated within the current expression element using the current evaluation context.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>definitionId</b> - The unique id of an expression from <b>org.eclipse.core.expressions.definitions</b>.</li>
+</ul>
+<br><br>
+<p class="note SchemaCopyright">
+Copyright (c) 2005 IBM Corporation and others.<br>
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at <a
+href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+
+</p>
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validatorDelegates.html b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validatorDelegates.html
new file mode 100644
index 0000000..360f4fd
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validatorDelegates.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Validator Delegates</title>
+<style type="text/css">@import url("../../book.css");</style>
+<style type="text/css">@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1 style="text-align:center">Validator Delegates</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.wst.validation.validatorDelegates<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6><b>This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.</b>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point allows validator providers to contribute alternate implementations for a delegating validator.<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.delegate">delegate</a>)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.delegate">delegate</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST delegate</p>
+<p class="code SchemaDtdAttlist">class&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">target&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Defines a validator delegate. Delegating validators can have one or more delegates registered, only one of which can be active (selected) at once.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>class</b> - Specifies the class name of the delegate validator. The class must implement IValidatorJob.</li>
+<li><b>target</b> - Specifies the id of the validator extension for which this delegate is being registered.</li>
+<li><b>name</b> - </li>
+</ul>
+<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6><extension point="org.eclipse.wst.validation.validatorDelegates">
+    <delegate
+          class="com.acme.fast.SuperFastValidator"
+          name="Super fast validator"
+          target="org.acme.core.ACMEDelegatingValidator"/>
+ </extension>
+<p></p>
+
+<br>
+<p class="note SchemaCopyright">
+Copyright (c) 2006 IBM Corporation and others.<br>
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at <a
+href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+
+</p>
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validatorGroup.html b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validatorGroup.html
new file mode 100644
index 0000000..7a40e1b
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validatorGroup.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Validator Group</title>
+<style type="text/css">@import url("../../book.css");</style>
+<style type="text/css">@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1 style="text-align:center">Validator Group</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.wst.validation.validatorGroup<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>WebTools 3.0
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>Defines a grouping for validators with listeners notified of group members' activites.  Useful for pre-caching common information used by multiple validators and disposing of that information when they're all done.<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.group">group</a>+)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - A unique identifier for this extension</li>
+<li><b>name</b> - A name for this extension</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.listener">listener</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST listener</p>
+<p class="code SchemaDtdAttlist">class&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+A listener for activities in this group.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>class</b> - The listener's class.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.group">group</a> (<a href="#e.listener">listener</a>+)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST group</p>
+<p class="code SchemaDtdAttlist">id&nbsp;IDREF #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Declares a validator group.  A group may have multiple listeners.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - </li>
+</ul>
+<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Define a listener that simply prints that it has been called.
+<pre class="Example"><span class="code SchemaTag">
+&lt;extension point=</span><span class="code SchemaCstring">&quot;org.eclipse.wst.validation.validatorGroup&quot;</span><span class="code SchemaTag">&gt;
+   &lt;group id=</span><span class="code SchemaCstring">&quot;validatorGroup&quot;</span><span class="code SchemaTag">&gt;
+     &lt;listener class=</span><span class="code SchemaCstring">&quot;org.eclipse.wst.validation.example.ValidatorGroupListener&quot;</span><span class="code SchemaTag">/&gt;
+   &lt;/group&gt;
+&lt;/extension&gt;
+
+public class org.eclipse.wst.validation.example.ValidatorGroupListener implements IValidatorGroupListener {
+
+  public ValidatorGroupListener() {
+  }
+
+  public void validationFinishing(IResource resource, IProgressMonitor monitor, ValType valType, ValOperation operation) {
+   System.out.println("Finishing:" + resource.getFullPath());
+  }
+
+  public void validationStarting(IResource resource, IProgressMonitor monitor, ValType valType, ValOperation operation) {
+   System.out.println("Starting:" + resource.getFullPath());
+  }
+}
+ 
+&lt;extension id=</span><span class="code SchemaCstring">&quot;id&quot;</span><span class="code SchemaTag"> name=</span><span class="code SchemaCstring">&quot;name&quot;</span><span class="code SchemaTag"> point=</span><span class="code SchemaCstring">&quot;org.eclipse.wst.validation.validatorV2&quot;</span><span class="code SchemaTag">&gt;
+  &lt;validator class=</span><span class="code SchemaCstring">&quot;org.eclipse.wst.validation.example.Validator&quot;</span><span class="code SchemaTag">&gt;
+    &lt;group id=</span><span class="code SchemaCstring">&quot;org.eclipse.wst.validation.example.validatorGroup&quot;</span><span class="code SchemaTag">/&gt;
+  &lt;/validator&gt;
+&lt;/extension&gt;
+</span></pre>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>Provisional API.
+<p></p>
+
+<br>
+<p class="note SchemaCopyright">
+Copyright (c) 2008 IBM Corporation and others.<br>
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at <a
+href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+
+</p>
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validatorV2.html b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validatorV2.html
new file mode 100644
index 0000000..ef5d812
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validatorV2.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Validator V2</title>
+<style type="text/css">@import url("../../book.css");</style>
+<style type="text/css">@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1 style="text-align:center">Validator V2</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.wst.validation.validator-v2<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>WebTools 3.0.
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This is used to register a validator to the validation framework (version 2). In addition to specifying the validator to invoke, it registers a set of default filter rules, to control which resources are passsed to the validator.<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.validator">validator</a>)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - A short id that is unique within the plug-in, so that this validator can be identified.</li>
+<li><b>name</b> - The short user friendly name of the validator.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.validator">validator</a> (<a href="#e.include">include</a>* , <a href="#e.exclude">exclude</a>? , <a href="#e.messageCategory">messageCategory</a>* , <a href="#e.group">group</a>*)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST validator</p>
+<p class="code SchemaDtdAttlist">class&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">build&nbsp;&nbsp;&nbsp;&nbsp;(true | false) <p class="code SchemaDtdAttlist">manual&nbsp;&nbsp;&nbsp;(true | false) <p class="code SchemaDtdAttlist">version&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">sourceid&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">markerId&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Defines a validator to the validation framework.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>class</b> - The class that implements the validator.</li>
+<li><b>build</b> - Is this validator enabled by default for build based validations? The default is true.</li>
+<li><b>manual</b> - Is this validator enabled by default for manual based validations? The default is true.</li>
+<li><b>version</b> - The version of the definition. It is a simple integer. If not specified the version is assumed to be 1.</li>
+<li><b>sourceid</b> - If this validator also serves as an as-you-type validator (also know as an ISourceValidator) then it's source id is specified here, so that the two validators can be associated with one another.
+By source id, we mean the id that is used in the org.eclipse.wst.sse.ui.sourceValidation extension point</li>
+<li><b>markerId</b> - If your validator wishes to use it's own marker, it can do so by supplying that marker id here.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.include">include</a> (<a href="#e.rules">rules</a>)&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This contains a set of inclusion rules, which are used in filtering which resources get validated. At least one of these rules must be satisfied in order for the validator to be called on the particular resource.</p>
+<br><br>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.exclude">exclude</a> (<a href="#e.rules">rules</a>)&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+This contains a set of exclusion rules, used in filtering which resources get validated. If any of these rules are matched, then the validator is not called on this resource.</p>
+<br><br>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.fileext">fileext</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST fileext</p>
+<p class="code SchemaDtdAttlist">ext&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">caseSensitive&nbsp;(true | false) &gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+A file extension, for example html.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>ext</b> - The file extension, for example html.</li>
+<li><b>caseSensitive</b> - If the file extension is case sensitive, then this needs to be set to true.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.projectNature">projectNature</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST projectNature</p>
+<p class="code SchemaDtdAttlist">id&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Used to filter on project natures.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - The fully qualified project nature id, for example "org.eclipse.jdt.core.javanature".</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.file">file</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST file</p>
+<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">caseSensitive&nbsp;(true | false) <p class="code SchemaDtdAttlist">type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(folder|file|full) &gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>name</b> - The file or folder name. The file name can be fully qualified, that is it starts with a leading slash ("/"), or it can be a relative name. Folder names are separated with the forward slash ("/") character.</li>
+<li><b>caseSensitive</b> - If the file name is not case senstitive, then this needs to be set to false.</li>
+<li><b>type</b> - Type of name, there are three choices. <ul><li>folder - specifies a project relative folder name.</li><li>file - a simple file name (i.e. no path information).</li><li>full - a fully qualified (project relative) file name.</li></ul></li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.rules">rules</a> (<a href="#e.fileext">fileext</a>* , <a href="#e.file">file</a>* , <a href="#e.projectNature">projectNature</a>* , <a href="#e.facet">facet</a>* , <a href="#e.contentType">contentType</a>* , <a href="#e.pattern">pattern</a>*)&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+A set of rules for determining if a resource is passed to this validator or not. The rules are OR'ed together.</p>
+<br><br>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.facet">facet</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST facet</p>
+<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">version&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - The facet id.</li>
+<li><b>version</b> - A version expression that can be used to futher qualify the match. If not specifed, then versions are not used as a criteria for selecting the facet. The syntax of this expression, is the same syntax that is used by the facet framework.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.group">group</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST group</p>
+<p class="code SchemaDtdAttlist">id&nbsp;IDREF #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Declares that this validator belongs to this validation group.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - The fully qualified ID of the validation group to which this validator belongs.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.contentType">contentType</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST contentType</p>
+<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">exactMatch&nbsp;(true | false) &gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Used to filter based on content types.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - The content type id.</li>
+<li><b>exactMatch</b> - Set to true if the content type needs to match exactly. Set to false if sub types are considered matches as well.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.messageCategory">messageCategory</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST messageCategory</p>
+<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">label&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">severity&nbsp;(error|warning|ignore) &gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Used to group together a set of messages, where the user can change the message severity of all the messages in the group. This is similar to the support in the JDT, where for example a user can specify whether used methods should be errors, warnings or ignored.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>id</b> - A simple id that is unique within the scope of this validator.</li>
+<li><b>label</b> - A short, one line label that is displayed to the end user, that describes the message category.</li>
+<li><b>severity</b> - The default severity for this category.</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.pattern">pattern</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST pattern</p>
+<p class="code SchemaDtdAttlist">regex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">caseSensitive&nbsp;(true | false) &gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Holds a regualr expression, that matches the resource's project relative name.</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>regex</b> - Holds a Java regular expression. See the class java.util.regex.Pattern for more details. This regular expression is matched against a resource's project relative path, after that path has been converted into a portable path.
+<p>The path will always start with a forward slash (/) so that folder names can be more easily matched.</li>
+<li><b>caseSensitive</b> - If the file name is not case senstitive, then this needs to be set to false.</li>
+</ul>
+<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>An example of a validator that will be called on resources that have html or htm file extensions.
+<pre class="Example"><span class="code SchemaTag">
+   &lt;extension
+         point=</span><span class="code SchemaCstring">&quot;org.eclipse.wst.validation.validator&quot;</span><span class="code SchemaTag">
+         id=</span><span class="code SchemaCstring">&quot;Test&quot;</span><span class="code SchemaTag"> name=</span><span class="code SchemaCstring">&quot;%Validator.Name&quot;</span><span class="code SchemaTag">&gt;
+      &lt;validator class=</span><span class="code SchemaCstring">&quot;org.eclipse.wst.validation.test.TestValidator&quot;</span><span class="code SchemaTag">&gt;
+         &lt;include&gt;
+            &lt;rules&gt;
+               &lt;fileext ext=</span><span class="code SchemaCstring">&quot;html&quot;</span><span class="code SchemaTag">/&gt;
+               &lt;fileext ext=</span><span class="code SchemaCstring">&quot;htm&quot;</span><span class="code SchemaTag">/&gt;
+            &lt;/rules&gt;
+         &lt;/include&gt;
+      &lt;/validator&gt;
+   &lt;/extension&gt;
+</span></pre>
+<p></p>
+
+<br>
+<p class="note SchemaCopyright">
+Copyright (c) 2007,2008 IBM Corporation and others.<br>
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at <a
+href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+
+</p>
+</BODY>
+</HTML>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/toc.xml b/docs/org.eclipse.wst.validation.doc.isv/toc.xml
new file mode 100644
index 0000000..4cf39eb
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/toc.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Validation Framework Javadoc" 
+	link_to="../org.eclipse.wst.doc.user/reference_toc.xml#javadoc_common">
+	<topic label="Validation Framework API Reference"  href="reference/api/overview-summary.html"> 
+		<topic label="org.eclipse.wst.validation" href="reference/api/org/eclipse/wst/validation/package-summary.html"/> 
+	</topic>
+	<topic label="Validation Framework Extension Points Reference" href="reference/extension-points/index.html">
+	</topic>
+</toc>
diff --git a/docs/org.eclipse.wst.validation.doc.isv/topics_ExtPoint_Reference.xml b/docs/org.eclipse.wst.validation.doc.isv/topics_ExtPoint_Reference.xml
new file mode 100644
index 0000000..35b5eca
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/topics_ExtPoint_Reference.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+	 	<toc label="Extension Points Reference">
+<topic label="org.eclipse.wst.validation.validatorGroup" href="reference/extension-points/vf/org_eclipse_wst_validation_validatorGroup.html"/>
+<topic label="org.eclipse.wst.validation.validatorV2" href="reference/extension-points/vf/org_eclipse_wst_validation_validatorV2.html"/>
+</toc>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.doc.isv/vfextdocs.xml b/docs/org.eclipse.wst.validation.doc.isv/vfextdocs.xml
new file mode 100644
index 0000000..9246af7
--- /dev/null
+++ b/docs/org.eclipse.wst.validation.doc.isv/vfextdocs.xml
@@ -0,0 +1 @@
+<files component="vf"><file>org_eclipse_wst_validation_validatorV2.html</file>/n/n<file>org_eclipse_wst_validation_validatorGroup.html</file></files>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.infopop/META-INF/MANIFEST.MF b/docs/org.eclipse.wst.validation.infopop/META-INF/MANIFEST.MF
index 7161932..64fe525 100644
--- a/docs/org.eclipse.wst.validation.infopop/META-INF/MANIFEST.MF
+++ b/docs/org.eclipse.wst.validation.infopop/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Plugin.name
 Bundle-SymbolicName: org.eclipse.wst.validation.infopop; singleton:=true
-Bundle-Version: 1.0.202.qualifier
+Bundle-Version: 1.0.300.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %Plugin.providerName
diff --git a/docs/org.eclipse.wst.validation.infopop/ValidationPrefs_HelpContexts.xml b/docs/org.eclipse.wst.validation.infopop/ValidationPrefs_HelpContexts.xml
index 9a8ccfa..ddd721a 100644
--- a/docs/org.eclipse.wst.validation.infopop/ValidationPrefs_HelpContexts.xml
+++ b/docs/org.eclipse.wst.validation.infopop/ValidationPrefs_HelpContexts.xml
@@ -8,18 +8,64 @@
 
 Each validator can apply to certain types of files, certain project natures, and certain project facets. When a validator applies to a project facet or nature, the workbench uses that validator only on projects that have that facet or nature. Likewise, most validators apply only to certain types of files, so the workbench uses those validators only on those types of files.
 
-Select the <b>Allow projects to override these preference settings</b> check box if you want to allow individual projects to set their own validation preferences. To configure new validation settings for an individual project, select the project in the Navigator view, right-click and select <b>Properties</b>   &gt; <b>Validation</b> .
+Select the <b>Allow projects to override these preference settings</b> check box if you want to allow individual projects to set their own validation preferences. To configure new validation settings for an individual project, select the project in the Navigator view, right-click and select <b>Properties</b> &gt; <b>Validation</b>.
 
-Select the <b>Suspend all validators</b> check box to prevent validation at the global level. If you select this check box, you can still enable validation at the project level.
+Select the <b>Suspend all validators</b> check box to prevent validation at the global level.
 
 Select the <b>Save all modified resources automatically prior to validating</b> check box if you want to save any resources you have modified before the validation begins.
 
-In the list of validators, select the check boxes next to each validator you want to use at the global level. Each validator has a check box to specify whether it is used on manual validation or on build validation. Choose an alternate implementation for a validator by clicking the button in the <b>Settings</b> column. Not all validators have alternate implementations.
+In the list of validators, select the check boxes next to each validator you want to use at the global level. Each validator has a check box to specify whether it is used on manual validation or on build validation. Choose an alternate implementation for a validator or update it's detailed settings by clicking the button in the <b>Settings</b> column. Not all validators have detailed settings.
 
 </description>
 <topic href="../org.eclipse.jst.j2ee.doc.user/topics/tjval.html" label="Validating code in enterprise applications"/>
 <topic href="../org.eclipse.jst.j2ee.doc.user/topics/tjvalglobalpref.html" label="Overriding global validation preferences"/>
+<topic href="../org.eclipse.jst.j2ee.doc.user/topics/rtunevalidat.html" label="Tuning validators"/>
 <topic href="../org.eclipse.jst.j2ee.doc.user/topics/rvalerr.html" label="Common validation errors and solutions"/>
 </context>
 
+<context id="jvgp0100">
+<description>The New Filter Rule dialog adds a new rule to either an Include Group or an Exclude Group. There are several types of rules:
+
+<b>File extension</b> - A rule that is only concerned with matching file extensions, for example html for HTML files or xml for XML files.
+
+<b>Folder or file name</b> - A rule for matching folder or file names. These names are relative to a project.
+
+<b>Project nature</b> - The next page shows a drop down list of all the known project natures.
+
+<b>Facet</b> - Typically this would only be used by advanced or internal users, as you would need to know the internal facet ids.
+
+<b>Content Type</b> - The next page will show a drop down list of all the known content types. Content types are more powerful than file extensions, but also slower to match at runtime.
+</description>
+</context>
+
+<context id="jvgp0101">
+<description>A rule for matching file extensions. The file can be located anywhere in the project.
+</description>
+</context>
+
+<context id="jvgp0102">
+<description>Folder or file names. You can either use File or Folder browsers, or type in a name directly. These names are relative to a project. 
+
+If you select a file or folder that is outside of the scope of a project, the rule will not be activated.
+
+For files you can match on either simple names, or qualified names. For example matching on the simple name "product.xml", will match the file in any directory. However, matching on the qualified name "WEB-INF/product.xml" will only match the file in the WEB-INF directory. 
+</description>
+</context>
+
+<context id="jvgp0103">
+<description>This is a list of the registered Project natures.
+</description>
+</context>
+
+<context id="jvgp0104">
+<description>The internal facet id is specified here. Since you need to know internal ids this setting is typically not used by end users. 
+</description>
+</context>
+
+<context id="jvgp0105">
+<description>A list of all the registered Content Types. Content types are more powerful than using file extensions or file names, as they can use the content of the file to more precisely define it's type. However, they require more computer resources to calculate.
+
+Content types form hierarchies, you can specify whether you require an exact match, or whether subtypes in the hierarchy should match as well.
+</description>
+</context>
 </contexts>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.infopop/ValidationProjPrefs_HelpContexts.xml b/docs/org.eclipse.wst.validation.infopop/ValidationProjPrefs_HelpContexts.xml
index 489af37..c6ad7d5 100644
--- a/docs/org.eclipse.wst.validation.infopop/ValidationProjPrefs_HelpContexts.xml
+++ b/docs/org.eclipse.wst.validation.infopop/ValidationProjPrefs_HelpContexts.xml
@@ -9,16 +9,28 @@
 
 Each validator can apply to certain types of files, certain project natures, and certain project facets. When a validator applies to a project facet or nature, the workbench uses that validator only on projects that have that facet or nature. Likewise, most validators apply only to certain types of files, so the workbench uses those validators only on those types of files.
 
-Select the <b>Override validation preferences</b> check box if you want to override the default validation preferences set in the workbench Preferences page. If the <b>Override validation preferences</b> check box is not enabled, go to <b>Window</b>   &gt; <b>Preferences</b>   &gt; <b>Validation</b> and select the <b>Allow projects to override these preference settings</b> check box.
+Select the <b>Override validation preferences</b> check box if you want to override the default validation preferences set in the workbench Preferences page. If the <b>Override validation preferences</b> check box is not enabled, go to <b>Window</b> &gt; <b>Preferences</b> &gt; <b>Validation</b> and select the <b>Allow projects to override these preference settings</b> check box.
 
 Select the <b>Suspend all validators</b> check box to prevent validation for this project.
 
-In the list of validators, select the check boxes next to each validator you want to use for this project. Each validator has a check box to specify whether it is used on manual validation or on build validation. Choose an alternate implementation for a validator by clicking the button in the <b>Settings</b> column. Not all validators have alternate implementations.
+In the list of validators, select the check boxes next to each validator you want to use for this project. Each validator has a check box to specify whether it is used on manual validation or on build validation. Choose an alternate implementation for a validator or change it's detailed settings by clicking the button in the <b>Settings</b> column. Not all validators have detailed settings.
 
 </description>
 <topic href="../org.eclipse.jst.j2ee.doc.user/topics/tjval.html" label="Validating code in enterprise applications"/>
 <topic href="../org.eclipse.jst.j2ee.doc.user/topics/tjvalglobalpref.html" label="Overriding global validation preferences"/>
+<topic href="../org.eclipse.jst.j2ee.doc.user/topics/rtunevalidat.html" label="Tuning validators"/>
 <topic href="../org.eclipse.jst.j2ee.doc.user/topics/rvalerr.html" label="Common validation errors and solutions"/>
 </context>
 
+<context id="jvpp0100">
+<description>The New Filter Rule dialog adds a new rule to either an Include Group or an Exclude Group. There are several types of rules:
+
+<b>File extension</b> - A rule that is only concerned with matching file extensions, for example html for HTML files or xml for XML files.
+
+<b>Folder or file name</b> - A rule for matching folder or file names. These names are relative to a project.
+
+<b>Content Type</b> - The next page will show a drop down list of all the known content types. Content types are more powerful than file extensions, but also slower to match at runtime.
+</description>
+</context>
+
 </contexts>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.infopop/about.html b/docs/org.eclipse.wst.validation.infopop/about.html
index 73db36e..2199df3 100644
--- a/docs/org.eclipse.wst.validation.infopop/about.html
+++ b/docs/org.eclipse.wst.validation.infopop/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/features/org.eclipse.wst.common_core.feature.patch/.project b/features/org.eclipse.wst.common_core.feature.patch/.project
deleted file mode 100644
index eb1e1ea..0000000
--- a/features/org.eclipse.wst.common_core.feature.patch/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common_core.feature.patch</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.wst.common_core.feature.patch/description.txt b/features/org.eclipse.wst.common_core.feature.patch/description.txt
deleted file mode 100644
index a1fc6d0..0000000
--- a/features/org.eclipse.wst.common_core.feature.patch/description.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-The HEAD branch of this patch feature is intentionally empty, 
-to attempt to try and avoid confusion. 
-
-Please load the correct version from the branch of the related patch.
diff --git a/features/org.eclipse.wst.common_core.feature/build.properties b/features/org.eclipse.wst.common_core.feature/build.properties
index 364480b..3e69ba2 100644
--- a/features/org.eclipse.wst.common_core.feature/build.properties
+++ b/features/org.eclipse.wst.common_core.feature/build.properties
@@ -1,6 +1,4 @@
 bin.includes = feature.xml,\
                eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
                feature.properties
 
diff --git a/features/org.eclipse.wst.common_core.feature/epl-v10.html b/features/org.eclipse.wst.common_core.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.wst.common_core.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.common_core.feature/feature.properties b/features/org.eclipse.wst.common_core.feature/feature.properties
index 41d223f..00d5dd1 100644
--- a/features/org.eclipse.wst.common_core.feature/feature.properties
+++ b/features/org.eclipse.wst.common_core.feature/feature.properties
@@ -18,10 +18,8 @@
 featureName=WST Common Core
 
 # "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
+providerName=Eclipse Web Tools Platform
 
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
 description=WST common core functionality.
@@ -40,106 +38,11 @@
 
 # "licenseURL" property - URL of the "Feature License"
 # do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
+# license and licenseURL properties were removed as a result to migrating to new PDE license support. 
+#    Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. 
 
 # "license" property - text of the "Feature Update License"
 # should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+# license and licenseURL properties were removed as a result to migrating to new PDE license support. 
+#    Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. 
 ########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.common_core.feature/feature.xml b/features/org.eclipse.wst.common_core.feature/feature.xml
index 58c09d9..8202634 100644
--- a/features/org.eclipse.wst.common_core.feature/feature.xml
+++ b/features/org.eclipse.wst.common_core.feature/feature.xml
@@ -2,8 +2,10 @@
 <feature
       id="org.eclipse.wst.common_core.feature"
       label="%featureName"
-      version="3.0.0.qualifier"
-      provider-name="%providerName">
+      version="3.3.1.qualifier"
+      provider-name="%providerName"
+      license-feature="org.eclipse.license"
+      license-feature-version="1.0.0.qualifier">
 
    <description>
       %description
@@ -17,33 +19,6 @@
       %license
    </license>
 
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <requires>
-      <import plugin="org.eclipse.wst.common.frameworks" version="1.1.200" match="compatible"/>
-      <import plugin="org.eclipse.jem.util" version="2.0.100" match="compatible"/>
-      <import plugin="org.eclipse.emf.edit" version="2.4.0" match="compatible"/>
-      <import plugin="org.eclipse.emf.ecore.xmi" version="2.4.0" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.emf" version="1.1.200" match="compatible"/>
-      <import plugin="org.eclipse.core.runtime" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.core.resources" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.wst.validation" version="1.2.0" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.project.facet.core" version="1.3.0" match="compatible"/>
-      <import plugin="org.eclipse.core.expressions" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.wst.command.env.core" version="1.0.203" match="compatible"/>
-      <import plugin="org.eclipse.core.commands" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.environment" version="1.0.200" match="compatible"/>
-      <import plugin="org.apache.ant" version="1.7.0" match="compatible"/>
-      <import plugin="org.eclipse.ant.core" version="3.2.0" match="compatible"/>
-      <import plugin="org.eclipse.osgi.util" version="3.1.300" match="compatible"/>
-      <import plugin="org.eclipse.emf.ecore" version="2.4.0" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.emfworkbench.integration" version="1.1.200" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.uriresolver" version="1.1.301" match="compatible"/>
-      <import plugin="com.ibm.icu" version="3.8.1.1" match="compatible"/>
-   </requires>
-
    <plugin
          id="org.eclipse.wst.common.emfworkbench.integration"
          download-size="0"
@@ -52,19 +27,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.wst.command.env"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.wst.command.env.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.wst.common.emf"
          download-size="0"
          install-size="0"
@@ -93,13 +55,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.wst.common.project.facet.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.wst.common.uriresolver"
          download-size="0"
          install-size="0"
diff --git a/features/org.eclipse.wst.common_core.feature/license.html b/features/org.eclipse.wst.common_core.feature/license.html
deleted file mode 100644
index 76abfb4..0000000
--- a/features/org.eclipse.wst.common_core.feature/license.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June 06, 2007</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI>
-   
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.html b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.html
new file mode 100644
index 0000000..fe81d46
--- /dev/null
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<P>June, 2008</P>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
+
+<h3>Source Code</h3>
+<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
+agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
+src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
+
+</body>
+</html>
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.ini b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.ini
new file mode 100644
index 0000000..fda5a40
--- /dev/null
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.ini
@@ -0,0 +1,31 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=wtp_prod32.png
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (not translated)
+# needed for primary features only
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+# optional
+
+# Property "welcomePerspective" contains the id of the perspective in which the
+# welcome page is to be opened.
+# optional
+
+
+
+
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.mappings b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.mappings
new file mode 100644
index 0000000..a28390a
--- /dev/null
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=@build@
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.properties b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.properties
new file mode 100644
index 0000000..9474fc0
--- /dev/null
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/about.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# Copyright (c) 2000, 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+#
+# Do not translate any values surrounded by {}
+
+blurb=Web Standard Tools - Common Core\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
+Visit http://www.eclipse.org/webtools
+
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/build.properties b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/build.properties
new file mode 100644
index 0000000..ead512d
--- /dev/null
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/build.properties
@@ -0,0 +1,2 @@
+bin.includes = about.html, about.ini, about.mappings, about.properties, wtp_prod32.png, plugin.properties, plugin.xml, src/**, META-INF/
+sourcePlugin = true
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/plugin.properties b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/plugin.properties
new file mode 100644
index 0000000..c325b0a
--- /dev/null
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+pluginName=Web Standard Tools - Common Core Source
+providerName=Eclipse.org
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/wtp_prod32.gif b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/wtp_prod32.gif
new file mode 100644
index 0000000..eefb44a
--- /dev/null
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/wtp_prod32.gif
Binary files differ
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/wtp_prod32.png b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/wtp_prod32.png
new file mode 100644
index 0000000..bfceab3
--- /dev/null
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateBundle/wtp_prod32.png
Binary files differ
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/build.properties b/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/build.properties
index f249e9f..be839a7 100644
--- a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/build.properties
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/build.properties
@@ -9,8 +9,6 @@
 #     IBM Corporation - initial API and implementation
 ###############################################################################
 bin.includes =\
-epl-v10.html,\
 eclipse_update_120.jpg,\
 feature.xml,\
 feature.properties,\
-license.html
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/epl-v10.html b/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.properties
index 52d0f54..65863b08 100644
--- a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.properties
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.properties
@@ -17,10 +17,8 @@
 # "featureName" property - name of the feature
 featureName=WST Common Core Developer Resources
 # "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
+providerName=Eclipse Web Tools Platform
 
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
 description=Source code zips for WST common core.
@@ -39,106 +37,11 @@
 
 # "licenseURL" property - URL of the "Feature License"
 # do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
+# license and licenseURL properties were removed as a result to migrating to new PDE license support. 
+#    Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. 
 
 # "license" property - text of the "Feature Update License"
 # should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+# license and licenseURL properties were removed as a result to migrating to new PDE license support. 
+#    Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. 
 ########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/license.html b/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index fec4a48..0000000
--- a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>June 06, 2007</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-</body>
-</html>
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplatePlugin/about.html b/features/org.eclipse.wst.common_core.feature/sourceTemplatePlugin/about.html
index d4916df..fe81d46 100644
--- a/features/org.eclipse.wst.common_core.feature/sourceTemplatePlugin/about.html
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplatePlugin/about.html
@@ -7,7 +7,7 @@
 <body lang="EN-US">
 <h2>About This Content</h2>
 
-<p>June 06, 2007</p>	
+<P>June, 2008</P>	
 <h3>License</h3>
 
 <p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
diff --git a/features/org.eclipse.wst.common_sdk.feature/build.properties b/features/org.eclipse.wst.common_sdk.feature/build.properties
index e717fc0..3edf592 100644
--- a/features/org.eclipse.wst.common_sdk.feature/build.properties
+++ b/features/org.eclipse.wst.common_sdk.feature/build.properties
@@ -1,6 +1,6 @@
-generate.feature@org.eclipse.wst.common_ui.feature.source=org.eclipse.wst.common_ui.feature, feature@org.eclipse.wst.common_core.feature.source
 bin.includes = feature.xml,\
-               epl-v10.html,\
-               license.html,\
                eclipse_update_120.jpg,\
                feature.properties
+generate.feature@org.eclipse.wst.common_ui.feature.source=org.eclipse.wst.common_ui.feature, feature@org.eclipse.wst.common_core.feature.source  
+
+               
diff --git a/features/org.eclipse.wst.common_sdk.feature/epl-v10.html b/features/org.eclipse.wst.common_sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.wst.common_sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.common_sdk.feature/feature.properties b/features/org.eclipse.wst.common_sdk.feature/feature.properties
index 446e00e..c4b4fe1 100644
--- a/features/org.eclipse.wst.common_sdk.feature/feature.properties
+++ b/features/org.eclipse.wst.common_sdk.feature/feature.properties
@@ -18,10 +18,8 @@
 featureName=WST Common Plug-in Developer Resources
 
 # "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
+providerName=Eclipse Web Tools Platform
 
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
 description=Source code zips for WST common tools
@@ -40,106 +38,11 @@
 
 # "licenseURL" property - URL of the "Feature License"
 # do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
+# license and licenseURL properties were removed as a result to migrating to new PDE license support. 
+#    Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. 
 
 # "license" property - text of the "Feature Update License"
 # should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+# license and licenseURL properties were removed as a result to migrating to new PDE license support. 
+#    Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. 
 ########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.common_sdk.feature/feature.xml b/features/org.eclipse.wst.common_sdk.feature/feature.xml
index 1958392..1a5ca4c 100644
--- a/features/org.eclipse.wst.common_sdk.feature/feature.xml
+++ b/features/org.eclipse.wst.common_sdk.feature/feature.xml
@@ -2,8 +2,10 @@
 <feature
       id="org.eclipse.wst.common_sdk.feature"
       label="%featureName"
-      version="3.0.0.qualifier"
-      provider-name="%providerName">
+      version="3.3.1.qualifier"
+      provider-name="%providerName"
+      license-feature="org.eclipse.license"
+      license-feature-version="1.0.0.qualifier">
 
    <description>
       %description
@@ -17,10 +19,6 @@
       %license
    </license>
 
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-        
    <includes
          id="org.eclipse.wst.common_ui.feature"
          version="0.0.0"/>
@@ -28,9 +26,16 @@
    <includes
          id="org.eclipse.wst.common_ui.feature.source"
          version="0.0.0"/>
-         
+
    <plugin
-         id="org.eclipse.wst.common.project.facet.doc.api"
+         id="org.eclipse.wst.common.api.doc"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.wst.validation.doc.isv"
          download-size="0"
          install-size="0"
          version="0.0.0"
diff --git a/features/org.eclipse.wst.common_sdk.feature/license.html b/features/org.eclipse.wst.common_sdk.feature/license.html
deleted file mode 100644
index 5644598..0000000
--- a/features/org.eclipse.wst.common_sdk.feature/license.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June 06, 2007</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI>
-    
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/features/org.eclipse.wst.common_ui.feature/build.properties b/features/org.eclipse.wst.common_ui.feature/build.properties
index 7f47694..7c626e2 100644
--- a/features/org.eclipse.wst.common_ui.feature/build.properties
+++ b/features/org.eclipse.wst.common_ui.feature/build.properties
@@ -1,5 +1,3 @@
 bin.includes = feature.xml,\
                eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
                feature.properties
diff --git a/features/org.eclipse.wst.common_ui.feature/epl-v10.html b/features/org.eclipse.wst.common_ui.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.wst.common_ui.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.common_ui.feature/feature.properties b/features/org.eclipse.wst.common_ui.feature/feature.properties
index 44d87a9..6c5080f 100644
--- a/features/org.eclipse.wst.common_ui.feature/feature.properties
+++ b/features/org.eclipse.wst.common_ui.feature/feature.properties
@@ -18,10 +18,8 @@
 featureName=WST Common UI
 
 # "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
+providerName=Eclipse Web Tools Platform
 
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
 description=WST common UI functionality.
@@ -40,106 +38,11 @@
 
 # "licenseURL" property - URL of the "Feature License"
 # do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
+# license and licenseURL properties were removed as a result to migrating to new PDE license support. 
+#    Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. 
 
 # "license" property - text of the "Feature Update License"
 # should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+# license and licenseURL properties were removed as a result to migrating to new PDE license support. 
+#    Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. 
 ########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.common_ui.feature/feature.xml b/features/org.eclipse.wst.common_ui.feature/feature.xml
index 1b6f156..ee710f6 100644
--- a/features/org.eclipse.wst.common_ui.feature/feature.xml
+++ b/features/org.eclipse.wst.common_ui.feature/feature.xml
@@ -2,8 +2,10 @@
 <feature
       id="org.eclipse.wst.common_ui.feature"
       label="%featureName"
-      version="3.0.0.qualifier"
-      provider-name="%providerName">
+      version="3.3.1.qualifier"
+      provider-name="%providerName"
+      license-feature="org.eclipse.license"
+      license-feature-version="1.0.0.qualifier">
 
    <description>
       %description
@@ -17,45 +19,10 @@
       %license
    </license>
 
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
    <includes
          id="org.eclipse.wst.common_core.feature"
          version="0.0.0"/>
 
-   <requires>
-      <import plugin="org.eclipse.wst.command.env.core" version="1.0.203" match="compatible"/>
-      <import plugin="org.eclipse.wst.command.env" version="1.0.305" match="compatible"/>
-      <import plugin="org.eclipse.core.runtime" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.ui" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.frameworks" version="1.1.200" match="compatible"/>
-      <import plugin="org.eclipse.core.resources" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.ui.ide" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.jem.util" version="2.0.100" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.environment" version="1.0.200" match="compatible"/>
-      <import plugin="org.eclipse.ui.forms" version="3.3.100" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.project.facet.core" version="1.3.0" match="compatible"/>
-      <import plugin="org.eclipse.gef" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.jface.text" version="3.4.0" match="compatible"/>
-      <import plugin="com.ibm.icu" version="3.8.1" match="compatible"/>
-      <import plugin="org.eclipse.search" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.core" version="1.1.101" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.uriresolver" version="1.1.301" match="compatible"/>
-      <import plugin="org.eclipse.swt" version="3.4.0" match="compatible"/>
-      <import plugin="org.eclipse.wst.common.frameworks.ui" version="1.1.200" match="compatible"/>
-      <import plugin="org.eclipse.wst.validation" version="1.2.0" match="compatible"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.wst.command.env.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
    <plugin
          id="org.eclipse.wst.common.frameworks.ui"
          download-size="0"
@@ -71,13 +38,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.wst.common.project.facet.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.wst.common.snippets"
          download-size="0"
          install-size="0"
@@ -92,6 +52,13 @@
          unpack="false"/>
 
    <plugin
+         id="org.eclipse.wst.common.modulecore.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
          id="org.eclipse.wst.internet.cache"
          download-size="0"
          install-size="0"
@@ -106,13 +73,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.wst.command.env.infopop"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.wst.validation.infopop"
          download-size="0"
          install-size="0"
diff --git a/features/org.eclipse.wst.common_ui.feature/license.html b/features/org.eclipse.wst.common_ui.feature/license.html
deleted file mode 100644
index 5644598..0000000
--- a/features/org.eclipse.wst.common_ui.feature/license.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June 06, 2007</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI>
-    
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.html b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.html
new file mode 100644
index 0000000..fe81d46
--- /dev/null
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<P>June, 2008</P>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
+
+<h3>Source Code</h3>
+<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
+agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
+src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
+
+</body>
+</html>
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.ini b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.ini
new file mode 100644
index 0000000..fda5a40
--- /dev/null
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.ini
@@ -0,0 +1,31 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=wtp_prod32.png
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (not translated)
+# needed for primary features only
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+# optional
+
+# Property "welcomePerspective" contains the id of the perspective in which the
+# welcome page is to be opened.
+# optional
+
+
+
+
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.mappings b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.mappings
new file mode 100644
index 0000000..a28390a
--- /dev/null
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=@build@
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.properties b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.properties
new file mode 100644
index 0000000..40314ea
--- /dev/null
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/about.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# Copyright (c) 2000, 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+#
+# Do not translate any values surrounded by {}
+
+blurb=Web Standard Tools - Common UI\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
+Visit http://www.eclipse.org/webtools
+
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/build.properties b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/build.properties
new file mode 100644
index 0000000..30a575c
--- /dev/null
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/build.properties
@@ -0,0 +1,3 @@
+
+bin.includes = about.html, about.ini, about.mappings, about.properties, wtp_prod32.png, plugin.properties, plugin.xml, src/**, META-INF/
+sourcePlugin = true
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/plugin.properties b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/plugin.properties
new file mode 100644
index 0000000..4c0b73c
--- /dev/null
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+pluginName=Web Standard Tools - Common UI Source
+providerName=Eclipse.org
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/wtp_prod32.gif b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/wtp_prod32.gif
new file mode 100644
index 0000000..eefb44a
--- /dev/null
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/wtp_prod32.gif
Binary files differ
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/wtp_prod32.png b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/wtp_prod32.png
new file mode 100644
index 0000000..bfceab3
--- /dev/null
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateBundle/wtp_prod32.png
Binary files differ
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/build.properties b/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/build.properties
index 10e257a..37fd0e9 100644
--- a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/build.properties
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/build.properties
@@ -8,10 +8,8 @@
 # Contributors:
 #     IBM Corporation - initial API and implementation
 ###############################################################################
-generate.feature@org.eclipse.wst.common_core.feature.source=org.eclipse.wst.common_core.feature
-bin.includes = epl-v10.html,\
+bin.includes = \
                eclipse_update_120.jpg,\
                feature.properties,\
-               license.html,\
                feature.xml
-
+generate.feature@org.eclipse.wst.common_core.feature.source=org.eclipse.wst.common_core.feature
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/epl-v10.html b/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 022ad29..0000000
--- a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.properties
index c861cfb..9c51ee6 100644
--- a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.properties
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.properties
@@ -18,10 +18,8 @@
 featureName=WST Common UI Developer Resources
 
 # "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
+providerName=Eclipse Web Tools Platform
 
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
 description=Source code zips for WST Common UI.
@@ -41,106 +39,11 @@
 
 # "licenseURL" property - URL of the "Feature License"
 # do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
+# license and licenseURL properties were removed as a result to migrating to new PDE license support. 
+#    Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. 
 
 # "license" property - text of the "Feature Update License"
 # should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+# license and licenseURL properties were removed as a result to migrating to new PDE license support. 
+#    Those properties are now added at build time. See http://wiki.eclipse.org/Equinox/p2/License_Mechanism. 
 ########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/license.html b/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index fec4a48..0000000
--- a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>June 06, 2007</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-</body>
-</html>
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplatePlugin/about.html b/features/org.eclipse.wst.common_ui.feature/sourceTemplatePlugin/about.html
index d4916df..fe81d46 100644
--- a/features/org.eclipse.wst.common_ui.feature/sourceTemplatePlugin/about.html
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplatePlugin/about.html
@@ -7,7 +7,7 @@
 <body lang="EN-US">
 <h2>About This Content</h2>
 
-<p>June 06, 2007</p>	
+<P>June, 2008</P>	
 <h3>License</h3>
 
 <p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
diff --git a/plugins/org.eclipse.jem.util/.cvsignore b/plugins/org.eclipse.jem.util/.cvsignore
index e043cc4..28ebdc5 100644
--- a/plugins/org.eclipse.jem.util/.cvsignore
+++ b/plugins/org.eclipse.jem.util/.cvsignore
@@ -1,3 +1,5 @@
 bin
 build.xml
 javaCompiler...args
+@dot
+temp.folder
diff --git a/plugins/org.eclipse.jem.util/META-INF/MANIFEST.MF b/plugins/org.eclipse.jem.util/META-INF/MANIFEST.MF
index 7d851ba..67031dd 100644
--- a/plugins/org.eclipse.jem.util/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jem.util/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jem.util; singleton:=true
-Bundle-Version: 2.0.100.qualifier
+Bundle-Version: 2.1.100.qualifier
 Bundle-Activator: org.eclipse.jem.util.plugin.JEMUtilPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -20,7 +20,8 @@
  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)",
- org.eclipse.perfmsr.core;bundle-version="1.0.0";resolution:=optional,
- com.ibm.icu;bundle-version="[3.8.1.1,4.0.0)"
+ com.ibm.icu;bundle-version="3.8.1",
+ org.eclipse.wst.common.core;bundle-version="[1.1.201,2.0.0)";visibility:=reexport
 Eclipse-LazyStart: true
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.jem.util/PERFMSR_README.txt b/plugins/org.eclipse.jem.util/PERFMSR_README.txt
index ea51258..990e2df 100644
--- a/plugins/org.eclipse.jem.util/PERFMSR_README.txt
+++ b/plugins/org.eclipse.jem.util/PERFMSR_README.txt
@@ -9,4 +9,16 @@
 
 The jar is in this project's classpath, but it is not exported and is not in
 the plugin.xml or build.properties. This means it will be available for compilation
-but it won't show up in the runtime workbench.
\ No newline at end of file
+but it won't show up in the runtime workbench.
+
+05/13/2009 See bug 274534 "Can we remove org.eclipse.perfmsr.core"
+Note: the optional prereq, 
+ org.eclipse.perfmsr.core;bundle-version="1.0.0";resolution:=optional,
+was removed since it was confusing to build or releng teams, who want to make 
+sure they _could_ get all the bundles, optional or not, if they wanted to. 
+Whereas this jar is more for diagnosing or checking performance issues ... nothing 
+that is done any longer on this code. The code itself hasn't been changed, so should be 
+easy to resurect if ever required in the future. If this code is ever changed drastically, 
+such as refactored, I'm not sure the old performance measurement code needs to be carried 
+forward, as I think there are newer methods of doing similar things, that wouldn't require
+a "development time only" bundle as an optional pre-req.  
diff --git a/plugins/org.eclipse.jem.util/about.html b/plugins/org.eclipse.jem.util/about.html
index 266717d..5acea59 100644
--- a/plugins/org.eclipse.jem.util/about.html
+++ b/plugins/org.eclipse.jem.util/about.html
@@ -6,7 +6,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></head><body lang="EN-US">
 <h2>About This Content</h2>
  
-<p>June 06, 2007</p>	
+<P>June, 2008</P>	
 <h3>License</h3>
 
 <p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/LogEntry.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/LogEntry.java
index f50bae7..c7972f0 100644
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/LogEntry.java
+++ b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/LogEntry.java
@@ -18,6 +18,7 @@
 import java.io.PrintWriter;
 
 /**
+ * @deprecated Plugin error logging should be used instead
  * This class should be used when logging information which should be grouped together. Instead of creating a new instance of this class every time it
  * is needed, for performance reasons, create an instance and reuse it.
  * <p>
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer.java
index 5d1e951..327fda1 100644
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer.java
+++ b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer.java
@@ -15,6 +15,7 @@
 package org.eclipse.jem.util.logger.proxy;
 
 /**
+ * @deprecated Plugin error logging should be used instead
  * Basic log renderer interface. It is replaced by the extension <code>ILogRenderer2.</code>
  * 
  * @since 1.0.0
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer2.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer2.java
index f5a670f..3f7b13c 100644
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer2.java
+++ b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer2.java
@@ -17,6 +17,7 @@
 import java.util.logging.Level;
  
 /**
+ * @deprecated Plugin error logging should be used instead
  * Log renderer that provides more function. Basically it can handle
  * the logging of specific types in a different manner than the default
  * conversion to string supplied by Logger.
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/JDKConsoleRenderer.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/JDKConsoleRenderer.java
index c7c9d75..f4a396f 100644
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/JDKConsoleRenderer.java
+++ b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/JDKConsoleRenderer.java
@@ -17,6 +17,7 @@
 import java.util.logging.Level;
 
 /**
+ * @deprecated Plugin error logging should be used instead
  * Default log renderer to use when not running under Eclipse. It logs to sysout and syserr.
  * 
  * @since 1.1.0
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java
index b86ad05..779d963 100644
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java
+++ b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java
@@ -20,6 +20,7 @@
 import java.util.logging.Level;
 
 /**
+ * @deprecated Plugin error logging should be used instead
  * This is a base, UI independent logger.   It will
  * construct a consistent msg. body, and call an enfironment specific ILogRenderer.
  * By default, this logger will use a console based ILogRenderer,
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java
index 7128301..c5fde83 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java
@@ -8,10 +8,6 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*
- *  $$RCSfile: ProjectResourceSetImpl.java,v $$
- *  $$Revision: 1.20 $$  $$Date: 2008/03/12 14:21:40 $$ 
- */
 package org.eclipse.jem.internal.util.emf.workbench;
 
 import java.io.IOException;
@@ -20,8 +16,11 @@
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.*;
 import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.core.runtime.jobs.ILock;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.emf.common.notify.*;
 import org.eclipse.emf.common.notify.impl.NotificationImpl;
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.*;
@@ -42,10 +41,629 @@
 		public static final int MODULE_NAME_INDX = 2;
 		public static final int CONTENT_TYPE_INDX = 3;
 	}
+	public class ImmutableEList<E extends Object & Resource> extends ResourcesEList<E> implements EList<E> {
+		
+		
+		private SynchronizedResourcesEList delegate;
+
+		public ImmutableEList(Collection<? extends E> collection) {
+
+		    size = collection.size();
+
+		    // Conditionally create the data.
+		    //
+		    if (size > 0)
+		    { 
+		      // Allow for a bit-shift of growth.
+		      //
+		      data = newData(size + size / 8 + 1); 
+		      collection.toArray(data);
+		    
+		    }
+			delegate = (SynchronizedResourcesEList)collection;
+			
+		}
+
+		@Override
+		public void setData(int size, Object[] data) {
+			super.setData(size, data);
+			delegate.lock.acquire();
+			delegate.setData(size, data);
+			delegate.lock.release();
+		}
+
+		@Override
+		public E setUnique(int index, E object) {
+			Object temp;
+			super.setUnique(index, object);
+			delegate.lock.acquire();
+			temp = delegate.setUnique(index, object);
+			delegate.lock.release();
+			return (E) temp;
+		}
+
+		@Override
+		public void addUnique(E object) {
+			super.addUnique(object);
+			delegate.lock.acquire();
+			delegate.addUnique(object);
+			delegate.lock.release();
+		}
+
+		@Override
+		public void addUnique(int index, E object) {
+			super.addUnique(index, object);
+			delegate.lock.acquire();
+			delegate.addUnique(index, object);
+			delegate.lock.release();
+		}
+
+		@Override
+		public boolean addAllUnique(Collection<? extends E> collection) {
+			boolean temp;
+			super.addAllUnique(collection);
+			delegate.lock.acquire();
+			temp = delegate.addAllUnique(collection);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public boolean addAllUnique(int index, Collection<? extends E> collection) {
+			boolean temp;
+			super.addAllUnique(index, collection);
+			delegate.lock.acquire();
+			temp = delegate.addAllUnique(index, collection);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public boolean addAllUnique(Object[] objects, int start, int end) {
+			boolean temp;
+			super.addAllUnique(objects, start, end);
+			delegate.lock.acquire();
+			temp = delegate.addAllUnique(objects, start, end);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public boolean addAllUnique(int index, Object[] objects, int start, int end) {
+			boolean temp;
+			super.addAllUnique(index, objects, start, end);
+			delegate.lock.acquire();
+			temp = delegate.addAllUnique(index, objects, start, end);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public E remove(int index) {
+			Object temp;
+			super.remove(index);
+			delegate.lock.acquire();
+			temp = delegate.remove(index);
+			delegate.lock.release();
+			return (E)temp;
+		}
+
+		@Override
+		public E move(int targetIndex, int sourceIndex) {
+			Object temp;
+			super.move(targetIndex, sourceIndex);
+			delegate.lock.acquire();
+			temp = delegate.move(targetIndex, sourceIndex);
+			delegate.lock.release();
+			return (E) temp;
+		}
+
+		@Override
+		public E set(int index, E object) {
+			Object temp;
+			super.set(index, object);
+			delegate.lock.acquire();
+			temp = delegate.set(index, object);
+			delegate.lock.release();
+			return (E) temp;
+		}
+
+		@Override
+		public boolean add(E object) {
+			boolean temp;
+			super.add(object);
+			delegate.lock.acquire();
+			temp = delegate.add(object);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public void add(int index, E object) {
+			super.add(index, object);
+			delegate.lock.acquire();
+			delegate.add(index, object);
+			delegate.lock.release();
+		}
+
+		@Override
+		public boolean addAll(Collection<? extends E> collection) {
+			boolean temp;
+			super.addAll(collection);
+			delegate.lock.acquire();
+			temp = delegate.addAll(collection);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public boolean addAll(int index, Collection<? extends E> collection) {
+			boolean temp;
+			super.addAll(index, collection);
+			delegate.lock.acquire();
+			temp = delegate.addAll(index, collection);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public boolean remove(Object object) {
+			boolean temp;
+			super.remove(object);
+			delegate.lock.acquire();
+			temp = delegate.remove(object);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public boolean removeAll(Collection<?> collection) {
+			boolean temp;
+			super.removeAll(collection);
+			delegate.lock.acquire();
+			temp = delegate.removeAll(collection);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public boolean retainAll(Collection<?> collection) {
+			boolean temp;
+			super.retainAll(collection);
+			delegate.lock.acquire();
+			temp = delegate.retainAll(collection);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public void move(int index, E object) {
+			super.move(index, object);
+			delegate.lock.acquire();
+			delegate.move(index, object);
+			delegate.lock.release();
+		}
+
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		public NotificationChain basicAdd(E object, NotificationChain notifications) {
+			NotificationChain temp = super.basicAdd(object, notifications);
+			delegate.lock.acquire();
+			delegate.basicAdd(object, notifications);
+			delegate.lock.release();
+			return temp;
+			
+		}
+
+		@Override
+		public NotificationChain basicRemove(Object object, NotificationChain notifications) {
+			NotificationChain temp = super.basicRemove(object, notifications);
+			delegate.lock.acquire();
+			delegate.basicRemove(object, notifications);
+			delegate.lock.release();
+			return temp;
+		}
+
+		@Override
+		public void clear() {
+			super.clear();
+			delegate.lock.acquire();
+			delegate.clear();
+			delegate.lock.release();
+		}
+
+		@Override
+		public NotificationChain basicSet(int index, E object, NotificationChain notifications) {
+			NotificationChain temp = super.basicSet(index, object, notifications);
+			delegate.lock.acquire();
+			delegate.basicSet(index, object, notifications);
+			delegate.lock.release();
+			return temp;
+		}
+	}
+	
+	public class SynchronizedResourcesEList<E extends Object & Resource> extends ResourcesEList<E> implements EList<E> {
+
+		/**
+		 * 
+		 */
+		private static final long serialVersionUID = 1L;
+		protected final ILock lock = Job.getJobManager().newLock();
+
+		public void copyInto(List list){
+			try {
+				lock.acquire();
+				list.addAll(this);
+			} finally {
+				lock.release();
+			}
+		}
+		
+		public void move(int newPosition, E object) {
+			
+			try {
+				lock.acquire();
+				super.move(newPosition, object);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public E move(int newPosition, int oldPosition) {
+
+			try {
+				lock.acquire();
+				return super.move(newPosition, oldPosition);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public boolean add(E o) {
+			
+			try {
+				lock.acquire();
+				return super.add(o);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public void add(int index, E element) {
+			
+			try {
+				lock.acquire();
+				super.add(index, element);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public boolean addAll(Collection<? extends E> c) {
+			
+			try {
+				lock.acquire();
+				return super.addAll(c);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public boolean addAll(int index, Collection<? extends E> c) {
+			
+			try {
+				lock.acquire();
+				return super.addAll(index, c);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public void clear() {
+			
+			try {
+				lock.acquire();
+				super.clear();
+			} finally {
+				lock.release();
+			}
+		}
+
+		public boolean contains(Object o) {
+			
+			try {
+				lock.acquire();
+				return super.contains(o);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public boolean containsAll(Collection<?> c) {
+			
+			try {
+				lock.acquire();
+				return super.containsAll(c);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public boolean equals(Object o) {
+			
+			try {
+				lock.acquire();
+				return super.equals(o);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public E get(int index) {
+			
+			try {
+				lock.acquire();
+				return super.get(index);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public int hashCode() {
+			
+			try {
+				lock.acquire();
+				return super.hashCode();
+			} finally {
+				lock.release();
+			}
+		}
+
+		public int indexOf(Object o) {
+			
+			try {
+				lock.acquire();
+				return super.indexOf(o);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public boolean isEmpty() {
+			
+			try {
+				lock.acquire();
+				return super.isEmpty();
+			} finally {
+				lock.release();
+			}
+		}
+
+		public Iterator<E> iterator() {
+			
+			try {
+				lock.acquire();
+				return super.iterator();
+			} finally {
+				lock.release();
+			}
+		}
+
+		public int lastIndexOf(Object o) {
+			
+			try {
+				lock.acquire();
+				return super.lastIndexOf(o);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public ListIterator<E> listIterator() {
+			
+			try {
+				lock.acquire();
+				return super.listIterator();
+			} finally {
+				lock.release();
+			}
+		}
+
+		public ListIterator<E> listIterator(int index) {
+			
+			try {
+				lock.acquire();
+				return super.listIterator(index);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public boolean remove(Object o) {
+			
+			try {
+				lock.acquire();
+				return super.remove(o);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public E remove(int index) {
+			
+			try {
+				lock.acquire();
+				return super.remove(index);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public boolean removeAll(Collection<?> c) {
+			
+			try {
+				lock.acquire();
+				return super.removeAll(c);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public boolean retainAll(Collection<?> c) {
+			
+			try {
+				lock.acquire();
+				return super.retainAll(c);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public E set(int index, E element) {
+			
+			try {
+				lock.acquire();
+				return super.set(index, element);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public int size() {
+			
+			try {
+				lock.acquire();
+				return super.size();
+			} finally {
+				lock.release();
+			}
+		}
+
+		public List<E> subList(int fromIndex, int toIndex) {
+			
+			try {
+				lock.acquire();
+				return super.subList(fromIndex, toIndex);
+			} finally {
+				lock.release();
+			}
+		}
+
+		public Object[] toArray() {
+			
+			try {
+				lock.acquire();
+				return super.toArray();
+			} finally {
+				lock.release();
+			}
+		}
+
+		public <T> T[] toArray(T[] a) {
+			
+			try {
+				lock.acquire();
+				return super.toArray(a);
+			} finally {
+				lock.release();
+			}
+		}
+
+		// release lock during notifications
+		protected void dispatchNotification(Notification notification) {
+
+			int lockDepth;
+			lockDepth = lock.getDepth();
+			try {
+				for(int i=0; i<lockDepth; i++)
+                    lock.release();
+				super.dispatchNotification(notification);
+			} finally {
+				for(int i=0; i<lockDepth; i++)
+                    lock.acquire();  // Re-acquire lock after notify
+			}
+		}
+
+	}
+
+	public static class ESynchronizedAdapterList extends EAdapterList
+	{
+
+/**
+ * 
+ */
+		private static final long serialVersionUID = 7855438339187540718L;
+
+		public ESynchronizedAdapterList(Notifier notifier) {
+			super(notifier);
+		}
+
+		@Override
+		public synchronized boolean add(Object object)
+		{
+			return super.add(object);
+		}
+
+		@Override
+		public synchronized void add(int index, Object object)
+		{
+			super.add(index, object);
+		}
+
+		@Override
+		public synchronized boolean addAll(Collection collection)
+		{
+			return super.addAll(collection);
+		}
+
+		@Override
+		public synchronized boolean remove(Object object)
+		{
+			return super.remove(object);
+		}
+
+		@Override
+		public synchronized Object remove(int index)
+		{
+			return super.remove(index);
+		}
+
+		@Override
+		public synchronized boolean removeAll(Collection collection)
+		{
+			return super.removeAll(collection);
+		}
+
+		@Override
+		public synchronized void clear()
+		{
+			super.clear();
+		}
+
+		@Override
+		public synchronized Object set(int index, Object object)
+		{
+			return super.set(index, object);
+		}
+
+		@Override
+		public synchronized void move(int newPosition, Object object)
+		{
+			super.move(newPosition, object);
+		}
+
+		@Override
+		public synchronized Object move(int newPosition, int oldPosition)
+		{
+			return super.move(newPosition, oldPosition);
+		}
+	}
 
 	private boolean isReleasing = false;
 	private IProject project;
 	protected List resourceHandlers = new ArrayList();
+	private Object resourcesLock = new Object();
 	protected ResourceSetWorkbenchSynchronizer synchronizer;
 	protected ProjectResourceSetImpl() {
 		setURIResourceMap(new HashMap(10));	// Tell it to cache uri->resource access.
@@ -77,16 +695,52 @@
 		//Check the map first when creating the resource and do not
 		//normalize if a value is found.
 		boolean isMapped = detectURIMapping(uri);
-		boolean hasContentType = (getContentTypeName(uri) != null);
+		String contentTypeName = getContentTypeName(uri);
+		boolean hasContentType = (contentTypeName != null);
 		URI converted = uri;
 		if (!isMapped)
 			converted = getURIConverter().normalize(uri);
 		else if (hasContentType)
 			converted = getURIConverter().normalize(uri);
 		
+		if (!hasContentType) {// Check if actual project file exists, and can determine contenttype
+			IContentDescription description = null;
+			IFile file = WorkbenchResourceHelperBase.getIFile(uri);
+			if (file != null && file.exists()) {
+				try {
+					description = file.getContentDescription();
+					if (description != null)
+						contentTypeName = description.getContentType().getId();
+				} catch (CoreException e) {
+					JEMUtilPlugin.getLogger().logError(e);
+				}
+			} else {// Now check if uri contains project, then add if needed
+				URIConverter converter = getURIConverter();
+				URI convertedUri = converter.normalize(uri);
+				if (!uri.equals(convertedUri)) {
+					file = WorkbenchResourceHelperBase.getIFile(convertedUri);
+					if (file != null && file.exists()) {
+						try {
+							description = file.getContentDescription();
+							if (description != null)
+								contentTypeName = description.getContentType().getId();
+						} catch (CoreException e) {
+							JEMUtilPlugin.getLogger().logError(e);
+						}
+					}
+				}
+			}
+		}
+		if(contentTypeName == null)
+			contentTypeName = contentType;
+		
+		
 		Resource result = createResourceFromHandlers(converted);
 		if (result == null) {
-		    Resource.Factory resourceFactory = getResourceFactoryRegistry().getFactory(uri);
+			Resource.Factory resourceFactory = (contentTypeName == null) ? 
+					getResourceFactoryRegistry().getFactory(uri):
+					getResourceFactoryRegistry().getFactory(uri,contentTypeName);
+						
 		    if (resourceFactory != null)
 		    {//We got the right factory, now use the right URI
 		      result = resourceFactory.createResource(converted);
@@ -136,7 +790,9 @@
 		    {
 		      result = resourceFactory.createResource(converted);
 		      getResources().add(result);
-		      getURIResourceMap().put(uri, result);
+		      synchronized (resourcesLock) {
+		          getURIResourceMap().put(uri, result);
+		      }
 		      return result;
 		    }
 		    else
@@ -215,9 +871,12 @@
 	}
 	protected void removeAndUnloadAllResources() {
 		boolean caughtException = false;
-		if (getResources().isEmpty()) return;
-		List list = new ArrayList(getResources());
-		getResources().clear();
+		List list = null;
+		synchronized (resourcesLock) {
+			if (getResources().isEmpty()) return;
+			list = new ArrayList(getResources());	
+			getResources().clear();
+		}
 		Resource res;
 		int size = list.size();
 		for (int i = 0; i < size; i++) {
@@ -309,6 +968,7 @@
 		if (resourceFactoryRegistry != null && factoryReg != null) {
 			preserveEntries(factoryReg.getExtensionToFactoryMap(), resourceFactoryRegistry.getExtensionToFactoryMap());
 			preserveEntries(factoryReg.getProtocolToFactoryMap(), resourceFactoryRegistry.getProtocolToFactoryMap());
+			preserveEntries(factoryReg.getContentTypeToFactoryMap(), resourceFactoryRegistry.getContentTypeToFactoryMap());
 		}
 		super.setResourceFactoryRegistry(factoryReg);
 	}
@@ -349,58 +1009,35 @@
 	    URIConverter theURIConverter = getURIConverter();
 	    URI normalizedURI = theURIConverter.normalize(uri);
 	    List resourcesToRemove = new ArrayList();
-	    for (Resource resource : getResources())
-	    {
-	      if (theURIConverter.normalize(resource.getURI()).equals(normalizedURI)) {
-	    		  
-	    	if (getContentTypeName(uri) == null) { // loading from legacy archive api or non-typed resource
-		        if (loadOnDemand && !resource.isLoaded())
-		        {
-		          demandLoadHelper(resource);
-		        }
-		        
-		        if (map != null)
-		        {
-		          map.put(uri, resource);
-		        } 
-		        return resource;
-	    	} else  {// content type is known
-	    		boolean resourceExists = false;
-	    		IFile file = getPlatformFile(resource);
-	    		if (file != null)
-	    			resourceExists = file.exists();
-	    		String resourceContentTypeID = getContentTypeID(resource);
-	    		String uriContentTypeID = getContentTypeName(uri);
-	    		String existingMapKeyType = (findKey(resource) != null) ? getContentTypeName(findKey(resource)) : null;
-	    		if((!map.containsValue(resource) || ((map.get(uri) != null) && map.get(uri).equals(resource))) // existing resource  with alternate mapping doesn't exist in map
-	    			||  ((resourceContentTypeID != null && resourceContentTypeID.equals(uriContentTypeID)))) {
-						if (loadOnDemand && !resource.isLoaded()) {
-							demandLoadHelper(resource);
-						} // if embedded uri content type is different than resource content type, continue searching
-						if (resourceContentTypeID != null
-								&& uriContentTypeID != null) {
-							if ((!resourceContentTypeID.equals(uriContentTypeID)) || (existingMapKeyType != null && !existingMapKeyType
-									.equals(uriContentTypeID)))
-								continue;
-							else if (existingMapKeyType == null && !resourceExists) {
-								resourcesToRemove.add(resource);
-								continue;
+	    synchronized (resourcesLock) {
+	    	List<Resource> c = getImmutableResources();
+	        
+	        synchronized(c) {
+				for (Resource resource : c) {
+					if (theURIConverter.normalize(resource.getURI()).equals(normalizedURI)) {
+	
+						if (getContentTypeName(uri) == null) { // loading from legacy archive api or non-typed resource
+							if (loadOnDemand && !resource.isLoaded()) {
+								demandLoadHelper(resource);
 							}
-						} else if (uriContentTypeID != null && resourceContentTypeID == null && !resourceExists) {
-							resourcesToRemove.add(resource);
-							continue;
+	
+							if (map != null) {
+								map.put(uri, resource);
+							}
+							return resource;
+						} else {
+							Resource loadedRes = loadWithContentType(resource, uri, map, loadOnDemand, resourcesToRemove);
+							if (loadedRes != null)
+								return loadedRes;
 						}
-								
-						if (map != null && (map.get(uri) == null)) {
-							map.put(uri, resource);
-						}
-						return resource;
 					}
-	    	}
-	      }
-	    }
+				}
+	        }
+		}
+	    synchronized (resourcesLock) {
 	    // Cleanup invalid resources
-	    getResources().removeAll(resourcesToRemove);
+	    	getResources().removeAll(resourcesToRemove);
+	    }
 	    Resource delegatedResource = delegatedGetResource(uri, loadOnDemand);
 	    if (delegatedResource != null)
 	    {
@@ -433,6 +1070,41 @@
 	    return null;
 	  
 	}
+	private Resource loadWithContentType(Resource resource, URI uri, Map<URI, Resource> map, boolean loadOnDemand, List resourcesToRemove) {
+		// content type is known
+		boolean resourceExists = false;
+		IFile file = getPlatformFile(resource);
+		if (file != null)
+			resourceExists = file.exists();
+		String resourceContentTypeID = getContentTypeID(resource);
+		String uriContentTypeID = getContentTypeName(uri);
+		String existingMapKeyType = (findKey(resource) != null) ? getContentTypeName(findKey(resource)) : null;
+		if((!map.containsValue(resource) || ((map.get(uri) != null) && map.get(uri).equals(resource))) // existing resource  with alternate mapping doesn't exist in map
+			||  ((resourceContentTypeID != null && resourceContentTypeID.equals(uriContentTypeID)))) {
+				if (loadOnDemand && !resource.isLoaded()) {
+					demandLoadHelper(resource);
+				} // if embedded uri content type is different than resource content type, continue searching
+				if (resourceContentTypeID != null
+						&& uriContentTypeID != null) {
+					if ((resourceContentTypeID.equals(uriContentTypeID)) && existingMapKeyType == null) return null;
+					if ((!resourceContentTypeID.equals(uriContentTypeID)) || (existingMapKeyType != null && !existingMapKeyType
+							.equals(uriContentTypeID)))
+						return null;
+					else if (existingMapKeyType == null && !resourceExists) {
+						resourcesToRemove.add(resource);
+						return null;
+					}
+				} else if (uriContentTypeID != null && resourceContentTypeID == null && !resourceExists) {
+					resourcesToRemove.add(resource);
+					return null;
+				}		
+				if (map != null && (map.get(uri) == null)) {
+					map.put(uri, resource);
+				}
+				return resource;
+			}
+		return null;
+	}
 	private IFile getPlatformFile(Resource res) {
 		IFile file = null;
 		file = getPlatformFile(res.getURI());
@@ -458,6 +1130,7 @@
 			return desc.getContentType().getId();
 		return null;
 	}
+	
 	private URI findKey(Resource resource) {
 		Map aMap = getURIResourceMap();
 		Set keys = aMap.keySet();
@@ -507,22 +1180,25 @@
 	    
 	    URIConverter theURIConverter = getURIConverter();
 	    URI normalizedURI = theURIConverter.normalize(uri);
-	    for (Resource resource : getResources())
-	    {
-	      if (theURIConverter.normalize(resource.getURI()).equals(normalizedURI))
-	      {
-	        if (loadOnDemand && !resource.isLoaded())
-	        {
-	          demandLoadHelper(resource);
-	        }
+	    synchronized (resourcesLock) {
+	    	List<Resource> c = getImmutableResources();
 	        
-	        if (map != null)
-	        {
-	          map.put(uri, resource);
-	        } 
-	        return resource;
-	      }
-	    }
+	        synchronized(c) {
+	        	
+				for (Resource resource : c) {
+					if (theURIConverter.normalize(resource.getURI()).equals(normalizedURI)) {
+						if (loadOnDemand && !resource.isLoaded()) {
+							demandLoadHelper(resource);
+						}
+	
+						if (map != null) {
+							map.put(uri, resource);
+						}
+						return resource;
+					}
+				}
+	        }
+		}
 	    
 	    Resource delegatedResource = delegatedGetResource(uri, loadOnDemand);
 	    if (delegatedResource != null)
@@ -565,8 +1241,49 @@
 	}
 	
 	protected Resource demandCreateResource(URI uri, Factory resourceFactory) {
-		// TODO Auto-generated method stub
 		return createResource(uri,resourceFactory);
 	}
+	
+	public EList<Resource> getResources() {
+		 return primGetResources();
+	}
+	private EList<Resource> primGetResources() {
+		 if (resources == null)
+		    {
+		      resources = new SynchronizedResourcesEList<Resource>();
+		    }
+		    return resources;
+	}
+	/**
+	 * Creating a copy of the resources list
+	 * @return
+	 */
+	public EList<Resource> getImmutableResources() {
+		 EList<Resource> resources = primGetResources();
+		 return new ImmutableEList<Resource>(resources);
+	}
+	@Override
+	public void eNotify(Notification notification) {
+	    Adapter[] eAdapters = eBasicAdapterArray();
+	    if (eAdapters != null && eDeliver())
+	    {
+	      for (int i = 0, size = eAdapters.length; i < size; ++i)
+	      {
+	      	Adapter temp;
+	    	  if ((temp = eAdapters[i]) != null)
+	    		  temp.notifyChanged(notification);
+	      }
+	    }
+	  }
+
+	@Override
+	public EList eAdapters()
+	{
+		if (eAdapters == null)
+		{
+			eAdapters =  new ESynchronizedAdapterList(this);
+		}
+		return eAdapters;
+	}
 
 }
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/RegistryReader.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/RegistryReader.java
index 37e8277..183f6ce 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/RegistryReader.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/RegistryReader.java
@@ -10,46 +10,35 @@
  *******************************************************************************/
 /*
  *  $$RCSfile: RegistryReader.java,v $$
- *  $$Revision: 1.5 $$  $$Date: 2006/05/17 20:13:45 $$ 
+ *  $$Revision: 1.7 $$  $$Date: 2009/08/11 15:30:32 $$ 
  */
 package org.eclipse.jem.util;
 import org.eclipse.core.runtime.*;
 import org.osgi.framework.Bundle;
 
-import org.eclipse.jem.util.logger.proxy.Logger;
-
 
 /**
  * Class to read a registry. It is meant to be subclassed to provide specific function.
  * 
+ * @deprecated Replaced by {@link org.eclipse.wst.common.core.util.RegistryReader)
  * @since 1.0.0
  */
-public abstract class RegistryReader {
+public abstract class RegistryReader extends org.eclipse.wst.common.core.util.RegistryReader {
 
-	String pluginId;
-
-	String extensionPointId;
-
-	private static Bundle systemBundle;
+	public RegistryReader(String pluginID, String extensionPoint) {
+		super(pluginID, extensionPoint);
+	}
 
 	/**
 	 * Utility method to get the plugin id of a configuation element
 	 * 
 	 * @param configurationElement
 	 * @return plugin id of configuration element
+	 * @deprecated Replaced by (@link org.eclipse.wst.common.core.util.RegistryReader.getPluginId())
 	 * @since 1.0.0
 	 */
 	public static String getPluginId(IConfigurationElement configurationElement) {
-		String pluginId = null;
-
-		if (configurationElement != null) {
-			IExtension extension = configurationElement.getDeclaringExtension();
-
-			if (extension != null)
-				pluginId = extension.getContributor().getName();
-		}
-
-		return pluginId;
+		return org.eclipse.wst.common.core.util.RegistryReader.getPluginId(configurationElement);
 	}
 
 	/**
@@ -67,78 +56,17 @@
 	}
 
 	/**
-	 * Constructor for RegistryReader taking the plugin id and extension point id.
-	 * 
-	 * @param pluginID
-	 * @param extensionPoint
-	 * 
-	 * @since 1.0.0
-	 */
-	public RegistryReader(String pluginID, String extensionPoint) {
-		super();
-		this.pluginId = pluginID;
-		extensionPointId = extensionPoint;
-	}
-
-	private void internalReadElement(IConfigurationElement element) {
-		boolean recognized = this.readElement(element);
-		if (!recognized) {
-			logError(element, "Error processing extension: " + element); //$NON-NLS-1$
-		}
-	}
-
-	/*
-	 * Logs the error in the desktop log using the provided text and the information in the configuration element.
-	 */
-	protected void logError(IConfigurationElement element, String text) {
-		IExtension extension = element.getDeclaringExtension();
-		StringBuffer buf = new StringBuffer();
-		buf.append("Plugin " + extension.getContributor().getName() + ", extension " + extension.getExtensionPointUniqueIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		buf.append("\n" + text); //$NON-NLS-1$
-		Logger.getLogger().logError(buf.toString());
-	}
-
-	/*
-	 * Logs a very common registry error when a required attribute is missing.
-	 */
-	protected void logMissingAttribute(IConfigurationElement element, String attributeName) {
-		logError(element, "Required attribute '" + attributeName + "' not defined"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/*
-	 * Implement this method to read element attributes. If this element has subelements, the reader will recursively cycle through them and call this
-	 * method so don't do it here.
-	 */
-	public abstract boolean readElement(IConfigurationElement element);
-
-	/**
-	 * Read the extension point and parse it.
-	 * 
-	 * @since 1.0.0
-	 */
-	public void readRegistry() {
-		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(pluginId, extensionPointId);
-		if (point == null)
-			return;
-		IConfigurationElement[] elements = point.getConfigurationElements();
-		for (int i = 0; i < elements.length; i++) {
-			internalReadElement(elements[i]);
-		}
-	}
-
-	/**
 	 * Tests to see if it is valid at this point in time to create an executable extension. A valid reason not to would be that the workspace is
 	 * shutting donw.
 	 * 
 	 * @param element
 	 * @return <code>true</code> if it is valid point to create an executable extension.
 	 * 
+	 * @deprecated Replaced by (@link org.eclipse.wst.common.core.util.RegistryReader.canCreateExecutableExtension())
 	 * @since 1.0.0
 	 */
 	public static boolean canCreateExecutableExtension(IConfigurationElement element) {
-		if (Platform.isRunning() && getSystemBundle().getState() != Bundle.STOPPING)
-			return true;
-		return false;
+		return org.eclipse.wst.common.core.util.RegistryReader.canCreateExecutableExtension(element);
 	}
 
 	/**
@@ -149,8 +77,6 @@
 	 * @since 1.0.0
 	 */
 	protected static Bundle getSystemBundle() {
-		if (systemBundle == null)
-			systemBundle = Platform.getBundle("org.eclipse.osgi"); //$NON-NLS-1$
-		return systemBundle;
+		return org.eclipse.wst.common.core.util.RegistryReader.getSystemBundle();
 	}
 }
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UIContextDetermination.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UIContextDetermination.java
index 8955882..cccd662 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UIContextDetermination.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UIContextDetermination.java
@@ -10,41 +10,27 @@
  *******************************************************************************/
 /*
  *  $$RCSfile: UIContextDetermination.java,v $$
- *  $$Revision: 1.5 $$  $$Date: 2007/04/10 01:09:36 $$ 
+ *  $$Revision: 1.6 $$  $$Date: 2009/07/30 22:11:23 $$ 
  */
 package org.eclipse.jem.util;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
 
 /**
  * Static utility class for UIContext determination.
  * 
+ * @deprecated Replaced by (@link org.eclipse.wst.common.core.util.UIContextDetermination)
  * @since 1.0.0
  */
-public class UIContextDetermination {
+public class UIContextDetermination extends org.eclipse.wst.common.core.util.UIContextDetermination {
 
-	private static final int UNKNOWN = 100;
+	public static final String HEADLESS_CONTEXT_LITERAL = org.eclipse.wst.common.core.util.UIContextDetermination.HEADLESS_CONTEXT_LITERAL;
 
-	public static final String HEADLESS_CONTEXT_LITERAL = "Headless"; //$NON-NLS-1$
+	public static final String UI_CONTEXT_LITERAL = org.eclipse.wst.common.core.util.UIContextDetermination.UI_CONTEXT_LITERAL;
 
-	public static final String UI_CONTEXT_LITERAL = "UI"; //$NON-NLS-1$
+	public static final int HEADLESS_CONTEXT = org.eclipse.wst.common.core.util.UIContextDetermination.HEADLESS_CONTEXT;
 
-	public static final int HEADLESS_CONTEXT = 102;
+	public static final int UI_CONTEXT = org.eclipse.wst.common.core.util.UIContextDetermination.UI_CONTEXT;
 
-	public static final int UI_CONTEXT = 101;
-
-	private static Map cachedExtensions = null;
-
-	private static int currentContext = UNKNOWN;
-
-	private UIContextDetermination() {
-	}
+	private UIContextDetermination(){}
 
 	/**
 	 * Returns an instance of a given class based on the UI or Headless context.
@@ -53,23 +39,10 @@
 	 * @return new class instance for the given key.
 	 * @throws IllegalArgumentException
 	 *             If the key is invalid (e.g. no extension is found for the key)
+	 * @deprecated Replaced by (@link org.eclipse.wst.common.core.util.UIContextDetermination.createInstance())
 	 */
 	public static Object createInstance(String key) {
-		Object result = null;
-		if (cachedExtensions == null)
-			initExtensions();
-		IConfigurationElement contextSensitiveClass = (IConfigurationElement) cachedExtensions.get(key);
-		try {
-			if (contextSensitiveClass != null)
-				result = contextSensitiveClass
-						.createExecutableExtension(UIContextDeterminationRegistryReader.UI_CONTEXT_SENSTIVE_CLASS_CLASSNAME_ATTR);
-		} catch (CoreException e) {
-			Logger.getLogger().logError("Problem loading extension not found for key \"" + key + "\"."); //$NON-NLS-1$ //$NON-NLS-2$
-			Logger.getLogger().logError(e);
-		}
-		if (result == null)
-			Logger.getLogger().logError("Extension not found for key \"" + key + "\"."); //$NON-NLS-1$ //$NON-NLS-2$
-		return result;
+		return org.eclipse.wst.common.core.util.UIContextDetermination.createInstance(key);
 	}
 
 	/**
@@ -78,113 +51,9 @@
 	 * @return current context
 	 * @see #HEADLESS_CONTEXT
 	 * @see #UI_CONTEXT
+	 * @deprecated Replaced by (@link org.eclipse.wst.common.core.util.UIContextDetermination.getCurrentContext())
 	 */
 	public static int getCurrentContext() {
-		if (currentContext == UNKNOWN) {
-			currentContext = HEADLESS_CONTEXT;
-			new UITesterRegistryReader().readRegistry();
-		}
-		return currentContext;
-	}
-
-	/*
-	 * Invokes the UIContextDeterminationRegistryReader to cache all of the extensions, if necessary.
-	 *  
-	 */
-	private static void initExtensions() {
-		if (cachedExtensions == null) {
-			cachedExtensions = new HashMap();
-			new UIContextDeterminationRegistryReader().readRegistry();
-		}
-	}
-
-	/*
-	 * Converts the input to one of UI_CONTEXT or HEADLESS_CONTEXT. Defaults to HEADLESS on invalid input
-	 * 
-	 * @param literal @return
-	 */
-	private static int convertLiteral(String literal) {
-		return (UI_CONTEXT_LITERAL.equals(literal)) ? UI_CONTEXT : HEADLESS_CONTEXT;
-	}
-
-	/*
-	 * Reads the registration of UI Context-sensitive class extensions and initializes the cache of the UIContextDetermination object.
-	 * 
-	 * @author mdelder
-	 */
-	private static class UIContextDeterminationRegistryReader extends RegistryReader {
-
-		public static final String UI_CONTEXT_SENSTIVE_CLASS_ELEMENT = "uiContextSensitiveClass"; //$NON-NLS-1$
-
-		public static final String UI_CONTEXT_SENSTIVE_CLASS_KEY_ATTR = "key"; //$NON-NLS-1$
-
-		public static final String UI_CONTEXT_SENSTIVE_CLASS_CLASSNAME_ATTR = "className"; //$NON-NLS-1$
-
-		public static final String UI_CONTEXT_SENSTIVE_CLASS_CONTEXT_ATTR = "context"; //$NON-NLS-1$
-
-		public UIContextDeterminationRegistryReader() {
-			super(JEMUtilPlugin.PLUGIN_ID, JEMUtilPlugin.UI_CONTEXT_EXTENSION_POINT);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jem.util.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
-		 */
-		public boolean readElement(IConfigurationElement element) {
-			boolean result = false;
-			if (element.getName().equals(UI_CONTEXT_SENSTIVE_CLASS_ELEMENT)) {
-
-				String key = element.getAttribute(UI_CONTEXT_SENSTIVE_CLASS_KEY_ATTR);
-				String context = element.getAttribute(UI_CONTEXT_SENSTIVE_CLASS_CONTEXT_ATTR);
-
-				if (!cachedExtensions.containsKey(key) || getCurrentContext() == convertLiteral(context))
-					cachedExtensions.put(key, element);
-				result = true;
-			}
-			return result;
-		}
-	}
-
-	/*
-	 * Reads the uiTester extension and instantiate the any of the UITester classes it finds.
-	 * 
-	 * The implementation has the side effect that if multiple UITesters are registered, any of them can trip the currentContext into the UI_CONTEXT
-	 * state.
-	 * 
-	 * @author mdelder
-	 */
-	private static class UITesterRegistryReader extends RegistryReader {
-
-		public static final String UI_TESTER_ELEMENT = "uiTester"; //$NON-NLS-1$
-
-		public static final String UI_TESTER_CLASSNAME_ATTR = "className"; //$NON-NLS-1$
-
-		public UITesterRegistryReader() {
-			super(JEMUtilPlugin.PLUGIN_ID, JEMUtilPlugin.UI_TESTER_EXTENSION_POINT);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see com.ibm.etools.emf.workbench.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
-		 */
-		public boolean readElement(IConfigurationElement element) {
-			boolean result = false;
-			if (element.getName().equals(UI_TESTER_ELEMENT)) {
-				result = true;
-				try {
-					// Don't bother running tester it if we already processed one extension that returned true.
-					if (currentContext != UI_CONTEXT && canCreateExecutableExtension(element)) {
-						UITester tester = (UITester) element.createExecutableExtension(UI_TESTER_CLASSNAME_ATTR);
-						if (tester.isCurrentContextUI())
-							currentContext = UI_CONTEXT;
-					}
-				} catch (Exception t) {
-					Logger.getLogger().log("UIContextDetermination is proceeding in HEADLESS mode"); //$NON-NLS-1$
-				}
-			}
-			return result;
-		}
+		return org.eclipse.wst.common.core.util.UIContextDetermination.getCurrentContext();
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UITester.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UITester.java
index 54517e8..cd1b235 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UITester.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UITester.java
@@ -9,23 +9,13 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*
- *  $$RCSfile: UITester.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
+
 /**
  * Interface for a UITester. The "classname" attribute on the "uiTester" extension point should implement this class.
- * 
+ *
+ * @deprecated Replaced by {@link org.eclipse.wst.common.core.util.UITester)
  * @since 1.0.0
  */
-public interface UITester {
+public interface UITester extends org.eclipse.wst.common.core.util.UITester {
 
-	/**
-	 * Answer if the current context is an UI context.
-	 * 
-	 * @return <code>true</code> if an UI context.
-	 * 
-	 * @since 1.0.0
-	 */
-	public boolean isCurrentContextUI();
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ResourceSetWorkbenchSynchronizer.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ResourceSetWorkbenchSynchronizer.java
index 1cec597..02b5054 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ResourceSetWorkbenchSynchronizer.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ResourceSetWorkbenchSynchronizer.java
@@ -10,13 +10,12 @@
  *******************************************************************************/
 /*
  *  $$RCSfile: ResourceSetWorkbenchSynchronizer.java,v $$
- *  $$Revision: 1.4 $$  $$Date: 2006/05/17 20:13:45 $$ 
+ *  $$Revision: 1.9 $$  $$Date: 2010/05/12 22:47:45 $$ 
  */
 
 package org.eclipse.jem.util.emf.workbench;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 import org.eclipse.core.resources.*;
 import org.eclipse.emf.ecore.resource.ResourceSet;
@@ -37,7 +36,109 @@
 	protected ResourceSet resourceSet;
 
 	/** Extenders that will be notified after a pre build resource change */
-	protected List extenders;
+	protected QueuingHashSet <ISynchronizerExtender> extenders;
+
+	/**
+	 * This HashSet is similar to a regular HashSet except it can be put in
+	 * queuing mode with a call to the {@link #startQueuing()} method.
+	 * While in queuing mode any adds or removes will not be committed to 
+	 * the set until a call to {@link #stopQueuing()} is made. This allows
+	 * the QueuingHasSet to be put in queuing mode prior to iterating over
+	 * the contents without needing to worry about changes coming in and
+	 * throwing ConcurrentModificationExceptions.
+	 * 
+	 * @author jsholl
+	 *
+	 * @param <E>
+	 */
+	protected class QueuingHashSet <E> extends HashSet <E> {
+
+		private static final long serialVersionUID = 6959354060950816784L;
+	
+		private Object lock = new Object();
+		
+		private boolean queuing = false;
+		private Set <E> addQueue = null;
+		private Set removeQueue = null;
+		private int initialCapacity = 3;
+		
+		public QueuingHashSet(int capacity) {
+			super(capacity);
+			addQueue = new HashSet<E>(capacity);
+			removeQueue = new HashSet(capacity);
+			initialCapacity = capacity;
+		}
+
+		public void startQueuing() {
+			synchronized(lock){
+				if(queuing){
+					throw new UnsupportedOperationException("startQueuing may only be called while not already queuing");
+				}
+				this.queuing = true;
+				addQueue.clear();
+				removeQueue.clear();
+			}
+		}
+
+		/**
+		 * Returns the set of adds which occurred while in queuing mode.
+		 * @return
+		 */
+		public Set <E> stopQueuing() {
+			synchronized(lock){
+				if(!queuing){
+					throw new UnsupportedOperationException("stopQueuing may only be called while queuing");
+				}
+				queuing = false;
+				removeAll(removeQueue);
+				addAll(addQueue);
+				if(!addQueue.isEmpty()){
+					Set <E> queue = addQueue;
+					addQueue = new HashSet<E>(initialCapacity);
+					return queue;
+				}
+				return Collections.emptySet();
+			}
+		}
+		
+		@Override
+		public boolean add(E object) {
+			synchronized (lock) {
+				if(queuing){
+					if(contains(object)){
+						return false;
+					}
+					return addQueue.add(object);
+				} else{
+					return super.add(object);
+				}
+			}
+		}
+		
+		@Override
+		public boolean remove(Object object) {
+			synchronized (lock) {
+				if(queuing){
+					if(contains(object)){
+						return removeQueue.add(object);
+					} else {
+						return false;
+					}
+				} else {
+					return super.remove(object);
+				}
+			}
+		}
+		
+		@Override
+		public boolean isEmpty() {
+			synchronized (lock) {
+				return super.isEmpty();	
+			}
+		}
+		
+	};
+	
 
 	/** The delta for this project that will be broadcast to the extenders */
 	protected IResourceDelta currentProjectDelta;
@@ -86,19 +187,37 @@
 
 
 	protected void notifyExtendersIfNecessary() {
-		if (currentEventType != IResourceChangeEvent.POST_CHANGE || extenders == null || currentProjectDelta == null)
+		if (currentEventType != IResourceChangeEvent.POST_CHANGE || currentProjectDelta == null)
 			return;
-		for (int i = 0; i < extenders.size(); i++) {
-			ISynchronizerExtender extender = (ISynchronizerExtender) extenders.get(i);
-			extender.projectChanged(currentProjectDelta);
+		if(extenders != null){
+			Set <ISynchronizerExtender> extendersToNotify = extenders;
+			while(!extendersToNotify.isEmpty()){
+				try{
+					extenders.startQueuing();
+					for (Iterator <ISynchronizerExtender> iterator = extendersToNotify.iterator(); iterator.hasNext();) {
+						ISynchronizerExtender extender = iterator.next();
+						extender.projectChanged(currentProjectDelta);
+					}
+				} finally {
+					extendersToNotify = extenders.stopQueuing();
+				}
+			}
 		}
 	}
 
 	protected void notifyExtendersOfClose() {
-		if (extenders != null && !extenders.isEmpty()) {
-			for (int i = 0; i < extenders.size(); i++) {
-				ISynchronizerExtender extender = (ISynchronizerExtender) extenders.get(i);
-				extender.projectClosed();
+		if(extenders != null){
+			Set <ISynchronizerExtender> extendersToNotify = extenders;
+			while(!extendersToNotify.isEmpty()){
+				try{
+					extenders.startQueuing();
+					for (Iterator <ISynchronizerExtender> iterator = extendersToNotify.iterator(); iterator.hasNext();) {
+						ISynchronizerExtender extender = iterator.next();
+						extender.projectClosed();
+					}
+				} finally {
+					extendersToNotify = extenders.stopQueuing();
+				}
 			}
 		}
 	}
@@ -147,8 +266,9 @@
 	 * @since 1.0.0
 	 */
 	public void addExtender(ISynchronizerExtender extender) {
-		if (extenders == null)
-			extenders = new ArrayList(3);
+		if (extenders == null){
+			extenders = new QueuingHashSet <ISynchronizerExtender>(3);
+		}
 		extenders.add(extender);
 	}
 
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/AbstractWorkBenchRenderer.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/AbstractWorkBenchRenderer.java
index b2c1473..15a544f 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/AbstractWorkBenchRenderer.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/AbstractWorkBenchRenderer.java
@@ -24,6 +24,7 @@
 
 
 /**
+ * @deprecated Plugin error logging should be used instead
  * Base log renderer that logs to the workbench.
  * 
  * @since 1.1.0
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/ConsoleLogRenderer.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/ConsoleLogRenderer.java
index 0810e2d..bfdcaba 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/ConsoleLogRenderer.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/ConsoleLogRenderer.java
@@ -21,6 +21,7 @@
 
 
 /**
+ * @deprecated Plugin error logging should be used instead
  * Log renderer to the console.
  * 
  * @since 1.0.0
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/DefaultPluginTraceRenderer.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/DefaultPluginTraceRenderer.java
index 0473318..c42faa6 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/DefaultPluginTraceRenderer.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/DefaultPluginTraceRenderer.java
@@ -23,6 +23,7 @@
 
 
 /**
+ * @deprecated Plugin error logging should be used instead
  * Logger that also logs to a trace file in the plugin's metadata area.
  * 
  * @since 1.0.0
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/EclipseLogger.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/EclipseLogger.java
index 8591267..85f56ca 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/EclipseLogger.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/EclipseLogger.java
@@ -25,6 +25,7 @@
 
  
 /**
+ * @deprecated Plugin error logging should be used instead
  * Get an Eclipse logger. This gets a logger that knows it is for a plugin. 
  * 
  * For each plugin, the following can be specified in the .option file:
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/IMsgLogger.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/IMsgLogger.java
index 58f45d5..4ad5024 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/IMsgLogger.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/IMsgLogger.java
@@ -17,6 +17,7 @@
 import org.eclipse.jem.util.logger.proxy.Logger;
 
 /**
+ * @deprecated Plugin error logging should be used instead
  * Interface for a message logger.
  * 
  * @since 1.0.0
diff --git a/plugins/org.eclipse.jst.common.ui/.classpath b/plugins/org.eclipse.jst.common.ui/.classpath
new file mode 100644
index 0000000..64c5e31
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.jst.common.ui/.project b/plugins/org.eclipse.jst.common.ui/.project
new file mode 100644
index 0000000..b886d27
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.jst.common.ui</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.jst.common.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.jst.common.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..bf02908
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,74 @@
+#Fri Sep 11 19:24:47 PDT 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=ignore
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.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=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
+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=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
+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=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=ignore
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.jst.common.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.common.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..4eda346
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-Vendor: %provider
+Bundle-SymbolicName: org.eclipse.jst.common.ui;singleton:=true
+Bundle-Version: 1.0.100.qualifier
+Bundle-Localization: plugin
+Bundle-Activator: org.eclipse.jst.common.ui.internal.JstCommonUIPlugin
+Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.jdt.core;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.jdt.ui;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.wst.common.modulecore;bundle-version="[1.1.300,2.0.0)",
+ org.eclipse.wst.common.modulecore.ui;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.jst.common.frameworks;bundle-version="1.1.400",
+ org.eclipse.wst.common.frameworks;bundle-version="1.2.0",
+ org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.jst.common.ui.internal.assembly.wizard;x-internal:=true
diff --git a/plugins/org.eclipse.jst.common.ui/about.html b/plugins/org.eclipse.jst.common.ui/about.html
new file mode 100644
index 0000000..b6ed5b0
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/about.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+
+<BODY lang="EN-US">
+
+<H3>About This Content</H3>
+
+<P>August, 2009</P>
+
+<H3>License</H3>
+
+<P>The Eclipse Foundation makes available all content in this plug-in 
+("Content"). Unless otherwise indicated below, the Content is provided to you 
+under the terms and conditions of the Eclipse Public License Version 1.0 
+("EPL"). A copy of the EPL is available at
+<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
+For purposes of the EPL, "Program" will mean the Content.</P>
+
+<P>If you did not receive this Content directly from the Eclipse Foundation, the 
+Content is being redistributed by another party ("Redistributor") and different 
+terms and conditions may apply to your use of any object code in the Content. 
+Check the Redistributor’s license that was provided with the Content. If no such 
+license exists, contact the Redistributor. Unless otherwise indicated below, the 
+terms and conditions of the EPL still apply to any source code in the Content 
+and such source code may be obtained at
+<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.jst.common.ui/build.properties b/plugins/org.eclipse.jst.common.ui/build.properties
new file mode 100644
index 0000000..4b147f0
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/build.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               .,\
+               icons/,\
+               META-INF/,\
+               about.html,\
+               plugin.properties
diff --git a/plugins/org.eclipse.jst.common.ui/icons/jar_obj.gif b/plugins/org.eclipse.jst.common.ui/icons/jar_obj.gif
new file mode 100644
index 0000000..2fa1d77
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/icons/jar_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.jst.common.ui/icons/manifest-classpath-banner.png b/plugins/org.eclipse.jst.common.ui/icons/manifest-classpath-banner.png
new file mode 100644
index 0000000..7c3e208
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/icons/manifest-classpath-banner.png
Binary files differ
diff --git a/plugins/org.eclipse.jst.common.ui/icons/util-wiz-icon.gif b/plugins/org.eclipse.jst.common.ui/icons/util-wiz-icon.gif
new file mode 100644
index 0000000..2038b22
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/icons/util-wiz-icon.gif
Binary files differ
diff --git a/plugins/org.eclipse.jst.common.ui/plugin.properties b/plugins/org.eclipse.jst.common.ui/plugin.properties
new file mode 100644
index 0000000..f0ba4b0
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/plugin.properties
@@ -0,0 +1,16 @@
+###############################################################################
+# Copyright (c) 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+provider=Eclipse.org
+
+Bundle-Name.0 = Common JST UI Plug-in
+Archive=Archives from Workspace
+External_Archive=Archives from File System
+Variable=Archive via Path Variable
diff --git a/plugins/org.eclipse.jst.common.ui/plugin.xml b/plugins/org.eclipse.jst.common.ui/plugin.xml
new file mode 100644
index 0000000..16e598f
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/plugin.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+    <extension
+          point="org.eclipse.wst.common.modulecore.ui.referenceWizardFragment">
+       <referenceFragment
+             class="org.eclipse.jst.common.ui.internal.assembly.wizard.JarReferenceWizardFragment"
+             icon="icons/jar_obj.gif"
+             id="org.eclipse.jst.common.ui.jarReference"
+             name="%Archive">
+       </referenceFragment>
+       <referenceFragment
+             class="org.eclipse.jst.common.ui.internal.assembly.wizard.ExternalJarReferenceWizardFragment"
+             icon="icons/jar_obj.gif"
+             id="org.eclipse.jst.common.ui.externalJarReference"
+             name="%External_Archive">
+       </referenceFragment>
+       <referenceFragment
+             class="org.eclipse.jst.common.ui.internal.assembly.wizard.VariableReferenceWizardFragment"
+             icon="icons/jar_obj.gif"
+             id="org.eclipse.jst.common.ui.variableReference"
+             name="%Variable">
+       </referenceFragment>
+    </extension>
+    <extension point="org.eclipse.wst.common.modulecore.ui.virtualComponentLabelProvider">
+       <provider class="org.eclipse.jst.common.ui.internal.assembly.wizard.ClasspathContainerRefLabelProvider" weight="3"/>
+    </extension>       
+</plugin>
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/IJstCommonUIConstants.java b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/IJstCommonUIConstants.java
new file mode 100644
index 0000000..bb14fb7
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/IJstCommonUIConstants.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.common.ui.internal;
+
+
+/**
+ * @author: Aidyl Kareh
+ */
+public interface IJstCommonUIConstants {
+	public static final String DIALOGSTORE_LASTEXTARCHIVE= JstCommonUIPlugin.PLUGIN_ID + ".lastextarchive"; //$NON-NLS-1$
+}
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/IJstCommonUIContextIds.java b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/IJstCommonUIContextIds.java
new file mode 100644
index 0000000..a04afad
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/IJstCommonUIContextIds.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.common.ui.internal;
+
+/**
+ * @author: Aidyl Kareh
+ */
+public interface IJstCommonUIContextIds {
+	//	 New references wizards
+	public static final String DEPLOYMENT_ASSEMBLY_NEW_VARIABLE_REFERENCE_P1 = JstCommonUIPlugin.PLUGIN_ID + ".DEPLOYMENT_ASSEMBLY_NEW_VARIABLE_REFERENCE_P1"; //$NON-NLS-1$
+	public static final String DEPLOYMENT_ASSEMBLY_NEW_EXTERNAL_ARCHIVE_REFERENCE_P1 = JstCommonUIPlugin.PLUGIN_ID + ".DEPLOYMENT_ASSEMBLY_NEW_EXTERNAL_ARCHIVE_REFERENCE_P1"; //$NON-NLS-1$
+	public static final String DEPLOYMENT_ASSEMBLY_NEW_ARCHIVE_REFERENCE_P1 = JstCommonUIPlugin.PLUGIN_ID + ".DEPLOYMENT_ASSEMBLY_NEW_ARCHIVE_REFERENCE_P1"; //$NON-NLS-1$
+	public static final String DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_MANIFEST_ENTRIES_TAB = JstCommonUIPlugin.PLUGIN_ID + ".DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_MANIFEST_ENTRIES_TAB"; //$NON-NLS-1$
+}
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/JstCommonUIPlugin.java b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/JstCommonUIPlugin.java
new file mode 100644
index 0000000..57b9ef0
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/JstCommonUIPlugin.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.common.ui.internal;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class JstCommonUIPlugin extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.jst.common.ui"; //$NON-NLS-1$
+
+	// The shared instance
+	private static JstCommonUIPlugin plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public JstCommonUIPlugin() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static JstCommonUIPlugin getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/Messages.java b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/Messages.java
new file mode 100644
index 0000000..e45fd48
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/Messages.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.common.ui.internal;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+	private static final String BUNDLE_NAME = "org.eclipse.jst.common.ui.internal"; //$NON-NLS-1$
+	public static String ArchiveTitle;
+	public static String ArchiveDescription;
+	public static String ExternalArchiveTitle;
+	public static String ExternalArchiveDescription;
+	public static String ArchiveDialogNewTitle;
+	public static String ArchiveDialogNewDescription;
+	public static String Browse;
+	public static String VariableReferenceTitle;
+	public static String VariableReferenceDescription;
+	public static String AddManifestEntryTaskWizardTitle;
+	public static String AddManifestEntryTaskWizardDesc;
+	public static String ParentProject;
+	public static String CustomEntryButton;
+	public static String Add;
+	public static String Remove;
+	public static String MoveUp;
+	public static String MoveDown;
+	public static String ManifestEntryColumn;
+	public static String ManifestEntrySourceColumn;
+	public static String ConfigureParentLink;
+	public static String InvalidArchivesWarning;
+	
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME + ".messages", Messages.class); //$NON-NLS-1$
+	}
+
+	private Messages() {
+	}
+}
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/AddManifestEntryTaskWizard.java b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/AddManifestEntryTaskWizard.java
new file mode 100644
index 0000000..65ee3d2
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/AddManifestEntryTaskWizard.java
@@ -0,0 +1,238 @@
+/******************************************************************************
+ * Copyright (c) 2010 Red Hat and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - misc. UI cleanup
+ ******************************************************************************/
+package org.eclipse.jst.common.ui.internal.assembly.wizard;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.preference.PreferenceDialog;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jst.common.internal.modulecore.util.JavaModuleComponentUtility;
+import org.eclipse.jst.common.ui.internal.JstCommonUIPlugin;
+import org.eclipse.jst.common.ui.internal.Messages;
+import org.eclipse.jst.common.ui.internal.assembly.wizard.ManifestModuleDependencyControl.ManifestLabelProvider;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
+import org.eclipse.ui.internal.WorkbenchImages;
+import org.eclipse.ui.internal.dialogs.PropertyDialog;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.impl.TaskModel;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.IWizardHandle;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.TaskWizard;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.WizardFragment;
+
+public class AddManifestEntryTaskWizard extends TaskWizard {
+	public static final String PARENT_PROJECT = "PARENT_PROJECT"; // data model key //$NON-NLS-1$
+	public static final String CHILD_PROJECT = "CHILD_PROJECT"; // data model key //$NON-NLS-1$
+	public static final String CURRENT_REFERENCES = "CURRENT_REFERENCES"; // data model key for return val //$NON-NLS-1$
+	public static final String RETURNED_REFERENCES = "RETURNED_REFERENCES"; // data model key for return val //$NON-NLS-1$
+	public AddManifestEntryTaskWizard() {
+		super(Messages.AddManifestEntryTaskWizardTitle, new ManifestRootFragment());
+	}
+	
+	public static class ManifestRootFragment extends WizardFragment {
+		private TableViewer viewer;
+		private Button addCustom;
+		private Text customEntryText;
+		protected IProject parentProject, childProject;
+		private IVirtualReference[] selected;
+		private ShowPossibleManifestEntryContentProvider contentProvider;
+		private Link parentContainerLink;
+		public boolean hasComposite() {
+			return true;
+		}
+		private void updateWidgets() throws InvocationTargetException {
+		
+			viewer.setInput(ResourcesPlugin.getWorkspace());
+			viewer.refresh();
+		}
+		
+		private static GridLayout glayout( final int columns )
+		{
+			final GridLayout gl = new GridLayout( columns, false );
+			gl.marginWidth = 0;
+			gl.marginHeight = 0;
+			
+			return gl;
+		}
+		
+		public Composite createComposite(Composite parent, IWizardHandle handle) {
+			parentProject = (IProject)getTaskModel().getObject(PARENT_PROJECT);
+			childProject = (IProject)getTaskModel().getObject(CHILD_PROJECT);
+			handle.setTitle(Messages.AddManifestEntryTaskWizardTitle);
+			handle.setDescription(NLS.bind(Messages.AddManifestEntryTaskWizardDesc, parentProject.getName()));
+			handle.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_WIZBAN_EXPORT_WIZ));
+			handle.setImageDescriptor( AbstractUIPlugin.imageDescriptorFromPlugin( JstCommonUIPlugin.PLUGIN_ID, "icons/manifest-classpath-banner.png" ) );
+			
+			Composite root = new Composite(parent, SWT.NONE);
+			root.setLayout(glayout(1));
+			
+			viewer = ManifestModuleDependencyControl.createManifestReferenceTableViewer(root, SWT.MULTI);
+			final GridData gData = new GridData(GridData.FILL_BOTH);
+			gData.heightHint = 350;
+			viewer.getTable().setLayoutData(gData);
+			contentProvider = new ShowPossibleManifestEntryContentProvider(parentProject, childProject, getTaskModel());
+			viewer.setContentProvider(contentProvider);
+			viewer.setLabelProvider(new ManifestLabelProvider());
+			viewer.setInput(ResourcesPlugin.getWorkspace());
+			viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+				public void selectionChanged(SelectionChangedEvent event) {
+					viewerSelectionChanged();
+				}
+			});
+			
+			final Composite customEntryComposite = new Composite(root,SWT.NONE);
+			customEntryComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+			customEntryComposite.setLayout(glayout(2));
+			
+			customEntryText = new Text(customEntryComposite, SWT.BORDER);
+			customEntryText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+			customEntryText.addModifyListener(new ModifyListener() {
+				public void modifyText(ModifyEvent e) {
+					if(customEntryText.getText() == null || customEntryText.getText().trim().length() == 0 || new Path(customEntryText.getText().trim()).makeRelative().toString().length() == 0)
+						addCustom.setEnabled(false);
+					else
+						addCustom.setEnabled(true);
+				} 
+			});
+			
+			addCustom = new Button(customEntryComposite, SWT.PUSH);
+			addCustom.setLayoutData(new GridData());
+			addCustom.setText(Messages.CustomEntryButton);
+			addCustom.addSelectionListener(new SelectionListener() {
+				public void widgetSelected(SelectionEvent e) {
+					addCustomPressed();
+				}
+				public void widgetDefaultSelected(SelectionEvent e) {
+				}
+			});
+			addCustom.setEnabled(false);
+			
+			createConfigLink(root);
+			parentContainerLink.setLayoutData(new GridData());
+			
+			return root;
+		}
+		
+		private void addCustomPressed() {
+			IVirtualReference ref = ManifestModuleDependencyControl.createDummyReference(
+					new Path(customEntryText.getText()).toString(), parentProject, ComponentCore.createComponent(parentProject));
+			contentProvider.addPossibleReference(ref);
+			customEntryText.setText(""); //$NON-NLS-1$
+			addCustom.setEnabled(false);
+			viewer.refresh();
+		}
+		
+		private void viewerSelectionChanged() {
+			IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
+			Object[] obj = sel.toArray();
+			IVirtualReference[] ret = new IVirtualReference[obj.length];
+			for( int i = 0; i < ret.length; i++ ) {
+				ret[i] = (IVirtualReference)obj[i];
+			}
+			selected = ret;
+		}
+		
+		private void createConfigLink(Composite aGroup){
+			parentContainerLink = new Link(aGroup,SWT.None);
+			parentContainerLink.setText("<A>"+ //$NON-NLS-1$
+					Messages.ConfigureParentLink+"</A>"); //$NON-NLS-1$
+			parentContainerLink.addSelectionListener(new SelectionListener() {
+				
+				public void doLinkActivated(Link e) {
+					IProject parentProject = ManifestRootFragment.this.parentProject;
+					PreferenceDialog dialog = PropertyDialog.createDialogOn(ManifestRootFragment.this.getPage().getControl().getShell(),
+							"org.eclipse.wst.common.componentcore.ui.DeploymentAssemblyPage", parentProject); //$NON-NLS-1$
+					if (dialog != null) {
+						dialog.open();
+					}
+					try {
+						updateWidgets();
+					} catch (InvocationTargetException ie) {
+
+					}
+				}
+
+				public void widgetDefaultSelected(SelectionEvent e) {
+					doLinkActivated((Link) e.widget);					
+				}
+
+				public void widgetSelected(SelectionEvent e) {
+					doLinkActivated((Link) e.widget);					
+				}
+			});
+			
+		}
+		
+		
+		// just return the selected refs
+		public void performFinish(IProgressMonitor monitor) throws CoreException {
+			getTaskModel().putObject(RETURNED_REFERENCES, selected);
+		}
+	}
+	
+	public static class ShowPossibleManifestEntryContentProvider extends ArrayContentProvider {
+		private IProject parent, child;
+		private TaskModel model;
+		private IVirtualReference[] possible;
+		public ShowPossibleManifestEntryContentProvider(IProject parent, IProject child, TaskModel taskModel) {
+			this.parent = parent;
+			this.child = child;
+			this.model = taskModel;
+		}
+		public Object[] getElements(Object inputElement) {
+			if( possible == null ) {
+				IVirtualReference[] current = (IVirtualReference[])model.getObject(CURRENT_REFERENCES);
+				possible = JavaModuleComponentUtility.findPossibleManifestEntries(parent, child, current);
+			}
+			return possible;
+		}
+		public void addPossibleReference(IVirtualReference ref) {
+			ArrayList<IVirtualReference> newRefs = new ArrayList<IVirtualReference>();
+			newRefs.addAll(Arrays.asList(possible));
+			newRefs.add(ref);
+			possible = newRefs.toArray(new IVirtualReference[newRefs.size()]);
+		}
+		@Override
+		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+			if (newInput != null) {
+				possible = null;
+				viewer.refresh();
+			}
+		}
+		
+	}
+}
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/ClasspathContainerRefLabelProvider.java b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/ClasspathContainerRefLabelProvider.java
new file mode 100644
index 0000000..2238a8c
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/ClasspathContainerRefLabelProvider.java
@@ -0,0 +1,58 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ ******************************************************************************/
+package org.eclipse.jst.common.ui.internal.assembly.wizard;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jst.common.internal.modulecore.ClasspathContainerVirtualComponent;
+import org.eclipse.jst.common.ui.internal.JstCommonUIPlugin;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.IVirtualComponentLabelProvider;
+
+public class ClasspathContainerRefLabelProvider implements
+		IVirtualComponentLabelProvider {
+
+	public ClasspathContainerRefLabelProvider() {
+		// TODO Auto-generated constructor stub
+	}
+
+	public boolean canHandle(IVirtualComponent component) {
+		return (component instanceof ClasspathContainerVirtualComponent);
+	}
+
+	public String getSourceText(IVirtualComponent component) {
+		return ((ClasspathContainerVirtualComponent)component).getClasspathContainerPath();
+	}
+
+	private Image image;
+	public Image getSourceImage(IVirtualComponent component) {
+		if( image == null ) {
+			try {
+				URL url = new URL( JstCommonUIPlugin.getDefault().getBundle().getEntry("/"), "icons/util-wiz-icon.gif"); //$NON-NLS-1$ //$NON-NLS-2$
+				ImageDescriptor imageDescriptor = null;
+				if (url != null)
+					imageDescriptor = ImageDescriptor.createFromURL(url);
+				if( imageDescriptor != null ) 
+					image = imageDescriptor.createImage();
+			} catch( MalformedURLException murle ) {
+				// do nothing
+			}
+		}
+		return image;
+	}
+	
+	public void dispose() {
+		image.dispose();
+	}
+}
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/ExternalJarReferenceWizardFragment.java b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/ExternalJarReferenceWizardFragment.java
new file mode 100644
index 0000000..4e824c2
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/ExternalJarReferenceWizardFragment.java
@@ -0,0 +1,123 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ ******************************************************************************/
+package org.eclipse.jst.common.ui.internal.assembly.wizard;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.common.ui.internal.IJstCommonUIConstants;
+import org.eclipse.jst.common.ui.internal.IJstCommonUIContextIds;
+import org.eclipse.jst.common.ui.internal.JstCommonUIPlugin;
+import org.eclipse.jst.common.ui.internal.Messages;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualReference;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.IWizardHandle;
+import org.eclipse.wst.common.componentcore.ui.propertypage.IReferenceWizardConstants;
+
+public class ExternalJarReferenceWizardFragment extends JarReferenceWizardFragment {	
+	public Composite createComposite(Composite parent, IWizardHandle handle) {
+		Composite c = super.createComposite(parent, handle);
+		handle.setTitle(Messages.ExternalArchiveTitle);
+		handle.setDescription(Messages.ExternalArchiveDescription);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IJstCommonUIContextIds.DEPLOYMENT_ASSEMBLY_NEW_EXTERNAL_ARCHIVE_REFERENCE_P1);
+		return c;
+	}
+
+	protected void buttonPressed() {
+		selected = chooseExternalArchiveEntries(add.getShell());
+		
+		if(selected != null) {
+			removeInvalidArchiveFiles();
+		
+			for(IPath path: selected) {
+				if(!archives.containsKey(path)) {
+					archives.put(path, path);
+				}
+			}
+			
+			viewer.refresh();
+			if(archives != null && archives.size() > 0) {
+				isComplete = true;
+			} else {
+				isComplete = false;
+			}
+			handle.update();
+		}
+	}
+
+	public void performFinish(IProgressMonitor monitor) throws CoreException {
+		IVirtualComponent rootComponent = (IVirtualComponent)getTaskModel().getObject(IReferenceWizardConstants.ROOT_COMPONENT);
+		String runtimeLoc = (String)getTaskModel().getObject(IReferenceWizardConstants.DEFAULT_LIBRARY_LOCATION);
+		if (archives != null && archives.size() > 0) {
+			ArrayList<IVirtualReference> refList = new ArrayList<IVirtualReference>();
+			Iterator iterator = archives.values().iterator();
+			while(iterator.hasNext()) {
+	    		IPath path = (Path)iterator.next();
+				// IPath fullPath = project.getFile(selected[i]).getFullPath();
+				String type = VirtualArchiveComponent.LIBARCHIVETYPE
+						+ IPath.SEPARATOR;
+				IVirtualComponent archive = ComponentCore
+						.createArchiveComponent(rootComponent.getProject(),
+								type + path.toString());
+				VirtualReference ref = new VirtualReference(rootComponent, archive);
+				ref.setArchiveName(path.lastSegment());
+				if (runtimeLoc != null) {
+					ref.setRuntimePath(new Path(runtimeLoc).makeAbsolute());
+				}
+				refList.add(ref);
+			}
+			IVirtualReference[] finalRefs = refList.toArray(new IVirtualReference[refList.size()]);
+			getTaskModel().putObject(IReferenceWizardConstants.FINAL_REFERENCE, finalRefs);
+		}
+	}
+	
+	private static IPath[] chooseExternalArchiveEntries(Shell shell) {
+		String lastUsedPath= JstCommonUIPlugin.getDefault().getDialogSettings().get(IJstCommonUIConstants.DIALOGSTORE_LASTEXTARCHIVE);
+		if (lastUsedPath == null) {
+			lastUsedPath= ""; //$NON-NLS-1$
+		}
+		
+		FileDialog dialog= new FileDialog(shell, SWT.MULTI);
+		dialog.setText(Messages.ArchiveDialogNewTitle);
+		String [] extensions = new String[] {"*.jar;*.war;*.rar;*.zip", "*.*"};  //$NON-NLS-1$//$NON-NLS-2$
+		dialog.setFilterExtensions(extensions);
+		dialog.setFilterPath(lastUsedPath);
+
+		String res= dialog.open();
+		if (res == null) {
+			return null;
+		}
+		String[] fileNames= dialog.getFileNames();
+		int nChosen= fileNames.length;
+
+		IPath filterPath= Path.fromOSString(dialog.getFilterPath());
+		IPath[] elems= new IPath[nChosen];
+		for (int i= 0; i < nChosen; i++) {
+			elems[i]= filterPath.append(fileNames[i]).makeAbsolute();
+		}
+		
+		JstCommonUIPlugin.getDefault().getDialogSettings().put(IJstCommonUIConstants.DIALOGSTORE_LASTEXTARCHIVE, dialog.getFilterPath());
+		
+		return elems;
+	}
+}
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/JarReferenceWizardFragment.java b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/JarReferenceWizardFragment.java
new file mode 100644
index 0000000..2e19565
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/JarReferenceWizardFragment.java
@@ -0,0 +1,401 @@
+/******************************************************************************
+ * Copyright (c) 2010 Red Hat and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - misc. UI cleanup
+ ******************************************************************************/
+package org.eclipse.jst.common.ui.internal.assembly.wizard;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.zip.ZipException;
+import java.util.zip.ZipFile;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.internal.ui.JavaPlugin;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jdt.internal.ui.viewsupport.FilteredElementTreeSelectionDialog;
+import org.eclipse.jdt.internal.ui.wizards.TypedElementSelectionValidator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jst.common.ui.internal.IJstCommonUIContextIds;
+import org.eclipse.jst.common.ui.internal.JstCommonUIPlugin;
+import org.eclipse.jst.common.ui.internal.Messages;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.model.WorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.eclipse.ui.views.navigator.ResourceComparator;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualReference;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.IWizardHandle;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.WizardFragment;
+import org.eclipse.wst.common.componentcore.ui.propertypage.IReferenceWizardConstants;
+
+public class JarReferenceWizardFragment extends WizardFragment {
+	protected LabelProvider labelProvider = null;
+	protected ITreeContentProvider contentProvider = null;
+	protected TreeViewer viewer;
+	protected Button add, remove;
+	protected IPath[] paths;
+	protected IWizardHandle handle;
+	protected IPath[] selected = new IPath[]{};
+	protected Map <IPath, IPath> archives = new HashMap<IPath, IPath>();
+	boolean isComplete = false;
+
+	public boolean isComplete() {
+		return isComplete;
+	}
+	
+	public boolean hasComposite() {
+		return true;
+	}
+
+	public Composite createComposite(Composite parent, IWizardHandle handle) {
+		this.handle = handle;
+		handle.setTitle(Messages.ArchiveTitle);
+		handle.setDescription(Messages.ArchiveDescription);
+		handle.setImageDescriptor(JavaPluginImages.DESC_WIZBAN_ADD_LIBRARY);
+				
+		Composite c = new Composite(parent, SWT.NONE);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IJstCommonUIContextIds.DEPLOYMENT_ASSEMBLY_NEW_ARCHIVE_REFERENCE_P1);
+		c.setLayout(new GridLayout(2, false));
+		viewer = new TreeViewer(c, SWT.MULTI | SWT.BORDER);
+		viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
+		viewer.setContentProvider(getContentProvider());
+		viewer.setLabelProvider(getLabelProvider());
+		viewer.setInput(ResourcesPlugin.getWorkspace());
+
+		Composite buttonColumn = new Composite(c, SWT.NONE);
+		buttonColumn.setLayoutData(new GridData(GridData.FILL_VERTICAL));
+		
+		final GridLayout gl = new GridLayout();
+		gl.marginWidth = 0;
+		gl.marginHeight = 0;
+		
+		buttonColumn.setLayout( gl );
+		
+		add = new Button(buttonColumn, SWT.NONE);
+		add.setText(Messages.Add);
+		GridDataFactory.defaultsFor(add).applyTo(add);
+		
+		remove = new Button(buttonColumn, SWT.NONE);
+		remove.setText(Messages.Remove);
+		GridDataFactory.defaultsFor(remove).applyTo(remove);
+
+		add.addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				buttonPressed();
+			}
+
+			public void widgetDefaultSelected(SelectionEvent e) {
+				widgetSelected(e);
+			}
+		});
+		
+		remove.addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				removeButtonPressed();
+			}
+
+			public void widgetDefaultSelected(SelectionEvent e) {
+				widgetSelected(e);
+			}
+		});
+		return c;
+	}
+
+	protected void buttonPressed() {
+		IProject project = (IProject)getTaskModel().getObject(IReferenceWizardConstants.PROJECT);
+		selected = chooseEntries(
+				add.getShell(), 
+				project.getFullPath());
+
+		if(selected != null) {
+			removeInvalidArchiveFiles();
+		
+			for(IPath path: selected) {
+				if(!archives.containsKey(path)) {
+					archives.put(path, path);
+				}
+			}
+			
+			viewer.refresh();
+			if(archives != null && archives.size() > 0) {
+				isComplete = true;
+			} else {
+				isComplete = false;
+			}
+			handle.update();
+		}
+	}
+	
+	protected void removeButtonPressed() {
+		TreeItem[] toRemove = viewer.getTree().getSelection();
+		
+		if(toRemove != null && toRemove.length > 0) {
+			for(int i = 0; i < toRemove.length; i++) {
+				Path path = (Path) toRemove[i].getData();
+				if(archives.containsKey(path)) {
+					archives.remove(path);
+				}
+			}
+			
+			viewer.refresh();
+			if(archives != null && archives.size() > 0) {
+				isComplete = true;
+			} else {
+				isComplete = false;
+			}
+			handle.update();
+		}
+	}
+
+	public void performFinish(IProgressMonitor monitor) throws CoreException {
+		IVirtualComponent rootComponent = (IVirtualComponent)getTaskModel().getObject(IReferenceWizardConstants.ROOT_COMPONENT);
+		String runtimeLoc = (String)getTaskModel().getObject(IReferenceWizardConstants.DEFAULT_LIBRARY_LOCATION);
+		if (archives != null && archives.size() > 0) {
+			ArrayList<IVirtualReference> refList = new ArrayList<IVirtualReference>();
+			Iterator iterator = archives.values().iterator();
+			while(iterator.hasNext()) {
+	    		IPath path = (Path)iterator.next();
+				// IPath fullPath = project.getFile(selected[i]).getFullPath();
+				String type = VirtualArchiveComponent.LIBARCHIVETYPE
+						+ IPath.SEPARATOR;
+				IVirtualComponent archive = ComponentCore
+						.createArchiveComponent(rootComponent.getProject(),
+								type + path.makeRelative().toString());
+				VirtualReference ref = new VirtualReference(rootComponent, archive);
+				ref.setArchiveName(path.lastSegment());
+				if (runtimeLoc != null) {
+					ref.setRuntimePath(new Path(runtimeLoc).makeAbsolute());
+				}
+				refList.add(ref);
+			}
+			IVirtualReference[] finalRefs = refList.toArray(new IVirtualReference[refList.size()]);
+			getTaskModel().putObject(IReferenceWizardConstants.FINAL_REFERENCE, finalRefs);
+		}
+	}
+
+	protected LabelProvider getLabelProvider() {
+		if (labelProvider == null) {
+			labelProvider = new LabelProvider() {
+				public Image getImage(Object element) {
+					return null;
+				}
+
+				public String getText(Object element) {
+					return element == null ? "" : element.toString();//$NON-NLS-1$
+				}
+			};
+		}
+		return labelProvider;
+	}
+
+	protected ITreeContentProvider getContentProvider() {
+		if (contentProvider == null) {
+			contentProvider = new ITreeContentProvider() {
+				public Object[] getElements(Object inputElement) {
+					return archives == null ? new Object[]{} : archives.values().toArray();
+				}
+				public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+				}
+				public void dispose() {
+				}
+				public boolean hasChildren(Object element) {
+					return false;
+				}
+				public Object getParent(Object element) {
+					return null;
+				}
+				public Object[] getChildren(Object parentElement) {
+					return null;
+				}
+			};
+		}
+		return contentProvider;
+	}
+	
+	private static IPath[] chooseEntries(Shell shell, IPath initialSelection) {
+		Class[] acceptedClasses= new Class[] { IFile.class };
+		TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, true);
+		IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
+
+		FilteredElementTreeSelectionDialog dialog =  new FilteredElementTreeSelectionDialog(shell, new WorkbenchLabelProvider(), new WorkbenchContentProvider());
+		dialog.setHelpAvailable(false);
+		dialog.setValidator(validator);
+		dialog.setTitle(Messages.ArchiveDialogNewTitle);
+		dialog.setMessage(Messages.ArchiveDialogNewDescription);
+		dialog.addFilter(getDialogViewerFilter());
+		dialog.setInput(root);
+		dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
+		dialog.setInitialFilter("*.jar,*.war,*.rar,*.zip"); //$NON-NLS-1$
+		dialog.create();		
+
+		if (dialog.open() == Window.OK) {
+			Object[] elements= dialog.getResult();
+			IPath[] res= new IPath[elements.length];
+			for (int i= 0; i < res.length; i++) {
+				IResource elem= (IResource)elements[i];
+				res[i]= elem.getFullPath();
+			}
+			return res;
+		}
+		return null;
+	}
+	
+	protected void removeInvalidArchiveFiles(){
+		// Tries to open archive to verify it's valid
+		// If it is not a valid archive, a dialog is shown informing the user of the invalid archives
+		ArrayList<IPath> invalidArchiveFiles = new ArrayList<IPath>();
+		ArrayList<IPath> validArchiveFiles = new ArrayList<IPath>();
+		ZipFile zipFile = null;
+		for(IPath path:selected){
+			try {
+				String osPath = null;
+				if(path.segmentCount() > 1){
+					IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+					if(file.exists()) {
+						IPath loc = file.getLocation();
+						if(loc != null) { 
+							osPath = loc.toOSString();
+						}
+					}
+				}
+				if(osPath == null){
+					osPath = path.toOSString();
+				}
+				zipFile = new ZipFile(new File(osPath));
+				validArchiveFiles.add(path);
+			} catch (ZipException e1){
+				invalidArchiveFiles.add(path);
+			} catch (IOException e2){
+				invalidArchiveFiles.add(path);
+			}finally {
+				if (zipFile != null){
+					try {
+						zipFile.close();
+					} catch (IOException e) {
+						JstCommonUIPlugin.getDefault().getLog().log(new Status(IStatus.ERROR, JstCommonUIPlugin.PLUGIN_ID, e.getMessage(), e));
+					}
+				}
+			}
+		}
+		if(invalidArchiveFiles.size() > 0) {
+			selected = validArchiveFiles.toArray(new IPath[validArchiveFiles.size()]);
+			showInvalidArchiveFilesAsWarning(invalidArchiveFiles);
+		}
+	}
+	
+	private void showInvalidArchiveFilesAsWarning(ArrayList<IPath>invalidArchiveFiles) {
+		String message = Messages.InvalidArchivesWarning;
+		boolean first = true;
+		for(IPath path: invalidArchiveFiles) {
+			if(!first) {
+				message += ", \'"; //$NON-NLS-1$
+			} else {
+				message += "\'"; //$NON-NLS-1$
+				first = false;
+			}
+			message += path.lastSegment() + "\'"; //$NON-NLS-1$
+		}
+		MessageDialog.openWarning(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Warning", message); //$NON-NLS-1$
+	}
+	
+	private static ViewerFilter getDialogViewerFilter() {
+		return new ViewerFilter() {
+			private final String[] excludedExtensions= { "txt", "css", "dll", "htm", "html", "class", "java", "classpath",      //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$//$NON-NLS-5$ //$NON-NLS-6$//$NON-NLS-7$ //$NON-NLS-8$
+				"compatibility", "component", "container", "cvsignore", "del", "dnx", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$//$NON-NLS-5$ //$NON-NLS-6$
+				"dtd", "mf", "project", "properties", "psf", "rc", "runtime", "sh", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$//$NON-NLS-5$ //$NON-NLS-6$//$NON-NLS-7$ //$NON-NLS-8$
+				"spec", "sql", "tld", "xmi", "xml", "xsd", "gif", "jpg", "js", "vsd", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$//$NON-NLS-5$ //$NON-NLS-6$//$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+				"png", "bat", "xsl", "factorypath"}; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$ 
+
+			private HashMap<String,String> excludedExtensionsMap = null;
+
+			@Override
+			public boolean select(Viewer viewer, Object parent, Object element) {
+				if(excludedExtensionsMap == null) {
+					initializeExludeMap();
+				}
+				if (element instanceof IFile) {
+					IFile file = (IFile) element;
+					String ext = file.getFileExtension();
+					if(ext != null) {
+						ext = ext.toLowerCase();
+						if(excludedExtensionsMap.get(ext) != null) {
+							return false;
+						}
+					}
+					return true;
+				} else if (element instanceof IContainer) { // IProject, IFolder
+					// ignore closed projects
+					if (element instanceof IProject && !((IProject)element).isOpen())
+						return false;
+					// ignore .settings folder
+					if (element instanceof IFolder) {
+						IFolder folder = (IFolder) element;
+						if (folder.getName().equals(".settings"))
+							return false;
+					}
+					try {
+						IResource[] resources= ((IContainer)element).members();
+						for (int i= 0; i < resources.length; i++) {
+							// Only show containers that contain an archive
+							if (select(viewer, parent, resources[i])) {
+								return true;
+							}
+						}
+					} catch (CoreException e) {
+						JavaPlugin.log(e.getStatus());
+					}
+				}
+				return false;
+			}
+			
+			private void initializeExludeMap() {
+				excludedExtensionsMap = new HashMap<String, String>();
+				for(int i = 0; i < excludedExtensions.length; i++)
+				excludedExtensionsMap.put(excludedExtensions[i], excludedExtensions[i]);
+			}
+		};
+	}
+}
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/ManifestModuleDependencyControl.java b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/ManifestModuleDependencyControl.java
new file mode 100644
index 0000000..9d7db98
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/ManifestModuleDependencyControl.java
@@ -0,0 +1,677 @@
+/******************************************************************************
+ * Copyright (c) 2010 Red Hat and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - misc. UI cleanup
+ ******************************************************************************/
+package org.eclipse.jst.common.ui.internal.assembly.wizard;
+
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.viewers.BaseLabelProvider;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.jst.common.internal.modulecore.util.ArchiveManifest;
+import org.eclipse.jst.common.internal.modulecore.util.JavaModuleComponentUtility;
+import org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities;
+import org.eclipse.jst.common.internal.modulecore.util.UpdateManifestDataModelProperties;
+import org.eclipse.jst.common.internal.modulecore.util.UpdateManifestDataModelProvider;
+import org.eclipse.jst.common.ui.internal.IJstCommonUIContextIds;
+import org.eclipse.jst.common.ui.internal.Messages;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.resources.AbstractResourceListVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.DependencyPageExtensionManager;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.IVirtualComponentLabelProvider;
+import org.eclipse.wst.common.componentcore.ui.propertypage.AbstractIModuleDependenciesControl;
+import org.eclipse.wst.common.componentcore.ui.propertypage.ModuleAssemblyRootPage;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+
+public class ManifestModuleDependencyControl extends AbstractIModuleDependenciesControl {
+	
+	protected IProject project;
+	protected IVirtualComponent rootComponent;
+	protected IProject parentProject;
+	protected ModuleAssemblyRootPage propPage;
+	protected Button addButton, removeButton, moveUpButton, moveDownButton;
+	protected Combo parentSelection;
+	protected TableViewer manifestEntryViewer;
+	private ArrayList<IVirtualReference> list = new ArrayList<IVirtualReference>();
+	private String previousManifest = null;
+	
+	public ManifestModuleDependencyControl(final IProject project,
+			final ModuleAssemblyRootPage page) {
+		this.project = project;
+		this.propPage = page;
+		rootComponent = ComponentCore.createComponent(project);
+	}
+
+	private static GridLayout glayout( final int columns )
+	{
+		final GridLayout gl = new GridLayout( columns, false );
+		gl.marginWidth = 0;
+		gl.marginHeight = 0;
+		
+		return gl;
+	}
+	
+	public Composite createContents(Composite parent) {
+		Composite root = new Composite(parent, SWT.NONE);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(root, IJstCommonUIContextIds.DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_MANIFEST_ENTRIES_TAB);
+		root.setLayout(glayout(1));
+		
+		final Composite parentSelectionComposite = new Composite( root, SWT.NONE );
+		parentSelectionComposite.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
+		parentSelectionComposite.setLayout( glayout( 2 ) );
+		
+		Label l = new Label(parentSelectionComposite, SWT.NONE);
+		l.setText(Messages.ParentProject);
+		l.setLayoutData(new GridData());
+		
+		parentSelection = new Combo(parentSelectionComposite, SWT.READ_ONLY);
+		parentSelection.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		parentSelection.setItems(getPossibleParentProjects());
+		parentSelection.addModifyListener(new ModifyListener(){
+			public void modifyText(ModifyEvent e) {
+				refreshViewerFromNewParentProject();
+			}
+		});
+		
+		final Composite manifestEntryViewerComposite = new Composite( root, SWT.NONE );
+		final GridData manifestEntryViewerCompositeLayoutData = new GridData( GridData.FILL_BOTH );
+		manifestEntryViewerComposite.setLayoutData( manifestEntryViewerCompositeLayoutData );
+		manifestEntryViewerComposite.setLayout( glayout( 2 ) );
+		
+		manifestEntryViewer = createManifestReferenceTableViewer(manifestEntryViewerComposite, SWT.SINGLE);
+		GridData data = new GridData(GridData.FILL_BOTH);
+		int numlines = Math.min(10, manifestEntryViewer.getTable().getItemCount());
+		data.heightHint = manifestEntryViewer.getTable().getItemHeight() * numlines;
+		manifestEntryViewer.getTable().setLayoutData(data);
+		
+		Composite buttonColumn = new Composite(manifestEntryViewerComposite, SWT.NONE);
+		buttonColumn.setLayoutData(new GridData(GridData.FILL_VERTICAL));
+		buttonColumn.setLayout(glayout( 1 ));
+		
+		addButton = new Button(buttonColumn, SWT.PUSH);
+		addButton.setText(Messages.Add);
+		GridDataFactory.defaultsFor(addButton).applyTo(addButton);
+		
+		removeButton = new Button(buttonColumn, SWT.PUSH);
+		removeButton.setText(Messages.Remove);
+		GridDataFactory.defaultsFor(removeButton).applyTo(removeButton);
+		
+		moveUpButton = new Button(buttonColumn, SWT.PUSH);
+		moveUpButton.setText(Messages.MoveUp);
+		GridDataFactory.defaultsFor(moveUpButton).applyTo(moveUpButton);
+		
+		moveDownButton = new Button(buttonColumn, SWT.PUSH);
+		moveDownButton.setText(Messages.MoveDown);
+		GridDataFactory.defaultsFor(moveDownButton).applyTo(moveDownButton);
+		
+		IFile manifest = getManifestIFile(rootComponent);
+		if(manifest == null) {
+			addButton.setEnabled(false);
+		} else {
+			addButton.setEnabled(true);
+			previousManifest = manifest.getFullPath().toOSString();
+		}
+		removeButton.setEnabled(false);
+		moveUpButton.setEnabled(false);
+		moveDownButton.setEnabled(false);
+		
+		addButton.addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				addPressed();
+			}
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+		removeButton.addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				removePressed();
+			}
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+		moveUpButton.addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				moveUp();
+			}
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+		moveDownButton.addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				moveDown();
+			}
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+		
+		manifestEntryViewer.setLabelProvider(new ManifestLabelProvider());
+		manifestEntryViewer.setContentProvider(new ManifestContentProvider());
+		manifestEntryViewer.setInput(ResourcesPlugin.getWorkspace());
+		parentSelection.select(0);
+		
+		manifestEntryViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				viewerSelectionChanged();
+			}
+		});
+
+		//ensure the buttons are properly updated when table sort mode toggled
+		manifestEntryViewer.getTable().getColumn(0).addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				updateButtons();
+			}
+			
+			public void widgetDefaultSelected(SelectionEvent e) {
+				// do nothing
+			}
+		});
+
+		//ensure the buttons are properly updated when table sort mode toggled
+		manifestEntryViewer.getTable().getColumn(1).addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				updateButtons();
+			}
+			
+			public void widgetDefaultSelected(SelectionEvent e) {
+				//do nothing
+			}
+		});
+		return root;
+	}
+	
+	protected void viewerSelectionChanged() {
+		updateButtons();
+	}
+	
+	protected void updateButtons() {
+		if(!addButton.isEnabled()) {
+			removeButton.setEnabled(false);
+			moveUpButton.setEnabled(false);
+			moveDownButton.setEnabled(false);
+		} else {
+			int index = manifestEntryViewer.getTable().getSelectionIndex();
+			int size = manifestEntryViewer.getTable().getItems().length;
+			boolean sorted = manifestEntryViewer.getTable().getSortDirection() != SWT.NONE;
+			removeButton.setEnabled(index != -1);
+			moveUpButton.setEnabled(index != -1 && index != 0 && !sorted);
+			moveDownButton.setEnabled(index != -1 && index != size-1 && !sorted);
+		}
+	}
+	
+	protected void moveUp() {
+		int index = manifestEntryViewer.getTable().getSelectionIndex();
+		IVirtualReference ref = list.remove(index);
+		list.add(index-1,ref);
+		refreshViewer();
+		updateButtons();
+	}
+	protected void moveDown() {
+		int index = manifestEntryViewer.getTable().getSelectionIndex();
+		IVirtualReference ref = list.remove(index);
+		list.add(index+1,ref);
+		refreshViewer();
+		updateButtons();
+	}
+	
+	protected void addPressed() {
+		AddManifestEntryTaskWizard wizard = new AddManifestEntryTaskWizard();
+		wizard.getTaskModel().putObject(AddManifestEntryTaskWizard.CHILD_PROJECT, project);
+		wizard.getTaskModel().putObject(AddManifestEntryTaskWizard.PARENT_PROJECT, parentProject);
+		wizard.getTaskModel().putObject(AddManifestEntryTaskWizard.CURRENT_REFERENCES, list.toArray(new IVirtualReference[list.size()]));
+		WizardDialog wd = new WizardDialog(addButton.getShell(), wizard);
+		if( wd.open() != Window.CANCEL) {
+			IVirtualReference[] ret = (IVirtualReference[])wizard.getTaskModel().getObject(AddManifestEntryTaskWizard.RETURNED_REFERENCES);
+			if (ret != null)
+				list.addAll(Arrays.asList(ret));
+			refreshViewer();
+			updateButtons();
+		}
+	}
+
+	protected void removePressed() {
+		IStructuredSelection sel = (IStructuredSelection)manifestEntryViewer.getSelection();
+		Iterator i = sel.iterator();
+		while(i.hasNext()) {
+			list.remove(i.next());
+		}
+		refreshViewer();
+		updateButtons();
+	}
+	
+	public static class ManifestLabelProvider extends BaseLabelProvider implements ITableLabelProvider {
+		private IVirtualComponentLabelProvider[] delegates;
+		protected void getDelegates() {
+			if( delegates == null )
+				delegates = DependencyPageExtensionManager.loadDelegates();
+		}
+		public Image getColumnImage(Object element, int columnIndex) {
+			getDelegates();
+			if( columnIndex == 1 ) {
+				if( element instanceof IVirtualReference ) {
+					for( int i = 0; i < delegates.length; i++ )
+						if( delegates[i].canHandle(((IVirtualReference)element).getReferencedComponent()))
+							return delegates[i].getSourceImage(((IVirtualReference)element).getReferencedComponent());
+				}
+			}
+			return ModuleCoreUIPlugin.getInstance().getImage("jar_obj");
+		}
+		
+		public String getColumnText(Object element, int columnIndex) {
+			if( element instanceof IVirtualReference ) {
+				IVirtualReference ref = (IVirtualReference)element;
+				if( columnIndex == 0 && ref.getArchiveName() != null) {
+					if(ref.getRuntimePath().toString().length() > 0)
+						return ref.getRuntimePath().append(ref.getArchiveName()).toString();
+					else
+						return ref.getArchiveName();
+				}
+				if( columnIndex == 1 )
+					return handleSourceText(ref.getReferencedComponent());
+			}
+			return null;
+		}
+		
+		private String handleSourceText(IVirtualComponent component) {
+			getDelegates();
+			for( int i = 0; i < delegates.length; i++ )
+				if( delegates[i].canHandle(component))
+					return delegates[i].getSourceText(component);
+
+			// default impl
+			if( component.isBinary() ) {
+				IPath p = (IPath)component.getAdapter(IPath.class);
+				return p == null ? null : p.toString();
+			}
+			return component.getProject().getName();
+		}
+	}
+	
+	
+	private class ManifestContentProvider implements IStructuredContentProvider {
+		public void dispose() {
+		}
+		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		}
+		public Object[] getElements(Object inputElement) {
+			return refsForCurrentProject == null ? new Object[]{} : refsForCurrentProject;
+		}
+	}
+	
+	/**
+	 * Provides three possible sorts for each column based on the text labels.
+	 * First click on any column will enable forward sorting for that column,
+	 * second click on a column will enable backwards sorting, and third click
+	 * will disable sorting.
+	 * @author jsholl
+	 */
+	private static class TableViewerColumnSortToggler {
+		private int sortDirection = 0;
+		private int sortColumn = 0;
+		private TableViewer tableViewer;
+		
+		private TableViewerColumnSortToggler(TableViewer tableViewer){
+			this.tableViewer = tableViewer;
+		}
+		
+		private void toggleSort(int column){
+			if(sortColumn == column){
+				//cycle through sort options
+				switch(sortDirection){
+				case SWT.NONE:
+					sortDirection = SWT.UP;
+					break;
+				case SWT.UP:
+					sortDirection = SWT.DOWN;
+					break;
+				case SWT.DOWN:
+					sortDirection = SWT.NONE;
+					break;
+				}
+			} else {
+				//clicked on a different column reset cycle
+				sortColumn = column;
+				sortDirection = SWT.UP;
+			}
+			
+			ViewerComparator comparator = getViewerComparator(column, sortDirection);
+			tableViewer.setComparator(comparator);
+			
+			Table table = tableViewer.getTable();
+			TableColumn sortColumn = tableViewer.getTable().getColumn(column);
+			table.setSortColumn(sortColumn);
+			table.setSortDirection(sortDirection);
+		}
+		
+		private ViewerComparator getViewerComparator(final int columnIndex, final int sortDirection) {
+			if(sortDirection == SWT.NONE){
+				return null;
+			}
+			return new ViewerComparator() {
+				Collator collator = Collator.getInstance();
+				public int compare(Viewer viewerLocal, Object e1, Object e2) {
+					IBaseLabelProvider baseLabelProvider = tableViewer.getLabelProvider();
+					if(baseLabelProvider instanceof ITableLabelProvider){
+						ITableLabelProvider tableLabelProvider = (ITableLabelProvider)baseLabelProvider;
+						String text1 = tableLabelProvider.getColumnText(e1, columnIndex);
+						if(text1 != null){
+							String text2 = tableLabelProvider.getColumnText(e2, columnIndex);
+							int comp = collator.compare(text1, text2);
+							if(sortDirection == SWT.DOWN){
+								comp = -comp;
+							}
+							return comp;
+						}
+					}
+					return 0;
+				}
+			};
+		}
+	};
+	
+	public static TableViewer createManifestReferenceTableViewer(Composite parent, int style) {
+		int flags = SWT.BORDER | style;
+
+		Table table = new Table(parent, flags);
+		TableViewer viewer = new TableViewer(table);
+		final TableViewerColumnSortToggler sortController = new TableViewerColumnSortToggler(viewer);
+		
+		// set up table layout
+		TableLayout tableLayout = new org.eclipse.jface.viewers.TableLayout();
+		tableLayout.addColumnData(new ColumnWeightData(200, true));
+		tableLayout.addColumnData(new ColumnWeightData(200, true));
+		table.setLayout(tableLayout);
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+		
+		// table columns
+		TableColumn fileNameColumn = new TableColumn(table, SWT.NONE, 0);
+		fileNameColumn.setText(Messages.ManifestEntryColumn);
+		fileNameColumn.setResizable(true);
+		fileNameColumn.addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				sortController.toggleSort(0);
+			}
+			public void widgetDefaultSelected(SelectionEvent e) {
+				//do nothing
+			}
+		});
+
+		TableColumn projectColumn = new TableColumn(table, SWT.NONE, 1);
+		projectColumn.setText(Messages.ManifestEntrySourceColumn);
+		projectColumn.setResizable(true);
+		projectColumn.addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				sortController.toggleSort(1);
+			}
+			public void widgetDefaultSelected(SelectionEvent e) {
+				//do nothing
+			}
+		});
+		
+		tableLayout.layout(table, true);
+		return viewer;
+	}
+
+	private IVirtualReference[] refsForCurrentProject;
+	protected void refreshViewerFromNewParentProject() {
+		list.clear();
+		String parentString = parentSelection.getText();
+		refsForCurrentProject = new IVirtualReference[]{};
+		if( parentString != null && !"".equals(parentString)) { //$NON-NLS-1$
+			parentProject = ResourcesPlugin.getWorkspace().getRoot().getProject(parentString);
+			IVirtualReference[] current  = JavaModuleComponentUtility.findCurrentManifestEntries(parentProject, project);
+			refsForCurrentProject = sortRefsForCurrentProject(addMissingDummyEntries(current));
+			for( int i = 0; i < refsForCurrentProject.length; i++ ) {
+				list.add(refsForCurrentProject[i]);
+			}
+		}
+		manifestEntryViewer.refresh();
+	}
+	
+	private IVirtualReference[] sortRefsForCurrentProject(IVirtualReference[] currentRefs) {
+		IFile manifestFile = getManifestIFile(rootComponent);
+		if (manifestFile == null)
+			return currentRefs;
+		
+		HashMap<String, IVirtualReference> unsortedRefMap = new HashMap<String, IVirtualReference>();
+		for (int i = 0; i < currentRefs.length; i++) {
+			IVirtualReference ref = currentRefs[i];
+			String entryName;
+			if(ref.getRuntimePath().toString().length() > 0)
+				entryName = ref.getRuntimePath().append(ref.getArchiveName()).toString();
+			else
+				entryName = ref.getArchiveName();
+			unsortedRefMap.put(entryName, ref);
+		}
+		List<IVirtualReference> sortedRefs = new ArrayList<IVirtualReference>();
+		ArchiveManifest manifest = ManifestUtilities.getManifest(manifestFile);
+		String[] entries = manifest.getClassPathTokenized();
+		for (int i = 0; i < entries.length; i++) {
+			IVirtualReference ref = unsortedRefMap.get(entries[i]);
+			if (ref != null) {
+				sortedRefs.add(ref);
+			}
+		}
+		return sortedRefs.toArray(new IVirtualReference[sortedRefs.size()]);
+	}
+	
+	protected void refreshViewer() {
+		refsForCurrentProject = list.toArray(new IVirtualReference[list.size()]);
+		GridData data = new GridData(GridData.FILL_BOTH);
+		int numlines = Math.min(10, manifestEntryViewer.getTable().getItemCount());
+		data.heightHint = manifestEntryViewer.getTable().getItemHeight() * numlines;
+		manifestEntryViewer.getTable().setLayoutData(data);
+		manifestEntryViewer.refresh();
+	}
+	
+	protected IVirtualReference[] addMissingDummyEntries(IVirtualReference[] current) {
+		IFile manifestFile = getManifestIFile(rootComponent);
+		if( manifestFile != null ) {
+			ArrayList<IVirtualReference> refs = new ArrayList<IVirtualReference>();
+			refs.addAll(Arrays.asList(current));
+			ArchiveManifest manifest = ManifestUtilities.getManifest(manifestFile);
+			String[] entries = manifest.getClassPathTokenized();
+			String[] unusedEntries = findUnusedEntries(current, entries);
+			for( int i = 0; i < unusedEntries.length; i++ ) {
+				refs.add(createDummyReference(unusedEntries[i]));
+			}
+			return refs.toArray(new IVirtualReference[refs.size()]);
+		}
+		return current;
+	}
+	
+	
+	public static class DummyVirtualComponent extends AbstractResourceListVirtualComponent {
+		private static final String DUMMY_FIRST_SEGMENT = "dummyVirtualComponent"; //$NON-NLS-1$
+		public DummyVirtualComponent(IProject p, IVirtualComponent referencingComponent) {
+			super(p, referencingComponent);
+		}
+
+		protected String getFirstIdSegment() {
+			return DUMMY_FIRST_SEGMENT;
+		}
+
+		protected IContainer[] getUnderlyingContainers() {
+			return new IContainer[]{};
+		}
+
+		protected IResource[] getLooseResources() {
+			return new IResource[]{};
+		}
+	}
+	
+	private IVirtualReference createDummyReference(String path) {
+		return createDummyReference(path, parentProject, ComponentCore.createComponent(parentProject));
+	}
+	
+	public static IVirtualReference createDummyReference(String path, IProject project, IVirtualComponent rootComponent) {
+		IVirtualComponent comp = new DummyVirtualComponent(project, rootComponent);
+		IVirtualReference ref = ComponentCore.createReference(rootComponent, comp);
+		if(path.indexOf("\\") > 0) {
+			ref.setRuntimePath(new Path(""));
+			ref.setArchiveName(path);
+			return ref;
+		}
+		IPath path2 = new Path(path.trim());
+		IPath runtimePath = path2.segmentCount() > 1 ? path2.removeLastSegments(1) : new Path("/"); //$NON-NLS-1$
+		runtimePath = runtimePath.makeRelative();
+		ref.setRuntimePath(runtimePath);
+		ref.setArchiveName(path2.lastSegment());
+		return ref;
+	}
+	
+	private String[] findUnusedEntries(IVirtualReference[] current, String[] entries) {
+		ArrayList<String> list = new ArrayList<String>();
+		list.addAll(Arrays.asList(entries));
+		for( int i = 0; i < current.length; i++ ) {
+			String currentEntry = current[i].getRuntimePath().append(current[i].getArchiveName()).toString();
+			list.remove(currentEntry);
+		}
+		return list.toArray(new String[list.size()]);
+	}
+	
+	/**
+	 * Clients who find this unacceptable should override
+	 * @param root
+	 * @return
+	 */
+	public IFile getManifestIFile(IVirtualComponent root) {
+		IVirtualFolder rootFolder = root.getRootFolder();
+		IVirtualFile vf = rootFolder.getFile(new Path("META-INF/MANIFEST.MF"));
+		if( vf.exists() )
+			return vf.getUnderlyingFile();
+		return null;
+	}
+	
+	protected String[] getPossibleParentProjects() {
+		IProject[] projects = JavaModuleComponentUtility.findParentProjects(project);
+		String[] strings = new String[projects.length];
+		for( int i = 0; i < projects.length; i++ ) {
+			strings[i] = projects[i].getName();
+		}
+		return strings;
+	}
+
+
+	public boolean performOk() {
+		if(addButton != null && addButton.isEnabled()) {
+			IDataModel updateManifestDataModel = DataModelFactory.createDataModel(new UpdateManifestDataModelProvider());
+			updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.PROJECT_NAME, project.getName());
+			updateManifestDataModel.setBooleanProperty(UpdateManifestDataModelProperties.MERGE, false);
+			updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.MANIFEST_FILE, getManifestIFile(rootComponent));
+			ArrayList<String> asStrings = new ArrayList<String>();
+			Iterator<IVirtualReference> i = list.iterator();
+			IVirtualReference tmp;
+			while(i.hasNext()) {
+				tmp = i.next();
+				if(tmp.getArchiveName() != null) {
+					if(tmp.getRuntimePath().toString().length() > 0 )
+						asStrings.add(tmp.getRuntimePath().append(tmp.getArchiveName()).toString());
+					else
+						asStrings.add(tmp.getArchiveName());
+				}
+			}
+			updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.JAR_LIST, asStrings);
+			try {
+				updateManifestDataModel.getDefaultOperation().execute(new NullProgressMonitor(), null );
+			} catch (ExecutionException e) {
+				// TODO log J2EEUIPlugin.logError(e);
+			}
+		}
+
+		return true;
+	}
+
+	public void performDefaults() {
+		refreshViewerFromNewParentProject();
+	}
+
+	public boolean performCancel() {
+		return false;
+	}
+
+	public void setVisible(boolean visible) {
+	}
+
+	public void dispose() {
+	}
+
+	public void performApply() {
+		IFile manifest = getManifestIFile(rootComponent);
+		if(manifest == null) {
+			previousManifest = null;
+			addButton.setEnabled(false);
+			performDefaults();
+		} else {
+			if(previousManifest == null) {
+				performDefaults();
+			} else {
+				String currentManifest = manifest.getFullPath().toOSString();
+				if(!previousManifest.equals(currentManifest)) {
+					performDefaults();
+				}
+			}
+			previousManifest = manifest.getFullPath().toOSString();
+			addButton.setEnabled(true);
+			
+		}
+		updateButtons();
+		performOk();
+	}
+
+}
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/VariableReferenceWizardFragment.java b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/VariableReferenceWizardFragment.java
new file mode 100644
index 0000000..283cdcc
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/assembly/wizard/VariableReferenceWizardFragment.java
@@ -0,0 +1,300 @@
+/******************************************************************************
+ * Copyright (c) 2010 Red Hat and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - misc. UI cleanup
+ ******************************************************************************/
+
+package org.eclipse.jst.common.ui.internal.assembly.wizard;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.zip.ZipException;
+import java.util.zip.ZipFile;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jdt.internal.ui.wizards.buildpaths.CPVariableElement;
+import org.eclipse.jdt.internal.ui.wizards.buildpaths.CPVariableElementLabelProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jst.common.ui.internal.IJstCommonUIContextIds;
+import org.eclipse.jst.common.ui.internal.JstCommonUIPlugin;
+import org.eclipse.jst.common.ui.internal.Messages;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualReference;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.IWizardHandle;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.WizardFragment;
+import org.eclipse.wst.common.componentcore.ui.propertypage.IReferenceWizardConstants;
+
+public class VariableReferenceWizardFragment extends WizardFragment {
+	protected LabelProvider labelProvider = null;
+	protected ITreeContentProvider contentProvider = null;
+	protected TreeViewer viewer;
+	protected IPath[] paths;
+	protected IWizardHandle handle;
+	protected Object selected = null;
+	boolean isComplete = false;
+
+	public boolean isComplete() {
+		return isComplete;
+	}
+	
+	public boolean hasComposite() {
+		return true;
+	}
+
+	@Override
+	public Composite createComposite(Composite parent, IWizardHandle handle) {
+		this.handle = handle;
+		handle.setTitle(Messages.VariableReferenceTitle);
+		handle.setDescription(Messages.VariableReferenceDescription);
+		handle.setImageDescriptor(JavaPluginImages.DESC_WIZBAN_ADD_LIBRARY);
+				
+		Composite c = new Composite(parent, SWT.NONE);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IJstCommonUIContextIds.DEPLOYMENT_ASSEMBLY_NEW_VARIABLE_REFERENCE_P1);
+		c.setLayout(new FormLayout());
+		viewer = new TreeViewer(c, SWT.SINGLE | SWT.BORDER);
+		viewer.setContentProvider(getContentProvider());
+		viewer.setLabelProvider(getLabelProvider());
+		viewer.setInput(ResourcesPlugin.getWorkspace());
+		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				handleNewSelection();
+			}
+		});
+		FormData fd = new FormData();
+		fd.width = 390;
+		fd.height = 185;
+		fd.left = new FormAttachment(0, 5);
+		fd.top = new FormAttachment(0, 5);
+		fd.right = new FormAttachment(100, -5);
+		fd.bottom = new FormAttachment(100, -5);
+		viewer.getTree().setLayoutData(fd);
+		return c;
+	}
+	
+	protected void handleNewSelection() {
+		isComplete = true;
+		IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
+		Object o = sel.getFirstElement();
+		if( o == null ) {
+			isComplete = false;
+			selected = null;
+		} else {
+			selected = o;
+			IPath p = null;
+			if( o instanceof CPVariableElement) {
+				p = ((CPVariableElement)o).getPath();
+			} else if( o instanceof ExtendedVariable) {
+				p = ((ExtendedVariable)o).element.getPath().append(((ExtendedVariable)o).pathAfterElement);
+			}
+			if(p == null || p.isEmpty() || p.toFile().isDirectory() || !isValidArchive(p)) {
+				isComplete = false;
+			}
+		}
+		handle.update();
+	}
+	
+	protected LabelProvider getLabelProvider() {
+		if (labelProvider == null) {
+			labelProvider= new VariablesLabelProvider();
+		}
+		return labelProvider;
+	}
+	
+	public static class VariablesLabelProvider extends LabelProvider {
+		private CPVariableElementLabelProvider delegate = new CPVariableElementLabelProvider(false);
+		public Image getImage(Object element) {
+			if( element instanceof CPVariableElement)
+				return delegate.getImage(element);
+			if( element instanceof ExtendedVariable) {
+				if(((ExtendedVariable)element).isFolder()) 
+					return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
+				return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
+			}
+			return null;
+		}
+		public String getText(Object element) {
+			if( element instanceof CPVariableElement)
+				return delegate.getText(element);
+			if( element instanceof ExtendedVariable) 
+				return ((ExtendedVariable)element).pathAfterElement.lastSegment();
+			return element == null ? "" : element.toString();//$NON-NLS-1$
+		}	
+	}
+	
+	public static class ExtendedVariable {
+		public CPVariableElement element;
+		public IPath pathAfterElement;
+		public ExtendedVariable(CPVariableElement e, IPath p) {
+			element = e;
+			pathAfterElement = p;
+		}
+		public boolean isFolder() {
+			return element.getPath().append(pathAfterElement).toFile().isDirectory();
+		}
+	}
+	
+	private CPVariableElement[] elements;
+	private CPVariableElement[] initializeElements() {
+		String[] entries= JavaCore.getClasspathVariableNames();
+		ArrayList elements= new ArrayList(entries.length);
+		for (int i= 0; i < entries.length; i++) {
+			String name= entries[i];
+			IPath entryPath= JavaCore.getClasspathVariable(name);
+			if (entryPath != null) {
+				elements.add(new CPVariableElement(name, entryPath));
+			}
+		}
+		return (CPVariableElement[]) elements.toArray(new CPVariableElement[elements.size()]);
+	}
+
+	
+	protected ITreeContentProvider getContentProvider() {
+		if (contentProvider == null) {
+			contentProvider = new ITreeContentProvider() {
+				public Object[] getElements(Object inputElement) {
+					if( elements == null )
+						elements = initializeElements();
+					return elements;
+				}
+				public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+				}
+				public void dispose() {
+				}
+				public boolean hasChildren(Object element) {
+					return getChildren(element).length > 0;
+				}
+				public Object getParent(Object element) {
+					return null;
+				}
+				public Object[] getChildren(Object parentElement) {
+					if( parentElement instanceof CPVariableElement) {
+						if(((CPVariableElement)parentElement).getPath().toFile().isDirectory()) {
+							String[] names = ((CPVariableElement)parentElement).getPath().toFile().list();
+							ExtendedVariable[] extensions = new ExtendedVariable[names.length];
+							for( int i = 0; i < extensions.length; i++ )
+								extensions[i] = new ExtendedVariable((CPVariableElement)parentElement, new Path(names[i]));
+							return extensions;
+						}
+					}
+					if( parentElement instanceof ExtendedVariable) {
+						ExtendedVariable p1 = (ExtendedVariable)parentElement;
+						IPath parentLoc = p1.element.getPath();
+						parentLoc = parentLoc.append(p1.pathAfterElement);
+						String[] names = parentLoc.toFile().list();
+						if( names != null ) {
+							ExtendedVariable[] extensions = new ExtendedVariable[names.length];
+							for( int i = 0; i < extensions.length; i++ )
+								extensions[i] = new ExtendedVariable(p1.element, p1.pathAfterElement.append(names[i]));
+							return extensions;
+						}
+					}
+					return new Object[]{};
+				}
+			};
+		}
+		return contentProvider;
+	}
+
+	public void performFinish(IProgressMonitor monitor) throws CoreException {
+		IVirtualComponent rootComponent = (IVirtualComponent)getTaskModel().getObject(IReferenceWizardConstants.ROOT_COMPONENT);
+		String runtimeLoc = (String)getTaskModel().getObject(IReferenceWizardConstants.DEFAULT_LIBRARY_LOCATION);
+		if (selected != null ) {
+			ArrayList<IVirtualReference> refList = new ArrayList<IVirtualReference>();
+//			for (int i = 0; i < selected.length; i++) {
+				IPath variablePath = getVariablePath(selected);
+				IPath resolvedPath = JavaCore.getResolvedVariablePath(variablePath);
+				java.io.File file = new java.io.File(resolvedPath.toOSString());
+				if (file.isFile() && file.exists()) {
+					String type = VirtualArchiveComponent.VARARCHIVETYPE
+							+ IPath.SEPARATOR;
+					IVirtualComponent archive = ComponentCore
+							.createArchiveComponent(rootComponent.getProject(),
+									type + variablePath.toString());
+					VirtualReference ref = new VirtualReference(rootComponent, archive);
+					ref.setArchiveName(resolvedPath.lastSegment());
+					if (runtimeLoc != null) {
+						ref.setRuntimePath(new Path(runtimeLoc).makeAbsolute());
+					}
+					refList.add(ref);
+				}
+//			}
+			IVirtualReference[] finalRefs = refList.toArray(new IVirtualReference[refList.size()]);
+			getTaskModel().putObject(IReferenceWizardConstants.FINAL_REFERENCE, finalRefs);
+		}
+	}
+	
+	private IPath getVariablePath(Object selected) {
+		if( selected instanceof ExtendedVariable) {
+			ExtendedVariable s1 = (ExtendedVariable)selected;
+			return new Path(s1.element.getName()).append(s1.pathAfterElement);
+		}
+		return new Path(((CPVariableElement)selected).getName());
+	}
+	
+	private boolean isValidArchive(IPath path) {
+		boolean valid = true;
+		ZipFile zipFile = null;
+		try {
+			String osPath = null;
+			if(path.segmentCount() > 1){
+				IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+				if(file.exists()) {
+					IPath loc = file.getLocation();
+					if(loc != null) { 
+						osPath = loc.toOSString();
+					}
+				}
+			}
+			if(osPath == null){
+				osPath = path.toOSString();
+			}
+			zipFile = new ZipFile(new File(osPath));
+		} catch (ZipException e1){
+			valid = false;
+		} catch (IOException e2){
+			valid = false;
+		}finally {
+			if (zipFile != null){
+				try {
+					zipFile.close();
+				} catch (IOException e) {
+					JstCommonUIPlugin.getDefault().getLog().log(new Status(IStatus.ERROR, JstCommonUIPlugin.PLUGIN_ID, e.getMessage(), e));
+				}
+			}
+		}
+		return valid;
+	}
+}
diff --git a/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/messages.properties b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/messages.properties
new file mode 100644
index 0000000..82ed8ed
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.ui/src/org/eclipse/jst/common/ui/internal/messages.properties
@@ -0,0 +1,21 @@
+ArchiveTitle=Archives from Workspace
+ArchiveDescription=Select archives to include in the deployment assembly.
+ArchiveDialogNewTitle=Archive Selection
+ArchiveDialogNewDescription=&Select archives to include in the deployment assembly:
+ExternalArchiveTitle=Archives from File System
+ExternalArchiveDescription=Select archives to include in the deployment assembly.
+Browse=Br&owse...
+VariableReferenceTitle=Archive via Path Variable
+VariableReferenceDescription=Select archive to include in the deployment assembly.
+AddManifestEntryTaskWizardTitle=Add Manifest Entries
+AddManifestEntryTaskWizardDesc=Add manifest entries that should be accessible at runtime.
+ParentProject=&Parent project: 
+CustomEntryButton=&Add Custom Entry
+Add=A&dd...
+Remove=&Remove
+MoveUp=Move &Up
+MoveDown=Move Do&wn
+ManifestEntryColumn=Manifest Entry
+ManifestEntrySourceColumn=Source
+ConfigureParentLink=Configure available manifest entries...
+InvalidArchivesWarning=The following files were not added because they are not archive files or are corrupted: 
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.core/META-INF/MANIFEST.MF
index b0042d8..a1e6e2f 100644
--- a/plugins/org.eclipse.wst.common.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.common.core; singleton:=true
-Bundle-Version: 1.1.101.qualifier
+Bundle-Version: 1.2.0.qualifier
 Bundle-Activator: org.eclipse.wst.common.core.search.SearchPlugin
 Bundle-Localization: plugin
 Export-Package: org.eclipse.wst.common.core.search,
@@ -10,7 +10,8 @@
  org.eclipse.wst.common.core.search.internal;x-internal:=true,
  org.eclipse.wst.common.core.search.pattern,
  org.eclipse.wst.common.core.search.scope,
- org.eclipse.wst.common.core.search.util
+ org.eclipse.wst.common.core.search.util,
+ org.eclipse.wst.common.core.util
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)"
diff --git a/plugins/org.eclipse.wst.common.core/about.html b/plugins/org.eclipse.wst.common.core/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.core/about.html
+++ b/plugins/org.eclipse.wst.common.core/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.core/plugin.xml b/plugins/org.eclipse.wst.common.core/plugin.xml
index c82f6a0..5d2a621 100644
--- a/plugins/org.eclipse.wst.common.core/plugin.xml
+++ b/plugins/org.eclipse.wst.common.core/plugin.xml
@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.0"?>
 <plugin>
-   <extension-point id="searchParticipants" name="%searchParticipants" />      
+   <extension-point id="searchParticipants" name="%searchParticipants" />
+   <extension-point id="uiTester" name="UI Tester" schema="schema/uiTester.exsd"/>
+   <extension-point id="uiContextSensitiveClass" name="UI Context Sensitive Class" schema="schema/uiContextSensitiveClass.exsd"/>
 </plugin>
 
 
diff --git a/plugins/org.eclipse.wst.common.core/schema/uiContextSensitiveClass.exsd b/plugins/org.eclipse.wst.common.core/schema/uiContextSensitiveClass.exsd
new file mode 100644
index 0000000..c18cf1a
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.core/schema/uiContextSensitiveClass.exsd
@@ -0,0 +1,165 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.wst.common.core" id="uiContextSensitiveClass" name="UI Context Sensitive Class"/>
+      </appinfo>
+      <documentation>
+         Components are often designed in such a way that the &quot;Headless&quot; or non-graphical portions are separate from the Graphical User Interface (GUI) portions. Sometimes this is done to follow good design principles, other times there is a specific use case for doing so. When plugins follow this practice because they must vary their behavior based on whether they are running in a headless environment or a graphical environment, they often need to choose the correct implementation of a particular type. The org.eclipse.wst.common.core.uiContextSensitiveClass extension point provided by the WST component solves exactly this problem.
+&lt;p&gt;    
+To use the extension point, you must provide two extensions that are linked by a key. The key is a unique String-based value that you will later use to instanitate your class.
+&lt;p&gt;
+The first usage of the extension specifies your key, and the Headless context, and the class that should be instantiated for this (key, context) pair. This means in the headless environment this class will be instantiated when requested.
+&lt;p&gt;
+The second extension specifies the UI context and the same key, but a different implementation designed for graphical environments. This means in the UI environment this other class will be instantiated when requested.
+&lt;p&gt;
+The actual request is done in your code via:
+&lt;pre&gt;
+IMyInterface instance = (IMyInterface) UIContextDetermination.createInstance(&quot;myKey&quot;);
+&lt;/pre&gt;
+where &lt;code&gt;&quot;myKey&quot;&lt;/code&gt; is the key used on both extensions. It will then choose either the UI or the Headless extension depending upon the context.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="uiContextSensitiveClass" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="uiContextSensitiveClass">
+      <annotation>
+         <documentation>
+            An extension point that defines an instance of a class and its appropriate context (UI or Headless)
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="key" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The key that should be used to create an instance of the Context Sensitive super class/interface.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="className" type="string" use="required">
+            <annotation>
+               <documentation>
+                  A concrete implementation for either a UI or Headless context.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="context" use="required">
+            <annotation>
+               <documentation>
+                  One of &quot;UI&quot; or &quot;Headless&quot; This is case-sensitive. It must match exactly as shown here.
+               </documentation>
+            </annotation>
+            <simpleType>
+               <restriction base="string">
+                  <enumeration value="UI">
+                  </enumeration>
+                  <enumeration value="Headless">
+                  </enumeration>
+               </restriction>
+            </simpleType>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiInfo"/>
+      </appinfo>
+      <documentation>
+         See &lt;code&gt;org.eclipse.wst.common.core.util.UIContextDetermination&lt;/code&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         6.0
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         Usage for the UI context:
+&lt;pre&gt;
+   &lt;extension
+       id=&quot;context.Sensitive.Class.workingCopyManager&quot;
+       name=&quot;Working Copy Manager - UI Context Class&quot;
+       point=&quot;org.eclipse.wst.common.core.ContextSensitiveClass&quot;&gt;
+     &lt;uiContextSensitiveClass
+       context=&quot;UI&quot;
+       key=&quot;workingCopyManager&quot;
+       className=&quot;com.ibm.wtp.common.ui.WTPUIWorkingCopyManager&quot;/&gt;
+   &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;br&gt;
+Usage for the Headless context:
+&lt;pre&gt;
+   &lt;extension
+       id=&quot;context.Sensitive.Class.workingCopyManager&quot;
+       name=&quot;Working Copy Manager - Headless Context Class&quot;
+       point=&quot;org.eclipse.wst.common.core.ContextSensitiveClass&quot;&gt;
+     &lt;uiContextSensitiveClass
+         context=&quot;Headless&quot;
+         key=&quot;workingCopyManager&quot;
+         className=&quot;com.ibm.wtp.common.ui.WTPHeadlessWorkingCopyManager&quot;/&gt;
+   &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;br&gt;
+And finally the retrieval of the class for the current context:
+
+&lt;pre&gt;
+IWorkingCopyManager manager = (IWorkingCopyManager) UIContextDetermination.createInstance(&quot;workingCopyManager&quot;);
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+
+   <annotation>
+      <appinfo>
+         <meta.section type="copyright"/>
+      </appinfo>
+      <documentation>
+         Copyright (c) IBM 2003.
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/plugins/org.eclipse.wst.common.core/schema/uiTester.exsd b/plugins/org.eclipse.wst.common.core/schema/uiTester.exsd
new file mode 100644
index 0000000..df8bb48
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.core/schema/uiTester.exsd
@@ -0,0 +1,133 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.wst.common.core" id="uiTester" name="UI Tester"/>
+      </appinfo>
+      <documentation>
+         This is used to tell WST that it is running in a non-HEADLESS environment. Typically UI environment is non-HEADLESS. The default if there are no implementers of this extension point that return true is HEADLESS.
+&lt;p&gt;
+A HEADLESS environment is typically a batch situation where there is no UI and the workspace is used for one operation and then terminated. Most headless tasks are done under one operation and the JavaReflectionSynchronizer may not have a chance to flush a bad reflection before the real type needs to be found and can be found. So what would happen is if a class was created during this one operation it would not be found because the notifications had not yet gone out. 
+&lt;p&gt;
+In a UI environment the operations are typically short and do only a few things and the results aren&apos;t needed until after the operation has completed. In that case it is more efficient to not keep checking if a class has appeared everytime a request is made, instead it will wait for the notification of the added class to appear before resetting the definition to allow checking again later.
+&lt;p&gt;
+If there is more than one implementer of this interface in the application, then it will go through each of them once until one returns true. As soon as one returns true it will stop and mark the application as being non-HEADLESS. This will be done only once for the application. It will not be again until the next session of the application.
+&lt;p&gt;
+This is typically an internal extension point only. The WST UI plugin will provide an implementation that will return true if the Platform UI is active. So this will normally not be needed to be implemented by most customers.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="uiTester"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="uiTester">
+      <annotation>
+         <documentation>
+            The uiTester definition element.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="className" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The class name of the UITester for this extension. It must implement &lt;samp&gt;org.eclipse.wst.common.core.util.UITester&lt;/samp&gt;.
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.core.util.UITester"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiInfo"/>
+      </appinfo>
+      <documentation>
+         The &lt;samp&gt;className&lt;/samp&gt; attribute must be a fully-qualified class that implements the &lt;samp&gt;org.eclipse.wst.common.core.util.UITester&lt;/samp&gt; interface for the tester.
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         1.0.0
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         The following is an example of an implementer: 
+
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.wst.common.core.uiTester&quot;&gt;
+  &lt;uiTester
+   className=&quot;com.example.UITesterImplementation&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         There is no default implementation for this class.
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="copyright"/>
+      </appinfo>
+      <documentation>
+         Copyright (c) 2004, 2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at 
+&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchPlugin.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchPlugin.java
index cf7a9fc..5d8c303 100644
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchPlugin.java
+++ b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchPlugin.java
@@ -13,7 +13,11 @@
 
 import java.util.Map;
 
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.wst.common.core.search.internal.SearchParticipantRegistry;
 import org.eclipse.wst.common.core.search.internal.SearchParticipantRegistryReader;
 import org.eclipse.wst.common.core.search.pattern.SearchPattern;
@@ -30,6 +34,21 @@
  */
 public class SearchPlugin extends Plugin implements ISearchOptions
 {
+	//the ID for this plugin (added automatically by logging quickfix)
+	public static final String PLUGIN_ID = "org.eclipse.wst.common.core"; //$NON-NLS-1$
+
+	/**
+	 * UI Context extension point.
+	 * 
+	 * @since 1.0.0
+	 */
+	public static final String UI_CONTEXT_EXTENSION_POINT = "uiContextSensitiveClass"; //$NON-NLS-1$
+	/**
+	 * UITester element name.
+	 * 
+	 * @since 1.0.0
+	 */
+	public static final String UI_TESTER_EXTENSION_POINT = "uiTester"; //$NON-NLS-1$
 
 	private SearchParticipantRegistry searchParticipantRegistry;
 
@@ -100,4 +119,31 @@
 		return getSearchParticipantRegistry().getParticipants(pattern, searchOptions);
 	}
 
+	public static IStatus createStatus(int severity, String message, Throwable exception) {
+		return new Status(severity, PLUGIN_ID, message, exception);
+	}
+
+	public static IStatus createStatus(int severity, String message) {
+		return createStatus(severity, message, null);
+	}
+
+	public static void logError(Throwable exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, exception.getMessage(), exception));
+	}
+
+	public static void logError(CoreException exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( exception.getStatus() );
+	}
+
+	public static void logWarning(String message) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log(createStatus(IStatus.WARNING, message));
+	}
+
+	public static void logWarning(Throwable exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.WARNING, exception.getMessage(), exception));
+	}
+
+	public static void logError(String message) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, message));
+	}
 }
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/util/RegistryReader.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/util/RegistryReader.java
new file mode 100644
index 0000000..abf3e2b
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/util/RegistryReader.java
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.core.util;
+import org.eclipse.core.runtime.*;
+import org.eclipse.wst.common.core.search.SearchPlugin;
+import org.osgi.framework.Bundle;
+
+
+/**
+ * Class to read a registry. It is meant to be subclassed to provide specific function.
+ * 
+ * @since 1.0.0
+ */
+public abstract class RegistryReader {
+
+	private static final String JEM_PLUGIN_ID = "org.eclipse.jem.util"; //$NON-NLS-1$
+	
+	String pluginId;
+
+	String extensionPointId;
+
+	private static Bundle systemBundle;
+
+	/**
+	 * Utility method to get the plugin id of a configuation element
+	 * 
+	 * @param configurationElement
+	 * @return plugin id of configuration element
+	 * @since 1.0.0
+	 */
+	public static String getPluginId(IConfigurationElement configurationElement) {
+		String pluginId = null;
+
+		if (configurationElement != null) {
+			IExtension extension = configurationElement.getDeclaringExtension();
+
+			if (extension != null)
+				pluginId = extension.getContributor().getName();
+		}
+
+		return pluginId;
+	}
+
+	/**
+	 * Constructor for RegistryReader taking a registry, plugin id, and extension point id.
+	 * 
+	 * @param registry
+	 * @param pluginID
+	 * @param extensionPoint
+	 * 
+	 * @deprecated Use RegistryReader(plugin, extensionPoint) instead. The registry passed in is ignored.
+	 * @since 1.0.0
+	 */
+	public RegistryReader(IPluginRegistry registry, String pluginID, String extensionPoint) {
+		this(pluginID, extensionPoint);
+	}
+
+	/**
+	 * Constructor for RegistryReader taking the plugin id and extension point id.
+	 * 
+	 * @param pluginID
+	 * @param extensionPoint
+	 * 
+	 * @since 1.0.0
+	 */
+	public RegistryReader(String pluginID, String extensionPoint) {
+		super();
+		this.pluginId = pluginID;
+		extensionPointId = extensionPoint;
+	}
+
+	private void internalReadElement(IConfigurationElement element) {
+		boolean recognized = this.readElement(element);
+		if (!recognized) {
+			logError(element, "Error processing extension: " + element); //$NON-NLS-1$
+		}
+	}
+
+	/*
+	 * Logs the error in the desktop log using the provided text and the information in the configuration element.
+	 */
+	protected void logError(IConfigurationElement element, String text) {
+		IExtension extension = element.getDeclaringExtension();
+		StringBuffer buf = new StringBuffer();
+		buf.append("Plugin " + extension.getContributor().getName() + ", extension " + extension.getExtensionPointUniqueIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
+		buf.append("\n" + text); //$NON-NLS-1$
+		SearchPlugin.logError(buf.toString());
+	}
+
+	/*
+	 * Logs a very common registry error when a required attribute is missing.
+	 */
+	protected void logMissingAttribute(IConfigurationElement element, String attributeName) {
+		logError(element, "Required attribute '" + attributeName + "' not defined"); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/*
+	 * Implement this method to read element attributes. If this element has subelements, the reader will recursively cycle through them and call this
+	 * method so don't do it here.
+	 */
+	public abstract boolean readElement(IConfigurationElement element);
+
+	/**
+	 * Read the extension point and parse it.
+	 * 
+	 * @since 1.0.0
+	 */
+	public void readRegistry() {
+		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(pluginId, extensionPointId);
+		if (point != null)
+		{
+			IConfigurationElement[] elements = point.getConfigurationElements();
+			for (int i = 0; i < elements.length; i++) {
+				internalReadElement(elements[i]);
+			}
+		}
+		// the following code is to handle the contributions to the deprecated org.eclipse.jem.util extensions
+		if (!JEM_PLUGIN_ID.equals(pluginId))
+		{
+			point = Platform.getExtensionRegistry().getExtensionPoint(JEM_PLUGIN_ID, extensionPointId);
+			if (point != null)
+			{
+				IConfigurationElement[] elements = point.getConfigurationElements();
+				for (int i = 0; i < elements.length; i++) {
+					internalReadElement(elements[i]);
+				}
+			}
+		}
+	}
+
+	/**
+	 * Tests to see if it is valid at this point in time to create an executable extension. A valid reason not to would be that the workspace is
+	 * shutting donw.
+	 * 
+	 * @param element
+	 * @return <code>true</code> if it is valid point to create an executable extension.
+	 * 
+	 * @since 1.0.0
+	 */
+	public static boolean canCreateExecutableExtension(IConfigurationElement element) {
+		if (Platform.isRunning() && getSystemBundle().getState() != Bundle.STOPPING)
+			return true;
+		return false;
+	}
+
+	/**
+	 * Get the system bundle
+	 * 
+	 * @return system bundle.
+	 * 
+	 * @since 1.0.0
+	 */
+	protected static Bundle getSystemBundle() {
+		if (systemBundle == null)
+			systemBundle = Platform.getBundle("org.eclipse.osgi"); //$NON-NLS-1$
+		return systemBundle;
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/util/UIContextDetermination.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/util/UIContextDetermination.java
new file mode 100644
index 0000000..69c0bbc
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/util/UIContextDetermination.java
@@ -0,0 +1,201 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.core.util;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.*;
+import org.eclipse.wst.common.core.search.SearchPlugin;
+
+
+/**
+ * Static utility class for UIContext determination.
+ * 
+ * @since 1.0.0
+ */
+public class UIContextDetermination {
+
+	private static final int UNKNOWN = 100;
+
+	public static final String HEADLESS_CONTEXT_LITERAL = "Headless"; //$NON-NLS-1$
+
+	public static final String UI_CONTEXT_LITERAL = "UI"; //$NON-NLS-1$
+
+	public static final int HEADLESS_CONTEXT = 102;
+
+	public static final int UI_CONTEXT = 101;
+
+	private static Map cachedExtensions = null;
+
+	private static int currentContext = UNKNOWN;
+
+	/**
+	 * Do not use- this class should not be instantiated, but should be accessed via its static methods only.
+	 */
+	protected UIContextDetermination() {
+	}
+
+	/**
+	 * Returns an instance of a given class based on the UI or Headless context.
+	 * 
+	 * @param key
+	 * @return new class instance for the given key.
+	 * @throws IllegalArgumentException
+	 *             If the key is invalid (e.g. no extension is found for the key)
+	 */
+	public static Object createInstance(String key) {
+		Object result = null;
+		if (cachedExtensions == null)
+			initExtensions();
+		IConfigurationElement contextSensitiveClass = (IConfigurationElement) cachedExtensions.get(key);
+		try {
+			if (contextSensitiveClass != null)
+				result = contextSensitiveClass
+						.createExecutableExtension(UIContextDeterminationRegistryReader.UI_CONTEXT_SENSTIVE_CLASS_CLASSNAME_ATTR);
+		} catch (CoreException e) {
+			SearchPlugin.logError("Problem loading extension not found for key \"" + key + "\"."); //$NON-NLS-1$ //$NON-NLS-2$
+			SearchPlugin.logError(e);
+		}
+		if (result == null)
+			SearchPlugin.logError("Extension not found for key \"" + key + "\"."); //$NON-NLS-1$ //$NON-NLS-2$
+		return result;
+	}
+
+	/**
+	 * Returns the current context -- determines the value if necessary.
+	 * 
+	 * @return current context
+	 * @see #HEADLESS_CONTEXT
+	 * @see #UI_CONTEXT
+	 */
+	public static int getCurrentContext() {
+		if (currentContext == UNKNOWN) {
+			currentContext = HEADLESS_CONTEXT;
+			new UITesterRegistryReader().readRegistry();
+		}
+		return currentContext;
+	}
+
+	/*
+	 * Invokes the UIContextDeterminationRegistryReader to cache all of the extensions, if necessary.
+	 *  
+	 */
+	private static void initExtensions() {
+		if (cachedExtensions == null) {
+			cachedExtensions = new HashMap();
+			new UIContextDeterminationRegistryReader().readRegistry();
+		}
+	}
+
+	/*
+	 * Converts the input to one of UI_CONTEXT or HEADLESS_CONTEXT. Defaults to HEADLESS on invalid input
+	 * 
+	 * @param literal @return
+	 */
+	private static int convertLiteral(String literal) {
+		return (UI_CONTEXT_LITERAL.equals(literal)) ? UI_CONTEXT : HEADLESS_CONTEXT;
+	}
+
+	/*
+	 * Reads the registration of UI Context-sensitive class extensions and initializes the cache of the UIContextDetermination object.
+	 * 
+	 * @author mdelder
+	 */
+	private static class UIContextDeterminationRegistryReader extends RegistryReader {
+
+		public static final String UI_CONTEXT_SENSTIVE_CLASS_ELEMENT = "uiContextSensitiveClass"; //$NON-NLS-1$
+
+		public static final String UI_CONTEXT_SENSTIVE_CLASS_KEY_ATTR = "key"; //$NON-NLS-1$
+
+		public static final String UI_CONTEXT_SENSTIVE_CLASS_CLASSNAME_ATTR = "className"; //$NON-NLS-1$
+
+		public static final String UI_CONTEXT_SENSTIVE_CLASS_CONTEXT_ATTR = "context"; //$NON-NLS-1$
+
+		public UIContextDeterminationRegistryReader() {
+			super(SearchPlugin.PLUGIN_ID, SearchPlugin.UI_CONTEXT_EXTENSION_POINT);
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.jem.util.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+		 */
+		public boolean readElement(IConfigurationElement element) {
+			boolean result = false;
+			if (element.getName().equals(UI_CONTEXT_SENSTIVE_CLASS_ELEMENT)) {
+
+				String key = element.getAttribute(UI_CONTEXT_SENSTIVE_CLASS_KEY_ATTR);
+				String context = element.getAttribute(UI_CONTEXT_SENSTIVE_CLASS_CONTEXT_ATTR);
+
+				if (!cachedExtensions.containsKey(key) || getCurrentContext() == convertLiteral(context))
+					cachedExtensions.put(key, element);
+				result = true;
+			}
+			return result;
+		}
+	}
+
+	/*
+	 * Reads the uiTester extension and instantiate the any of the UITester classes it finds.
+	 * 
+	 * The implementation has the side effect that if multiple UITesters are registered, any of them can trip the currentContext into the UI_CONTEXT
+	 * state.
+	 * 
+	 * @author mdelder
+	 */
+	private static class UITesterRegistryReader extends RegistryReader {
+
+		public static final String UI_TESTER_ELEMENT = "uiTester"; //$NON-NLS-1$
+
+		public static final String UI_TESTER_CLASSNAME_ATTR = "className"; //$NON-NLS-1$
+
+		public UITesterRegistryReader() {
+			super(SearchPlugin.PLUGIN_ID, SearchPlugin.UI_TESTER_EXTENSION_POINT);
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see com.ibm.etools.emf.workbench.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+		 */
+		public boolean readElement(IConfigurationElement element) {
+			boolean result = false;
+			if (element.getName().equals(UI_TESTER_ELEMENT)) {
+				result = true;
+				try {
+					// Don't bother running tester it if we already processed one extension that returned true.
+					if (currentContext != UI_CONTEXT && canCreateExecutableExtension(element)) {
+						UITester tester = (UITester) element.createExecutableExtension(UI_TESTER_CLASSNAME_ATTR);
+						if (tester.isCurrentContextUI())
+							currentContext = UI_CONTEXT;
+					}
+				} catch (Exception t) {
+					SearchPlugin.logWarning("UIContextDetermination is proceeding in HEADLESS mode"); //$NON-NLS-1$
+				}
+			}
+			return result;
+		}
+
+		public void readRegistry() {
+			super.readRegistry();
+			IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint("org.eclipse.jem.util", extensionPointId);
+			if (point == null)
+				return;
+			IConfigurationElement[] elements = point.getConfigurationElements();
+			for (int i = 0; i < elements.length; i++) {
+				boolean recognized = this.readElement(elements[i]);
+				if (!recognized) {
+					logError(elements[i], "Error processing extension: " + elements[i]); //$NON-NLS-1$
+				}
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/util/UITester.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/util/UITester.java
new file mode 100644
index 0000000..768ed10
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/util/UITester.java
@@ -0,0 +1,28 @@
+package org.eclipse.wst.common.core.util;
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+/**
+ * Interface for a UITester. The "classname" attribute on the "uiTester" extension point should implement this class.
+ * 
+ * @since 1.0.0
+ */
+public interface UITester {
+
+	/**
+	 * Answer if the current context is an UI context.
+	 * 
+	 * @return <code>true</code> if an UI context.
+	 * 
+	 * @since 1.0.0
+	 */
+	public boolean isCurrentContextUI();
+}
diff --git a/plugins/org.eclipse.wst.common.emf/.classpath b/plugins/org.eclipse.wst.common.emf/.classpath
index 96202d8..302a786 100644
--- a/plugins/org.eclipse.wst.common.emf/.classpath
+++ b/plugins/org.eclipse.wst.common.emf/.classpath
@@ -2,7 +2,7 @@
 <classpath>
 	<classpathentry kind="src" path="wtpemf/"/>
 	<classpathentry kind="src" path="workbench/"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
 		<accessrules>
 			<accessrule kind="accessible" pattern="org/eclipse/wst/common/**"/>
diff --git a/plugins/org.eclipse.wst.common.emf/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.emf/.settings/org.eclipse.jdt.core.prefs
index 6c7418f..c296c08 100644
--- a/plugins/org.eclipse.wst.common.emf/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.wst.common.emf/.settings/org.eclipse.jdt.core.prefs
@@ -1,63 +1,95 @@
-#Sat Mar 24 02:06:02 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=ignore
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-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=error
-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=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-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=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+#Wed Jun 24 10:13:16 EDT 2009
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error
+org.eclipse.jdt.core.compiler.problem.unusedLocal=error
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
+eclipse.preferences.version=1
+org.eclipse.jdt.core.incompleteClasspath=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
+org.eclipse.jdt.core.compiler.problem.deadCode=error
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeUncheckedExceptions=disabled
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=ignore
-org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.compiler.problem.autoboxing=warning
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
diff --git a/plugins/org.eclipse.wst.common.emf/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.emf/META-INF/MANIFEST.MF
index 55d9425..5878621 100644
--- a/plugins/org.eclipse.wst.common.emf/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.emf/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.common.emf; singleton:=true
-Bundle-Version: 1.1.200.qualifier
+Bundle-Version: 1.2.100.qualifier
 Bundle-Activator: org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin
 Bundle-Vendor: %pluginProvider
 Bundle-Localization: plugin
@@ -13,7 +13,7 @@
  org.eclipse.wst.common.frameworks;bundle-version="[1.1.200,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jem.util;bundle-version="[2.0.100,3.0.0)"
+ org.eclipse.wst.common.core;bundle-version="[1.1.201,2.0.0)"
 Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.wst.common.emf/about.html b/plugins/org.eclipse.wst.common.emf/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.emf/about.html
+++ b/plugins/org.eclipse.wst.common.emf/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.emf/plugin.xml b/plugins/org.eclipse.wst.common.emf/plugin.xml
index dde6ad8..5dc13a6 100644
--- a/plugins/org.eclipse.wst.common.emf/plugin.xml
+++ b/plugins/org.eclipse.wst.common.emf/plugin.xml
@@ -24,7 +24,7 @@
    </extension>
    
       <extension
-         point="org.eclipse.jem.util.uiContextSensitiveClass">
+         point="org.eclipse.wst.common.core.uiContextSensitiveClass">
       <uiContextSensitiveClass
             context="Headless"
             key="rendererFactory"
diff --git a/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/ResourceSynchronizedIsLoadingAdapter.java b/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/ResourceSynchronizedIsLoadingAdapter.java
index 5034c7a..d4b8ea4 100644
--- a/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/ResourceSynchronizedIsLoadingAdapter.java
+++ b/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/ResourceSynchronizedIsLoadingAdapter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,17 +10,15 @@
  *******************************************************************************/
 /*
  * Created on Oct 26, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
  */
 package org.eclipse.wst.common.internal.emf;
 
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.jobs.ILock;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin;
 import org.eclipse.wst.common.internal.emf.utilities.ResourceIsLoadingAdapter;
 
 
@@ -44,13 +42,13 @@
 	 * The delay is default to 5 minutes. This is the upward threshhold. The
 	 * lock will wait up to DELAY milliseconds to acquire the lock, and bail
 	 * if not. It does not mean that it will wait DELAY milliseconds always.
-	 * In general, the wait should be almost instanteous -- just as long as
+	 * In general, the wait should be almost instantaneous -- just as long as
 	 * document loading remains speedy.
 	 */
 	private static final long DELAY = 300000;
 
 	public ResourceSynchronizedIsLoadingAdapter() {
-		loadingLock = Platform.getJobManager().newLock();
+		loadingLock = Job.getJobManager().newLock();
 		if (loadingLock != null)
 			loadingLock.acquire();
 	}
@@ -59,8 +57,9 @@
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see com.ibm.wtp.internal.emf.utilities.ResourceIsLoadingAdapter#waitForResourceToLoad()
+	 * @see org.eclipse.wst.common.internal.emf.utilities.ResourceIsLoadingAdapter#waitForResourceToLoad()
 	 */
+	@Override
 	public void waitForResourceToLoad() {
 
 		if (loadingLock == null)
@@ -83,16 +82,12 @@
 	}
 
 
-	/**
-	 * 
-	 */
 	private void logWarning() {
-		Notifier target = getTarget();
-		if (target == null || !(target instanceof Resource)) {
-			Resource resource = (Resource) target;
-			System.err.println("[WARNING] Could not acquire Semaphore Lock for Resource: \"" + resource.getURI() + "\" in " + getClass());
+		Notifier notificationTarget = getTarget();
+		if (notificationTarget != null && notificationTarget instanceof Resource) {
+			Resource resource = (Resource) notificationTarget;
+			EcoreUtilitiesPlugin.logError("[WARNING] Could not acquire Semaphore Lock for Resource: \"" + resource.getURI() + "\" in " + getClass());  //$NON-NLS-1$//$NON-NLS-2$
 		}
-
 	}
 
 
@@ -101,6 +96,7 @@
 	 * 
 	 * @see com.ibm.wtp.internal.emf.utilities.ResourceIsLoadingAdapter#notifyChanged(org.eclipse.emf.common.notify.Notification)
 	 */
+	@Override
 	public void notifyChanged(Notification notification) {
 
 		if (notification.getNotifier() != null) {
@@ -119,6 +115,7 @@
 	 * 
 	 * @see com.ibm.wtp.internal.emf.utilities.ResourceIsLoadingAdapter#forceRelease()
 	 */
+	@Override
 	public void forceRelease() {
 		if (loadingLock != null && loadingLock.getDepth() > 0)
 			loadingLock.release();
diff --git a/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/ResourceSynchronizedIsLoadingAdapterFactory.java b/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/ResourceSynchronizedIsLoadingAdapterFactory.java
index 1990e8a..901b3b6 100644
--- a/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/ResourceSynchronizedIsLoadingAdapterFactory.java
+++ b/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/ResourceSynchronizedIsLoadingAdapterFactory.java
@@ -10,9 +10,6 @@
  *******************************************************************************/
 /*
  * Created on Oct 26, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
  */
 package org.eclipse.wst.common.internal.emf;
 
@@ -22,9 +19,6 @@
 
 /**
  * @author mdelder
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
  */
 public class ResourceSynchronizedIsLoadingAdapterFactory extends ResourceIsLoadingAdapterFactory {
 
@@ -32,7 +26,8 @@
     /* (non-Javadoc)
      * @see com.ibm.wtp.internal.emf.utilities.ResourceIsLoadingAdapterFactory#createResourceIsLoadingAdapter()
      */
-    public ResourceIsLoadingAdapter createResourceIsLoadingAdapter() { 
+    @Override
+	public ResourceIsLoadingAdapter createResourceIsLoadingAdapter() { 
         return new ResourceSynchronizedIsLoadingAdapter();
     }
 }
diff --git a/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/plugin/EcoreUtilitiesPlugin.java b/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/plugin/EcoreUtilitiesPlugin.java
index 1c24c05..1f19437 100644
--- a/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/plugin/EcoreUtilitiesPlugin.java
+++ b/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/plugin/EcoreUtilitiesPlugin.java
@@ -21,6 +21,11 @@
 import org.eclipse.wst.common.internal.emf.resource.RendererFactory;
 import org.eclipse.wst.common.internal.emf.utilities.ResourceIsLoadingAdapterFactory;
 import org.osgi.framework.BundleContext;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import java.lang.Throwable;
+import org.eclipse.core.runtime.CoreException;
 
 /**
  * @author DABERG
@@ -29,6 +34,8 @@
  * Generation>Code and Comments
  */
 public class EcoreUtilitiesPlugin extends Plugin {
+	//the ID for this plugin (added automatically by logging quickfix)
+	public static final String PLUGIN_ID = "org.eclipse.wst.common.emf"; //$NON-NLS-1$
 	public static final String ID = "org.eclipse.wst.common.emf"; //$NON-NLS-1$
 	public static final String TRANSLATOR_EXTENSTION_POINT = "translatorExtension"; //$NON-NLS-1$
 
@@ -44,6 +51,7 @@
 	 * 
 	 * @see org.eclipse.core.runtime.Plugin#startup()
 	 */
+	@Override
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 		RendererFactory.setDefaultHandler(PluginRendererFactoryDefaultHandler.INSTANCE);
@@ -52,4 +60,33 @@
 		//use a synchronized loading adapter factory
 		ResourceIsLoadingAdapterFactory.INSTANCE = new ResourceSynchronizedIsLoadingAdapterFactory();
 	}
+
+	public static IStatus createStatus(int severity, String message, Throwable exception) {
+		return new Status(severity, PLUGIN_ID, message, exception);
+	}
+
+	public static IStatus createStatus(int severity, String message) {
+		return createStatus(severity, message, null);
+	}
+
+	public static void logError(Throwable exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, exception.getMessage(), exception));
+	}
+
+	public static void logError(CoreException exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( exception.getStatus() );
+	}
+
+	public static void logError(String message) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, message));
+	}
+
+	public static void logWarning(String message) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log(createStatus(IStatus.WARNING, message));
+	}
+	
+	public static void logWarning(Throwable exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.WARNING, exception.getMessage(), exception));
+	}
+
 }
diff --git a/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/plugin/PluginRendererFactoryDefaultHandler.java b/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/plugin/PluginRendererFactoryDefaultHandler.java
index ee80757..4ad9dc9 100644
--- a/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/plugin/PluginRendererFactoryDefaultHandler.java
+++ b/plugins/org.eclipse.wst.common.emf/workbench/org/eclipse/wst/common/internal/emf/plugin/PluginRendererFactoryDefaultHandler.java
@@ -8,24 +8,12 @@
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*
- * Created on Dec 1, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
 package org.eclipse.wst.common.internal.emf.plugin;
 
-import org.eclipse.jem.util.UIContextDetermination;
+import org.eclipse.wst.common.core.util.UIContextDetermination;
 import org.eclipse.wst.common.internal.emf.resource.EMF2DOMRendererFactoryDefaultHandler;
 import org.eclipse.wst.common.internal.emf.resource.RendererFactory;
 
-/**
- * @author schacher
- * 
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
 public class PluginRendererFactoryDefaultHandler extends EMF2DOMRendererFactoryDefaultHandler {
 
 	static final PluginRendererFactoryDefaultHandler INSTANCE = new PluginRendererFactoryDefaultHandler();
@@ -43,6 +31,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.EMF2DOMRendererFactoryDefaultHandler#getDefaultRendererFactory()
 	 */
+	@Override
 	public RendererFactory getDefaultRendererFactory() {
 		RendererFactory aFactory = (RendererFactory) UIContextDetermination.createInstance(EXT_POINT_NAME);
 		return aFactory == null ? super.getDefaultRendererFactory() : aFactory;
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/AbstractRendererImpl.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/AbstractRendererImpl.java
index cff83b7..7a9545b 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/AbstractRendererImpl.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/AbstractRendererImpl.java
@@ -151,4 +151,8 @@
 	public boolean isBatchMode() {
 		return false;
 	}
+
+	public boolean isReverting() {
+		return false;
+	}
 }
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/AttributeTranslatorFilter.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/AttributeTranslatorFilter.java
index b0d0869..32debc9 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/AttributeTranslatorFilter.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/AttributeTranslatorFilter.java
@@ -23,6 +23,7 @@
 		super(trans, version);
 	}
 
+	@Override
 	public final int scanNextTranslator(Translator[] children, int start) {
 		int found = start + 1;
 		for (; found < children.length; ++found) {
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CacheEventNode.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CacheEventNode.java
index e575833..18aebcd 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CacheEventNode.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CacheEventNode.java
@@ -315,6 +315,7 @@
 		return result;
 	}
 
+	@Override
 	public String toString() {
 		StringBuffer output = new StringBuffer("CacheEventNode[");//$NON-NLS-1$
 		output.append("nodeName=");//$NON-NLS-1$
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CacheEventStack.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CacheEventStack.java
index 03f4198..0ce8c85 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CacheEventStack.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CacheEventStack.java
@@ -27,6 +27,11 @@
 
 	/**
 	 * 
+	 */
+	private static final long serialVersionUID = 1208895320149054103L;
+
+	/**
+	 * 
 	 * @return the top of the stack without removing it
 	 */
 	public CacheEventNode peek() {
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityResourceFactory.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityResourceFactory.java
index f824de3..6ac4bba 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityResourceFactory.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityResourceFactory.java
@@ -53,6 +53,7 @@
 	 * 
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl#createResource(org.eclipse.emf.common.util.URI)
 	 */
+	@Override
 	public Resource createResource(URI uri) {
 		return new CompatibilityXMIResourceImpl(uri);
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilitySAXXMIHandler.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilitySAXXMIHandler.java
index ee6ff3e..f26ca8e 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilitySAXXMIHandler.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilitySAXXMIHandler.java
@@ -45,6 +45,7 @@
 	 * 
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLHandler#isNull()
 	 */
+	@Override
 	protected boolean isNull() {
 		boolean isnull = super.isNull();
 		if (!isnull)
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMILoadImpl.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMILoadImpl.java
index 5f17a46..26ebff7 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMILoadImpl.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMILoadImpl.java
@@ -41,6 +41,7 @@
 	 * 
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl#makeDefaultHandler()
 	 */
+	@Override
 	protected DefaultHandler makeDefaultHandler() {
 		return new SAXWrapper(new CompatibilitySAXXMIHandler(resource, helper, options));
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMIResourceImpl.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMIResourceImpl.java
index cc0b091..bb95f96 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMIResourceImpl.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMIResourceImpl.java
@@ -54,6 +54,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl#createXMLHelper()
 	 */
+	@Override
 	protected final XMLHelper createXMLHelper() {
 		MappedXMIHelper helper = doCreateXMLHelper();
 		helper.setPackageURIsToPrefixes(getPackageURIsToPrefixes());
@@ -104,6 +105,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.resource.Resource#getURIFragment(EObject)
 	 */
+	@Override
 	public String getURIFragment(EObject eObject) {
 		if (usesDefaultFormat())
 			return super.getURIFragment(eObject);
@@ -117,6 +119,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl#createXMLSave()
 	 */
+	@Override
 	protected XMLSave createXMLSave() {
 		if (usesDefaultFormat())
 			return super.createXMLSave();
@@ -126,6 +129,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#doSave(OutputStream, Map)
 	 */
+	@Override
 	public void doSave(OutputStream outputStream, Map options) throws IOException {
 		super.doSave(outputStream, options);
 	}
@@ -142,9 +146,10 @@
 	/**
 	 * @see org.eclipse.emf.ecore.resource.impl.ResourceImpl#getEObjectByID(String)
 	 */
+	@Override
 	protected EObject getEObjectByID(String id) {
 		if (idToEObjectMap != null) {
-			EObject eObject = (EObject) idToEObjectMap.get(id);
+			EObject eObject = idToEObjectMap.get(id);
 			if (eObject != null) {
 				return eObject;
 			}
@@ -157,6 +162,7 @@
 	 * {@link InternalEObject#eSetProxyURI sets}the object to be a proxy and clears the
 	 * {@link #eAdapters adapters}.
 	 */
+	@Override
 	protected void unloaded(InternalEObject internalEObject) {
 		//overridden from the super class; call super.getURIFragment instead of the implementation
 		//at this level, to avoid ID generation during unload
@@ -171,6 +177,7 @@
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#doLoad(java.io.InputStream,
 	 *      java.util.Map)
 	 */
+	@Override
 	public final void doLoad(InputStream inputStream, Map options) throws IOException {
 		basicDoLoad(inputStream, options);
 	}
@@ -187,11 +194,13 @@
 	 * 
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#init()
 	 */
+	@Override
 	protected void init() {
 		super.init();
 		setEncoding(DEFAULT_ENCODING);
 	}
 
+	@Override
 	protected XMLLoad createXMLLoad() {
 		return new CompatibilityXMILoadImpl(createXMLHelper());
 	}
@@ -226,6 +235,7 @@
 	 * 
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#detachedHelper(org.eclipse.emf.ecore.EObject)
 	 */
+	@Override
 	protected void detachedHelper(EObject eObject) {
 		if (modificationTrackingAdapter != null) {
 			eObject.eAdapters().remove(modificationTrackingAdapter);
@@ -240,6 +250,7 @@
 		}
 	}
 	
+	@Override
 	public void load(Map options) throws IOException {
 
         ResourceIsLoadingAdapter adapter = null;
@@ -271,19 +282,53 @@
             }
         }
     }
+	public void loadExisting(Map options) throws IOException {
+
+		
+        ResourceIsLoadingAdapter adapter = null;
+        if (isLoaded) {
+            adapter = ResourceIsLoadingAdapter.findAdapter(this);
+            if (adapter != null) 
+                adapter.waitForResourceToLoad();
+            return;
+        }
+        synchronized (this) {            
+            adapter = ResourceIsLoadingAdapter.findAdapter(this);
+            if (adapter == null && !isLoaded) 
+                addSynchronizationLoadingAdapter();
+        }
+        if(adapter != null)
+            adapter.waitForResourceToLoad();
+        else {
+            try {
+                load((InputStream) null, options);
+            } catch(IOException ioe) {
+                removeLoadingSynchronizationAdapter();
+                throw ioe;
+            } catch(RuntimeException re) {
+                removeLoadingSynchronizationAdapter();
+                throw re;
+            } catch(Error e) {
+                removeLoadingSynchronizationAdapter();
+                throw e;
+            }
+        }
+    }
 	
 	  /**
      * 
      */
-    private void addSynchronizationLoadingAdapter() {
+    protected void addSynchronizationLoadingAdapter() {
+    	synchronized (eAdapters()) {
         if (ResourceIsLoadingAdapter.findAdapter(this) == null)
             eAdapters().add(ResourceIsLoadingAdapterFactory.INSTANCE.createResourceIsLoadingAdapter());
+    	}
     }
 
     /**
      * 
      */
-    private void removeLoadingSynchronizationAdapter() {
+    protected void removeLoadingSynchronizationAdapter() {
         ResourceIsLoadingAdapter adapter = ResourceIsLoadingAdapter.findAdapter(this);
         if (adapter != null) {
             adapter.forceRelease();
@@ -312,7 +357,8 @@
      * 
      * @see org.eclipse.emf.ecore.resource.Resource#getContents()
      */
-    public EList getContents() {
+    @Override
+	public EList getContents() {
         waitForResourceToLoadIfNecessary();
         return super.getContents();
     }
@@ -322,7 +368,8 @@
      * 
      * @see org.eclipse.emf.ecore.resource.impl.ResourceImpl#isLoaded()
      */
-    public boolean isLoaded() {
+    @Override
+	public boolean isLoaded() {
         waitForResourceToLoadIfNecessary();
         return super.isLoaded();
     }
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMISaveImpl.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMISaveImpl.java
index c1a7bf2..2af74c3 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMISaveImpl.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/CompatibilityXMISaveImpl.java
@@ -47,6 +47,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMISaveImpl#init(XMLResource, Map)
 	 */
+	@Override
 	protected void init(XMLResource resource, Map options) {
 		super.init(resource, options);
 		xmiType = true;
@@ -55,6 +56,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMISaveImpl#addNamespaceDeclarations()
 	 */
+	@Override
 	public void addNamespaceDeclarations() {
 		doc.addAttribute(XMI_VER_NS, XMIResource.VERSION_VALUE);
 		doc.addAttribute(XMI_XMLNS, XMIResource.XMI_URI);
@@ -105,6 +107,7 @@
 		}
 	}
 
+	@Override
 	protected void saveHref(EObject remote, EStructuralFeature f) {
 		String name = helper.getQName(f);
 		String href = helper.getHREF(remote);
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ConstantAttributeTranslator.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ConstantAttributeTranslator.java
index 356f102..ceaa9f8 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ConstantAttributeTranslator.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ConstantAttributeTranslator.java
@@ -37,6 +37,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#getMOFValue(org.eclipse.emf.ecore.EObject)
 	 */
+	@Override
 	public Object getMOFValue(EObject mofObject) {
 		return attributeValue;
 	}
@@ -46,6 +47,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#isSetMOFValue(org.eclipse.emf.ecore.EObject)
 	 */
+	@Override
 	public boolean isSetMOFValue(EObject emfObject) {
 		return true;
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/DependencyTranslator.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/DependencyTranslator.java
index c7d1c62..3f48221 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/DependencyTranslator.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/DependencyTranslator.java
@@ -48,45 +48,55 @@
 		return child;
 	}
 
+	@Override
 	public List getMOFChildren(EObject mofObject) {
 		//return super.getMOFChildren(getChild(mofObject));
 		return super.getMOFChildren(mofObject);
 	}
 
+	@Override
 	public Object getMOFValue(EObject mofObject) {
 		return super.getMOFValue(getChild(mofObject));
 	}
 
+	@Override
 	public void setMOFValue(EObject emfObject, Object value) {
 		//super.setMOFValue(getChild(emfObject), value);
 		super.setMOFValue(getChild(emfObject), value, -1);
 	}
 
+	@Override
 	public void setMOFValue(Notifier owner, Object value, int newIndex) {
 		super.setMOFValue(getChild((EObject) owner), value, newIndex);
 	}
 
+	@Override
 	public void removeMOFValue(Notifier owner, Object value) {
 		super.removeMOFValue(getChild((EObject) owner), value);
 	}
 
+	@Override
 	public boolean isSetMOFValue(EObject emfObject) {
 		return super.isSetMOFValue(getChild(emfObject));
 	}
 
+	@Override
 	public void unSetMOFValue(EObject emfObject) {
 		super.unSetMOFValue(getChild(emfObject));
 	}
 
 
+	@Override
 	public boolean isDependencyChild() {
 		return true;
 	}
 
+	@Override
 	public boolean featureExists(EObject emfObject) {
 		return super.featureExists(getChild(emfObject));
 	}
 
+	@Override
 	public void clearList(EObject mofObject) {
 		super.clearList(getChild(mofObject));
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMAdapterImpl.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMAdapterImpl.java
index cd6a7a2..3fa734c 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMAdapterImpl.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMAdapterImpl.java
@@ -30,6 +30,7 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin;
 import org.eclipse.wst.common.internal.emf.utilities.Assert;
 import org.eclipse.wst.common.internal.emf.utilities.DOMUtilities;
 import org.eclipse.wst.common.internal.emf.utilities.EtoolsCopySession;
@@ -72,6 +73,7 @@
 
 		static final String KEY = "EMF2DOMDependencyAdapter"; //$NON-NLS-1$
 
+		@Override
 		public void notifyChanged(Notification msg) {
 			EMF2DOMAdapterImpl.this.notifyChanged(msg);
 		}
@@ -79,6 +81,7 @@
 		/**
 		 * @see org.eclipse.emf.common.notify.impl.AdapterImpl#isAdapterForType(Object)
 		 */
+		@Override
 		public boolean isAdapterForType(Object type) {
 			return KEY.equals(type);
 		}
@@ -136,8 +139,8 @@
 		try {
 			// If the Platform class can be found, then continue to check if the OSGI platform is running
 			Class clazz = Class.forName(PLATFORM);
-			Method m = clazz.getMethod(ISRUNNING, null);
-			isRunning = ((Boolean)m.invoke(clazz, null)).booleanValue();
+			Method m = clazz.getMethod(ISRUNNING);
+			isRunning = ((Boolean)m.invoke(clazz)).booleanValue();
 		} catch (ClassNotFoundException e) {
 		     // Ignore because this must be in a non_OSGI environment
 		} catch (SecurityException e) {
@@ -203,6 +206,7 @@
 		fNotificationEnabled = isEnabled;
 	}
 
+	@Override
 	public boolean isAdapterForType(Object type) {
 		return EMF2DOMAdapter.ADAPTER_CLASS == type;
 	}
@@ -211,6 +215,7 @@
 		target.eAdapters().add(this);
 	}
 
+	@Override
 	public String toString() {
 		StringBuffer sb = new StringBuffer();
 		sb.append(shortClassName(this));
@@ -262,11 +267,11 @@
 					break;
 			}
 
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("MOF Change: " + notifType); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tnotifier      : " + msg.getNotifier()); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tchangedFeature: " + msg.getFeature()); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\toldValue      : " + msg.getOldValue()); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tnewValue      : " + msg.getNewValue()); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("MOF Change: " + notifType); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tnotifier      : " + msg.getNotifier()); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tchangedFeature: " + msg.getFeature()); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\toldValue      : " + msg.getOldValue()); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tnewValue      : " + msg.getNewValue()); //$NON-NLS-1$
 		}
 	}
 
@@ -287,6 +292,52 @@
 		}
 		return null;
 	}
+	
+	/**
+	 * Checks to ensure that only one MOF node has been removed and will remove the dom equivalent.
+	 * If multiple differences are found, will return the index of the first difference.
+	 * 
+	 * @param parent
+	 * @param mofChildren
+	 * @param domChildren
+	 * @return
+	 */
+	private int updateDOMSingleRemove(Node parent, List mofChildren, List domChildren){
+		int domIndex = 0;
+		int firstDifference = -1;
+		for (Object mofChild : mofChildren){
+			if (mofChild instanceof EObject)
+			{
+				EMF2DOMAdapter adapter = getExistingAdapter((EObject)mofChild);
+				if(adapter.getNode() != domChildren.get(domIndex)){
+					if(firstDifference != -1){
+						//second difference; return
+						return firstDifference;
+					}
+					//we found something that is different
+					firstDifference = domIndex;
+					//skip over one index and check against next
+					domIndex ++;
+					if(adapter.getNode() != domChildren.get(domIndex)){
+						//if these are different then there are multiple changes
+						return firstDifference;
+					}
+				}
+				domIndex++;
+			}
+		}
+		if(firstDifference != -1){
+			removeDOMChild(parent, (Element) domChildren.get(firstDifference));
+			//if we are here, and firstDifference is not -1, that means we have iterated
+			//through the entire mof list, and all elements have been processed. Return
+			//domchildren.size, so that no more processing is done in calling method.
+			return domChildren.size();
+		}
+		//if we are here, then firstDifference was -1. Our algo has failed. Let original algo run.
+		return 0;
+	}
+
+	
 
 	/**
 	 * Update all the children of the target MOF object in the relationship described by
@@ -299,18 +350,23 @@
 	 */
 	protected void primUpdateDOMMultiFeature(Translator map, Node node, List mofChildren, List domChildren, Notifier owner) {
 
+		int i = 0;
+		Node parent = findDOMPath(node, map, false);
+		if(domChildren.size() - mofChildren.size() == 1){
+			//an emf object has been deleted. Remove it from the dom as well
+			i = updateDOMSingleRemove(parent, mofChildren, domChildren);
+		}
 		//Used for inserting primitives
 		List inorderDOMChildren = null;
-		if (!map.isObjectMap() || map.isManagedByParent()) {
-			inorderDOMChildren = new ArrayList();
-			inorderDOMChildren.addAll(domChildren);
+		if(i < mofChildren.size()){
+			if (!map.isObjectMap() || map.isManagedByParent()) {
+				inorderDOMChildren = new ArrayList();
+				inorderDOMChildren.addAll(domChildren);
+			}
 		}
-		Node parent = findDOMPath(node, map, false);
-
 		// Go though the MOF children checking to see if the corresponding
 		// MOF Adapter children exists. If not, create the adapter.
 		// Also handles reordering children that have moved.
-		int i = 0;
 		for (; i < mofChildren.size(); i++) {
 			Object child = mofChildren.get(i);
 			EObject mofChild = null;
@@ -365,7 +421,9 @@
 					indent(newNode, map);
 					addDOMAdapter(newNode); // Hook up listeners
 					domChildren.add(i, newNode);
-					inorderDOMChildren.add(newNode);
+					if(inorderDOMChildren != null){
+						inorderDOMChildren.add(newNode);
+					}
 					Text newText = parent.getOwnerDocument().createTextNode(map.convertValueToString(child, (EObject) owner));
 					DOMUtilities.insertBeforeNode(newNode, newText, null);
 				}
@@ -481,8 +539,8 @@
 		EMF2DOMAdapter adapter = (EMF2DOMAdapter) EcoreUtil.getExistingAdapter(value, EMF2DOMAdapter.ADAPTER_CLASS);
 		if (adapter != null) {
 			// Remove the adapter from BOTH the MOF Object and the DOM Nodes
-			value.eAdapters().remove(adapter);
 			removeAdapters(adapter.getNode());
+			value.eAdapters().remove(adapter);
 		}
 
 		EStructuralFeature feature = translator.getFeature();
@@ -607,8 +665,8 @@
 	protected EMF2DOMAdapter getExistingAdapter(EObject refObject) {
 		EMF2DOMAdapter adapter = (EMF2DOMAdapter) EcoreUtil.getExistingAdapter(refObject, EMF2DOMAdapter.ADAPTER_CLASS);
 		if (adapter != null && adapter.isMOFProxy()) {
-			refObject.eAdapters().remove(adapter);
 			removeDOMAdapter(adapter.getNode(), adapter);
+			refObject.eAdapters().remove(adapter);
 			adapter = null;
 		}
 		return adapter;
@@ -641,8 +699,8 @@
 				removeDOMAdapter(childNode, attrAdapter);
 
 				if (fDebug) {
-					org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tCHILD: Adding DOM adapter: " + this); //$NON-NLS-1$
-					org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\t\tto: " + childNode); //$NON-NLS-1$
+					EcoreUtilitiesPlugin.logError("\tCHILD: Adding DOM adapter: " + this); //$NON-NLS-1$
+					EcoreUtilitiesPlugin.logError("\t\tto: " + childNode); //$NON-NLS-1$
 				}
 				primAddDOMAdapter(childNode, this);
 			}
@@ -657,7 +715,7 @@
 			removeDOMChild(parentNode, childNode, false);
 			parentNode.insertBefore(childNode, insertBeforeNode);
 		} catch (Exception e) {
-			e.printStackTrace();
+			EcoreUtilitiesPlugin.logError(e);
 		}
 	}
 
@@ -694,7 +752,7 @@
 				removeAdapters(childNode);
 			parentNode.removeChild(childNode);
 		} catch (Exception e) { 
-			e.printStackTrace();
+			EcoreUtilitiesPlugin.logError(e);
 		}
 	}
 
@@ -712,7 +770,6 @@
 					localTarget.eAdapters().remove(adapter);
 			}
 		}
-
 		NodeList nl = node.getChildNodes();
 		for (int i = 0; i < nl.getLength(); i++) {
 			Node n = nl.item(i);
@@ -802,8 +859,8 @@
 		EMF2DOMAdapter adapter = (EMF2DOMAdapter) EcoreUtil.getAdapter(mofObject.eAdapters(), EMF2DOMAdapter.ADAPTER_CLASS);
 
 		if (adapter != null && adapter.isMOFProxy()) {
-			mofObject.eAdapters().remove(adapter);
 			removeAdapters(adapter.getNode());
+			mofObject.eAdapters().remove(adapter);
 			adapter = null;
 		}
 		if (adapter == null)
@@ -984,9 +1041,9 @@
 		if (resource != null) {
 			publicId = resource.getPublicId();
 			systemId = resource.getSystemId();
+			if (!(StringUtil.stringsEqual(publicId, oldPublicId) && StringUtil.stringsEqual(systemId, oldSystemId)))
+				fRenderer.replaceDocumentType(resource.getDoctype(), publicId, systemId);
 		}
-		if (!(StringUtil.stringsEqual(publicId, oldPublicId) && StringUtil.stringsEqual(systemId, oldSystemId)))
-			fRenderer.replaceDocumentType(resource.getDoctype(), publicId, systemId);
 	}
 
 	protected void updateDOMDocumentType(Notification msg) {
@@ -1012,6 +1069,7 @@
 			resource.setDoctypeValues(publicId, systemId);
 	}
 
+	@Override
 	public void notifyChanged(Notification msg) {
 
 		if (isRoot) {
@@ -1078,8 +1136,8 @@
 
 		primAddDOMAdapter(fNode, this);
 		if (fDebug) {
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("Adding DOM adapter: " + this); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tto: " + fNode); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("Adding DOM adapter: " + this); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tto: " + fNode); //$NON-NLS-1$
 		}
 
 		// Go through the maps. All of the DOM nodes that are not listened
@@ -1154,7 +1212,6 @@
 		try {
 			return map.convertStringToValue(trimmedValue, emfObject);
 		} catch (FeatureValueConversionException ex) {
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(ex);
 			handleFeatureValueConversionException(ex);
 			return null;
 		}
@@ -1203,7 +1260,7 @@
 					handleInvalidMultiNodes(nodeName);
 				node = (Node) nodes.get(0);
 				if (node != null) {
-					if (addAdapters && (map != null || map.isManagedByParent()))
+					if (addAdapters)
 						addDOMAdapter(curNode);
 					break;
 				}
@@ -1230,10 +1287,13 @@
 		if (textNode != null) {
 			textNode.setData(text);
 		} else {
+			textNode = createTextNode(parent.getOwnerDocument(), map, text);
 			if (!isEmptyTag((Element) parent)) {
-				Text newNode = createTextNode(parent.getOwnerDocument(), map, text);
-				DOMUtilities.insertBeforeNode(parent, newNode, null);
-				return newNode;
+				DOMUtilities.insertBeforeNode(parent, textNode, null);
+			}
+			else
+			{
+				parent.appendChild(textNode);
 			}
 		}
 		return textNode;
@@ -1375,7 +1435,13 @@
 			Attr domAttr = (Attr) child.getAttributes().getNamedItem(map.getDOMName(mofObject));
 			if (domAttr != null) {
 				domValue = domAttr.getValue();
-				domValue = map.convertStringToValue((String) domValue, mofObject);
+				try {
+					domValue = map.convertStringToValue((String) domValue, mofObject);
+				} catch (FeatureValueConversionException e) {
+					handleFeatureValueConversionException(e);
+					domValue = null;
+				}
+
 			} else
 				isUnset = true;
 		} else {
@@ -1441,7 +1507,7 @@
 					// enum
 					// features
 
-					if (updateMOFAttAdapter)
+					if (updateMOFAttAdapter && attrAdapter != null)
 						attrAdapter.updateMOF();
 				}
 			}
@@ -1545,9 +1611,9 @@
 			}
 
 			if (fDebug) {
-				org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("Updating DOM Node: " + node); //$NON-NLS-1$
-				org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tfrom: " + mofObject); //$NON-NLS-1$
-				org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tmap : " + map); //$NON-NLS-1$
+				EcoreUtilitiesPlugin.logError("Updating DOM Node: " + node); //$NON-NLS-1$
+				EcoreUtilitiesPlugin.logError("\tfrom: " + mofObject); //$NON-NLS-1$
+				EcoreUtilitiesPlugin.logError("\tmap : " + map); //$NON-NLS-1$
 			}
 			boolean notificationFlag = isNotificationEnabled();
 			try {
@@ -1576,9 +1642,9 @@
 	 */
 	final protected void updateDOMLinkFeature(Translator map, Node node, EObject mofObject) {
 		if (fDebug) {
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("Updating DOM Node (link): " + node); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tfrom: " + mofObject); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tmap : " + map); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("Updating DOM Node (link): " + node); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tfrom: " + mofObject); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tmap : " + map); //$NON-NLS-1$
 		}
 		primUpdateDOMLinkFeature(map, node, mofObject);
 	}
@@ -1594,9 +1660,9 @@
 	 */
 	final protected void updateDOMMultiFeature(Translator map, Node node, EObject mofObject) {
 		if (fDebug) {
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("Updating DOM Node (multi): " + node); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tfrom: " + mofObject); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tmap : " + map); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("Updating DOM Node (multi): " + node); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tfrom: " + mofObject); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tmap : " + map); //$NON-NLS-1$
 		}
 		boolean notificationFlag = isNotificationEnabled();
 		try {
@@ -1612,15 +1678,15 @@
 	 * updated.
 	 */
 	protected void updateDOMSubtree(Translator map, Node node, EObject mofObject, Object attrValue) {
-
+		Object innerAttrValue = attrValue;
 		if (map.featureExists(mofObject)) {
 			if ((map.isEnumFeature() || map.isBooleanFeature()) && (map.isUnsettable() && !map.isSetMOFValue(mofObject)))
-				attrValue = null;
+				innerAttrValue = null;
 		} else
-			attrValue = map.extractStringValue(mofObject);
+			innerAttrValue = map.extractStringValue(mofObject);
 
 		// Create and/or update the DOM subtree
-		if (attrValue != null) {
+		if (innerAttrValue != null) {
 			Node parent = createDOMPath(node, map);
 			if (map.isManagedByParent()) {
 				// Handle the case where the mof value is not another
@@ -1630,10 +1696,10 @@
 
 				Element child = map.isDOMTextValue() ? (Element) parent : findOrCreateNode(parent, map, map.getDOMName(mofObject));
 
-				findOrCreateTextNode(child, map, map.convertValueToString(attrValue, mofObject));
+				findOrCreateTextNode(child, map, map.convertValueToString(innerAttrValue, mofObject));
 			} else {
 				// Handle the case were the mof value is a mof object.
-				EObject mofValue = (EObject) attrValue;
+				EObject mofValue = (EObject) innerAttrValue;
 				EMF2DOMAdapter valueAdapter = (EMF2DOMAdapter) EcoreUtil.getExistingAdapter(mofValue, EMF2DOMAdapter.ADAPTER_CLASS);
 				if (valueAdapter != null)
 					valueAdapter.updateDOM();
@@ -1670,9 +1736,9 @@
 	 */
 	final protected void updateMOFLinkFeature(Translator map, Node node, EObject mofObject) {
 		if (fDebug) {
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("Updating MOFObject (link): " + mofObject); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tfrom: " + node); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tmap : " + map); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("Updating MOFObject (link): " + mofObject); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tfrom: " + node); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tmap : " + map); //$NON-NLS-1$
 		}
 		boolean notificationFlag = isNotificationEnabled();
 		try {
@@ -1694,9 +1760,9 @@
 	 */
 	final protected void updateMOFMultiFeature(Translator map, Node node, EObject mofObject) {
 		if (fDebug) {
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("Updating MOFObject (multi): " + mofObject); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tfrom: " + node); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tmap : " + map); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("Updating MOFObject (multi): " + mofObject); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tfrom: " + node); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tmap : " + map); //$NON-NLS-1$
 		}
 		boolean notificationFlag = isNotificationEnabled();
 		try {
@@ -1727,7 +1793,7 @@
 				if(map.getFeature() != null && map.getFeature().isUnique() && mofObject.eGet(map.getFeature()) != null && mofObject.eGet(map.getFeature()) instanceof List && ((List) mofObject.eGet(map.getFeature())).contains(attributeValue)){
 					advanceAddIndex = false;
 					String domName = map.domNameAndPath != null ? map.domNameAndPath : "attribute"; //$NON-NLS-1$
-					org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(new IllegalArgumentException("The 'no duplicates' constraint is violated by "+domName+" = "+attributeValue));
+					EcoreUtilitiesPlugin.logError(new IllegalArgumentException("The 'no duplicates' constraint is violated by "+domName+" = "+attributeValue)); //$NON-NLS-1$ //$NON-NLS-2$
 					handleInvalidMultiNodes(child.getNodeName());
 				} else {
 					map.setMOFValue(mofObject, attributeValue, addIndex);
@@ -1766,9 +1832,9 @@
 		// TODO MDE Add a map.isComment() and updateMOFCommentFeature(map, node, mofObject);
 
 		if (fDebug) {
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("Updating MOFObject: " + mofObject); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tfrom: " + node); //$NON-NLS-1$
-			org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tmap : " + map); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("Updating MOFObject: " + mofObject); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tfrom: " + node); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("\tmap : " + map); //$NON-NLS-1$
 		}
 		boolean notificationFlag = isNotificationEnabled();
 		boolean hasChanged = false;
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMRenderer.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMRenderer.java
index 53fbdc7..d07e3c4 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMRenderer.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMRenderer.java
@@ -28,7 +28,7 @@
 
 import org.eclipse.emf.common.util.WrappedException;
 import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin;
 import org.eclipse.wst.common.internal.emf.utilities.DOMLoadOptions;
 import org.eclipse.wst.common.internal.emf.utilities.DOMUtilities;
 import org.eclipse.wst.common.internal.emf.utilities.Revisit;
@@ -39,7 +39,7 @@
 
 
 
-public class EMF2DOMRenderer extends AbstractRendererImpl implements Renderer {
+public class EMF2DOMRenderer extends AbstractRendererImpl {
 
 	protected Map domAdapterRegistry;
 	protected boolean needsToCreateDOM = true;
@@ -191,11 +191,11 @@
 			/* source.setSystemId(getResource().getSystemId()); */
 			transformer.transform(source, new StreamResult(out));
 		} catch (TransformerConfigurationException e) {
-			Logger.getLogger().logError(e);
+			EcoreUtilitiesPlugin.logError(e);
 		} catch (TransformerFactoryConfigurationError e) {
-			Logger.getLogger().logError(e);
+			EcoreUtilitiesPlugin.logError(e);
 		} catch (TransformerException e) {
-			Logger.getLogger().logError(e);
+			EcoreUtilitiesPlugin.logError(e);
 		} finally {
 		}
 	}
@@ -241,6 +241,7 @@
 		}
 	}
 
+	@Override
 	public void preUnload() {
 		EMF2DOMAdapter adapter = (EMF2DOMAdapter) EcoreUtil.getAdapter(resource.eAdapters(), EMF2DOMAdapter.ADAPTER_CLASS);
 		if (adapter != null) {
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMRendererFactory.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMRendererFactory.java
index fce5603..ff4fbbb 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMRendererFactory.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2DOMRendererFactory.java
@@ -20,6 +20,7 @@
 	/**
 	 * @see com.ibm.etools.emf2xml.RendererFactory#createRenderer()
 	 */
+	@Override
 	public Renderer createRenderer() {
 		EMF2DOMRenderer renderer = new EMF2DOMRenderer();
 		renderer.setValidating(isValidating());
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXDocumentHandler.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXDocumentHandler.java
index a25bb63..540c2af 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXDocumentHandler.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXDocumentHandler.java
@@ -13,7 +13,7 @@
 
 import java.io.IOException;
 
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin;
 import org.xml.sax.Attributes;
 import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;
@@ -44,6 +44,7 @@
 	/**
 	 * @see org.xml.sax.helpers.DefaultHandler#resolveEntity(java.lang.String, java.lang.String)
 	 */
+	@Override
 	public InputSource resolveEntity(String publicId, String systemId) throws SAXException {
 		InputSource result = null;
 		this.resource.setDoctypeValues(publicId, systemId);
@@ -65,6 +66,7 @@
 	/**
 	 * @see org.xml.sax.ContentHandler#startDocument()
 	 */
+	@Override
 	public void startDocument() throws SAXException {
 		/*
 		 * The endDocument() method should have frozen the pool, or it may not be warmed yet. In
@@ -82,6 +84,7 @@
 	 * @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String,
 	 *      java.lang.String, org.xml.sax.Attributes)
 	 */
+	@Override
 	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
 		addToStack(qName, attributes);
 	}
@@ -89,6 +92,7 @@
 	/**
 	 * @see org.xml.sax.ContentHandler#characters(char[], int, int)
 	 */
+	@Override
 	public void characters(char[] data, int start, int length) throws SAXException {
 
 		CacheEventNode currentRecord = getCurrentRecord();
@@ -101,6 +105,7 @@
 	 * @see org.xml.sax.ContentHandler#endElement(java.lang.String, java.lang.String,
 	 *      java.lang.String)
 	 */
+	@Override
 	public void endElement(String uri, String localName, String qName) throws SAXException {
 
 		CacheEventNode currentRecord = null;
@@ -120,6 +125,7 @@
 	/**
 	 * @see org.xml.sax.ContentHandler#endDocument()
 	 */
+	@Override
 	public void endDocument() throws SAXException {
 		CacheEventNode lastRecord = this.removeCurrentRecord();
 		lastRecord.commit();
@@ -129,6 +135,7 @@
 	/**
 	 * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
 	 */
+	@Override
 	public void error(SAXParseException ex) throws SAXException {
 		throw ex;
 	}
@@ -136,6 +143,7 @@
 	/**
 	 * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
 	 */
+	@Override
 	public void fatalError(SAXParseException ex) throws SAXException {
 		throw ex;
 	}
@@ -143,8 +151,9 @@
 	/**
 	 * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
 	 */
+	@Override
 	public void warning(SAXParseException ex) throws SAXException {
-		Logger.getLogger().logWarning(ex);
+		EcoreUtilitiesPlugin.logWarning(ex);
 	}
 
 	/**
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXRenderer.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXRenderer.java
index 86f721f..0913c14 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXRenderer.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXRenderer.java
@@ -15,6 +15,7 @@
 import java.io.OutputStream;
 import java.util.Map;
 
+import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 import javax.xml.transform.OutputKeys;
@@ -27,7 +28,7 @@
 import javax.xml.transform.stream.StreamResult;
 
 import org.eclipse.emf.common.util.WrappedException;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXNotRecognizedException;
@@ -50,7 +51,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.Renderer#doLoad(java.io.InputStream, java.util.Map)
 	 */
-	public void doLoad(InputStream in, Map options) {
+	public void doLoad(InputStream in, Map options) throws IOException {
 		try {
 			SAXParserFactory factory = SAXParserFactory.newInstance();
 			factory.setValidating(isValidating());
@@ -65,21 +66,23 @@
 			try {
 				reader.setFeature("http://xml.org/sax/features/validation", isValidating()); //$NON-NLS-1$
 			} catch (SAXNotRecognizedException snre) {
+                // ignore exception
 			}
 			try {
 				reader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); //$NON-NLS-1$
 			} catch (SAXNotRecognizedException snre) {
-			}
+                // ignore exception
+            }
 			try {
 				reader.setFeature("http://apache.org/xml/features/validation/schema", isValidating()); //$NON-NLS-1$
 			} catch (SAXNotRecognizedException e) {
 				reader.setFeature("http://xml.org/sax/features/validation", false); //$NON-NLS-1$
-				Logger.getLogger().log("Warning: Parser does not support \"http://apache.org/xml/features/validation/schema\". Validation will be disabled."); //$NON-NLS-1$
+				EcoreUtilitiesPlugin.logWarning("Warning: Parser does not support \"http://apache.org/xml/features/validation/schema\". Validation will be disabled."); //$NON-NLS-1$
 			}
 			try {
 				reader.setFeature("http://apache.org/xml/features/allow-java-encodings", true); //$NON-NLS-1$
 			} catch (SAXNotRecognizedException e) {
-				Logger.getLogger().log("Warning: Parser does not support \"http://apache.org/xml/features/allow-java-encodings\"."); //$NON-NLS-1$
+				EcoreUtilitiesPlugin.logWarning("Warning: Parser does not support \"http://apache.org/xml/features/allow-java-encodings\"."); //$NON-NLS-1$
 			}
 			/*
 			 * try { reader.setProperty("http://xml.org/sax/properties/lexical-handler", handler); }
@@ -93,9 +96,11 @@
 			reader.parse(testsource);
 		} catch (RuntimeException t_rex) {
 			throw t_rex;
-		} catch (Exception ex) {
-			throw new WrappedException(ex);
-		}
+		} catch (SAXException se) {
+		    throw new WrappedException(se);
+        } catch (ParserConfigurationException e) {
+            throw new WrappedException(e);
+        }
 	}
 
 	/*
@@ -133,12 +138,12 @@
 					transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, getResource().getSystemId());
 
 			} catch (TransformerConfigurationException e) {
-				Logger.getLogger().logError(e);
+				EcoreUtilitiesPlugin.logError(e);
 			} catch (TransformerFactoryConfigurationError e) {
-				Logger.getLogger().logError(e);
+				EcoreUtilitiesPlugin.logError(e);
 			}
 			if (handler == null) {
-				Logger.getLogger("SAX Writer is null"); //$NON-NLS-1$
+				EcoreUtilitiesPlugin.logError("SAX Writer is null"); //$NON-NLS-1$
 				return;
 			}
 			EMF2SAXWriter writer = new EMF2SAXWriter();
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXRendererFactory.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXRendererFactory.java
index d3fd5d9..a2544d6 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXRendererFactory.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/EMF2SAXRendererFactory.java
@@ -33,6 +33,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.RendererFactory#createRenderer()
 	 */
+	@Override
 	public Renderer createRenderer() {
 		EMF2SAXRenderer renderer = new EMF2SAXRenderer();
 		renderer.setValidating(isValidating());
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/FileNameResourceFactoryRegistry.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/FileNameResourceFactoryRegistry.java
index 41b3dab..ff7b3a2 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/FileNameResourceFactoryRegistry.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/FileNameResourceFactoryRegistry.java
@@ -46,10 +46,12 @@
 		
 	}
 
+	@Override
 	public synchronized Resource.Factory getFactory(URI uri) {
 		return getFactory(uri, null);
 	}
 
+	@Override
 	public Resource.Factory getFactory(URI uri, String contentType)
 	{
 		Resource.Factory resourceFactory = null;
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/GenericTranslator.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/GenericTranslator.java
index eafe09f..c714f23 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/GenericTranslator.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/GenericTranslator.java
@@ -79,6 +79,7 @@
 	/**
 	 * @return Translator[]
 	 */
+	@Override
 	public Translator[] getChildren() {
 		return children;
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/IDTranslator.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/IDTranslator.java
index 64bf6a0..46e9183 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/IDTranslator.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/IDTranslator.java
@@ -25,6 +25,11 @@
 public class IDTranslator extends Translator {
 	public class NoResourceException extends RuntimeException {
 
+		/**
+		 * 
+		 */
+		private static final long serialVersionUID = 8633201291288237530L;
+
 		public NoResourceException() {
 			super();
 		}
@@ -41,17 +46,21 @@
 		super("id", ID_FEATURE, DOM_ATTRIBUTE); //$NON-NLS-1$
 	}
 
+	@Override
 	public void setMOFValue(EObject emfObject, Object value) {
-		XMIResource res = (XMIResource) emfObject.eResource();
-		if (res == null)
-			throw new NoResourceException();
-		String id = res.getID(emfObject);
-		if (id == null && value == null)
-			return;
-		if ((id != null && !id.equals(value)) || (value != null && !value.equals(id)))
-			res.setID(emfObject, (String) value);
+		if (emfObject != null) {
+			XMIResource res = (XMIResource) emfObject.eResource();
+			if (res == null)
+				throw new NoResourceException();
+			String id = res.getID(emfObject);
+			if (id == null && value == null)
+				return;
+			if ((id != null && !id.equals(value)) || (value != null && !value.equals(id)))
+				res.setID(emfObject, (String) value);
+		}
 	}
 
+	@Override
 	public Object getMOFValue(EObject emfObject) {
 		if (emfObject == null)
 			throw new NoResourceException();
@@ -62,10 +71,12 @@
 	}
 
 
+	@Override
 	public boolean featureExists(EObject emfObject) {
 		return true;
 	}
 
+	@Override
 	public boolean isIDMap() {
 		return true;
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/MappedXMIHelper.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/MappedXMIHelper.java
index f0939a2..f146af1 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/MappedXMIHelper.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/MappedXMIHelper.java
@@ -57,6 +57,7 @@
 
 	}
 
+	@Override
 	public URI resolve(URI relative, URI base) {
 		URI resolved = null;
 		boolean isMapped = false;
@@ -87,6 +88,7 @@
 		return ((CompatibilityXMIResource) resource).getFormat() == CompatibilityXMIResource.FORMAT_MOF5 || usingMaps;
 	}
 
+	@Override
 	public void addPrefix(String prefix, String uri) {
 		/*
 		 * problem - the incoming key value pair is ejbbnd->ejbbnd.xmi; however, the map already has
@@ -95,7 +97,7 @@
 		if (uri.endsWith(".ecore")) { //$NON-NLS-1$
 			usingMaps = false;
 		}
-		String existing = (String) prefixesToURIs.get(prefix);
+		String existing = prefixesToURIs.get(prefix);
 		if (existing == null) {
 			prefixesToURIs.put(prefix, uri);
 			namespaceSupport.declarePrefix(prefix, uri);
@@ -112,6 +114,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl#getHREF(EObject)
 	 */
+	@Override
 	public String getHREF(EObject obj) {
 		if (!getCompatibilityResource().usesDefaultFormat()) {
 			URIConverter conv = getURIConverter();
@@ -158,13 +161,14 @@
 	}
 
 	protected URI makeRelative(URI objectURI, CompatibilityURIConverter conv) {
-		String fragment = objectURI.fragment();
-		objectURI = objectURI.trimFragment();
-		URI relative = (URI) getCachedRelativeURIs().get(objectURI);
+		URI innerObjectURI = objectURI;
+		String fragment = innerObjectURI.fragment();
+		innerObjectURI = innerObjectURI.trimFragment();
+		URI relative = (URI) getCachedRelativeURIs().get(innerObjectURI);
 		if (relative == null) {
-			relative = conv.deNormalize(objectURI);
+			relative = conv.deNormalize(innerObjectURI);
 			if (relative.isRelative())
-				cachedRelativeURIs.put(objectURI, relative);
+				cachedRelativeURIs.put(innerObjectURI, relative);
 		}
 		return relative.appendFragment(fragment);
 	}
@@ -185,6 +189,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl#getID(EObject)
 	 */
+	@Override
 	public String getID(EObject obj) {
 		if (getCompatibilityResource().usesDefaultFormat())
 			return super.getID(obj);
@@ -230,6 +235,7 @@
 		this.packageURIsToPrefixes = packageURIsToPrefixes;
 	}
 
+	@Override
 	public String getQName(EClass c) {
 		String name = getName(c);
 
@@ -257,6 +263,7 @@
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl#setValue(EObject, EStructuralFeature,
 	 *      Object, int)
 	 */
+	@Override
 	public void setValue(EObject object, EStructuralFeature feature, Object value, int position) {
 		if (feature == NULL_FEATURE)
 			return;
@@ -278,6 +285,7 @@
 	 * @see org.eclipse.emf.ecore.xmi.XMLHelper#getFeature(org.eclipse.emf.ecore.EClass,
 	 *      java.lang.String, java.lang.String, boolean)
 	 */
+	@Override
 	public EStructuralFeature getFeature(EClass eClass, String namespaceURI, String name, boolean isElement) {
 		if (UnsupportedFeature.isUnsupported(eClass, name))
 			return NULL_FEATURE;
@@ -289,6 +297,7 @@
 	 * 
 	 * @see org.eclipse.emf.ecore.xmi.XMLHelper#getFeatureKind(org.eclipse.emf.ecore.EStructuralFeature)
 	 */
+	@Override
 	public int getFeatureKind(EStructuralFeature feature) {
 		if (feature == NULL_FEATURE)
 			return XMLHelper.DATATYPE_SINGLE;
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/MultiObjectTranslator.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/MultiObjectTranslator.java
index 91ed5bc..79226f6 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/MultiObjectTranslator.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/MultiObjectTranslator.java
@@ -45,6 +45,7 @@
 	 * @see com.ibm.etools.emf2xml.impl.Translator#createEMFObject(java.lang.String,
 	 *      java.lang.String)
 	 */
+	@Override
 	public EObject createEMFObject(String nodeName, String readAheadName) {
 		return getDelegateFor(nodeName, readAheadName).createEMFObject(nodeName, readAheadName);
 	}
@@ -54,6 +55,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#getChildren(java.lang.Object)
 	 */
+	@Override
 	public Translator[] getChildren(Object o, int version) {
 		if (o == null)
 			return EMPTY_TRANSLATORS;
@@ -65,6 +67,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#getDOMName(java.lang.Object)
 	 */
+	@Override
 	public String getDOMName(Object value) {
 		return getDelegateFor((EObject) value).getDOMName(value);
 	}
@@ -75,10 +78,12 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#isManagedByParent()
 	 */
+	@Override
 	public boolean isManagedByParent() {
 		return false;
 	}
 
+	@Override
 	public boolean shouldIndentEndTag(Node node) {
 		if (node.getNodeName().equals(getDOMPath())) {
 			return super.shouldIndentEndTag(node);
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/NamespaceTranslator.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/NamespaceTranslator.java
index 3c23ed4..ea4cc38 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/NamespaceTranslator.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/NamespaceTranslator.java
@@ -46,6 +46,7 @@
 	 * @see com.ibm.etools.emf2xml.impl.Translator#setMOFValue(org.eclipse.emf.ecore.EObject,
 	 *      java.lang.Object)
 	 */
+	@Override
 	public void setMOFValue(EObject emfObject, Object value) {
 		NamespaceAdapter.addNamespace(prefix, (String) value, emfObject);
 	}
@@ -55,6 +56,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#isSetMOFValue(org.eclipse.emf.ecore.EObject)
 	 */
+	@Override
 	public boolean isSetMOFValue(EObject emfObject) {
 		return getMOFValue(emfObject) != null;
 	}
@@ -64,6 +66,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#getMOFValue(org.eclipse.emf.ecore.EObject)
 	 */
+	@Override
 	public Object getMOFValue(EObject mofObject) {
 		return NamespaceAdapter.getNamespaceURIAtThisLevel(prefix, mofObject);
 	}
@@ -73,6 +76,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#unSetMOFValue(org.eclipse.emf.ecore.EObject)
 	 */
+	@Override
 	public void unSetMOFValue(EObject emfObject) {
 		NamespaceAdapter.removeNamespace(prefix, emfObject);
 	}
@@ -82,6 +86,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#featureExists(org.eclipse.emf.ecore.EObject)
 	 */
+	@Override
 	public boolean featureExists(EObject emfObject) {
 		return true;
 	}
@@ -91,6 +96,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#isDataType()
 	 */
+	@Override
 	public boolean isDataType() {
 		return true;
 	}
@@ -101,6 +107,7 @@
 	 * @see com.ibm.etools.emf2xml.impl.Translator#isMapFor(java.lang.Object, java.lang.Object,
 	 *      java.lang.Object)
 	 */
+	@Override
 	public boolean isMapFor(Object aFeature, Object oldValue, Object newValue) {
 		if (aFeature == feature) {
 			Namespace namespace = (Namespace) (oldValue == null ? newValue : oldValue);
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ObjectTranslatorFilter.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ObjectTranslatorFilter.java
index 918b9ce..3e479f5 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ObjectTranslatorFilter.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ObjectTranslatorFilter.java
@@ -23,6 +23,7 @@
 		super(trans, version);
 	}
 
+	@Override
 	public final int scanNextTranslator(Translator[] children, int start) {
 		int found = start + 1;
 		for (; found < children.length; ++found) {
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedResource.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedResource.java
index 45faf2b..0a4818a 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedResource.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedResource.java
@@ -12,9 +12,8 @@
 
 
 
-import org.eclipse.emf.ecore.resource.Resource;
 
-public interface ReferencedResource extends Resource, CompatibilityXMIResource {
+public interface ReferencedResource extends CompatibilityXMIResource {
 	//TODO - rename packaged
 
 	public static final String DELETED_ERROR_MSG = "This resource has been deleted and can no longer be used."; //$NON-NLS-1$
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedXMIFactoryImpl.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedXMIFactoryImpl.java
index d891c2c..2a9fe76 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedXMIFactoryImpl.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedXMIFactoryImpl.java
@@ -42,6 +42,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl#createResource(URI)
 	 */
+	@Override
 	public final Resource createResource(URI uri) {
 		Resource res = doCreateResource(uri);
 		adaptNew(res);
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedXMIResourceImpl.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedXMIResourceImpl.java
index 835636c..33de28d 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedXMIResourceImpl.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ReferencedXMIResourceImpl.java
@@ -26,7 +26,7 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin;
 import org.eclipse.wst.common.internal.emf.utilities.IDUtil;
 
 public class ReferencedXMIResourceImpl extends CompatibilityXMIResourceImpl implements ReferencedResource {
@@ -43,57 +43,72 @@
 	  public static class ESynchronizedAdapterList extends EAdapterList
 	  {
 
-	    public ESynchronizedAdapterList(Notifier notifier) {
+	    /**
+		 * 
+		 */
+		private static final long serialVersionUID = 7855438339187540718L;
+
+		public ESynchronizedAdapterList(Notifier notifier) {
 			super(notifier);
 		}
 
+		@Override
 		public synchronized boolean add(Object object)
 	    {
 	    return super.add(object);
 	    }
 
-	    public synchronized void add(int index, Object object)
+	    @Override
+		public synchronized void add(int index, Object object)
 	    {
 	    super.add(index, object);
 	    }
 
-	    public synchronized boolean addAll(Collection collection)
+	    @Override
+		public synchronized boolean addAll(Collection collection)
 	    {
 	    return super.addAll(collection);
 	    }
 
-	    public synchronized boolean remove(Object object)
+	    @Override
+		public synchronized boolean remove(Object object)
 	    {
 	    return super.remove(object);
 	    }
 
-	    public synchronized Object remove(int index)
+	    @Override
+		public synchronized Object remove(int index)
 	    {
 	    return super.remove(index);
 	    }
 
-	    public synchronized boolean removeAll(Collection collection)
+	    @Override
+		public synchronized boolean removeAll(Collection collection)
 	    {
 	    return super.removeAll(collection);
 	    }
 
-	    public synchronized void clear()
+	    @Override
+		public synchronized void clear()
 	    {
 	     super.clear();
 	    }
 
 
-	    public synchronized Object set(int index, Object object)
+	    @Override
+		public synchronized Object set(int index, Object object)
 	    {
 	    return super.set(index, object);
 	    }
 
-	    public synchronized void move(int newPosition, Object object)
+	    @Override
+		public synchronized void move(int newPosition, Object object)
 	    {
 	    super.move(newPosition, object);
 	    }
 
-	    public synchronized Object move(int newPosition, int oldPosition)
+	    @Override
+		public synchronized Object move(int newPosition, int oldPosition)
 	    {
 	    return super.move(newPosition, oldPosition);
 	    }
@@ -272,6 +287,7 @@
 			save(Collections.EMPTY_MAP);
 	}
 
+	@Override
 	public String toString() {
 		return TO_STRING + getURI().toString() + READ_COUNT_TO_STRING + new Integer(readReferenceCount) + WRITE_COUNT_TO_STRING + new Integer(editReferenceCount);
 	}
@@ -298,6 +314,7 @@
 		return forceRefresh;
 	}
 
+	@Override
 	protected void basicDoLoad(InputStream arg0, Map arg1) throws IOException {
 		boolean isTrackingMods = isTrackingModification();
 		try {
@@ -313,16 +330,28 @@
 	/**
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#doUnload()
 	 */
+	@Override
 	protected void doUnload() {
-		if (isTrackingModification() && editReferenceCount < 1) //do not turn off modification if
-			// we still have a write count
-			setTrackingModification(false);
-		super.doUnload();
-		setForceRefresh(false);
-		setModified(false); //dcb - this is required to ensure that resources without files are
-		// marked as not modified.
-		if (readReferenceCount == 0 && editReferenceCount == 0) {
-			getResourceSet().getResources().remove(this);
+		
+		try {
+			// Using load lock to ensure no other threads will attempt a load during the unload process
+			addSynchronizationLoadingAdapter();
+			waitForResourceToLoadIfNecessary();
+			
+			if (isTrackingModification() && editReferenceCount < 1) //do not turn off modification if
+				// we still have a write count
+				setTrackingModification(false);
+			super.doUnload();
+			setForceRefresh(false);
+			setModified(false); //dcb - this is required to ensure that resources without files are
+			// marked as not modified.
+			if (readReferenceCount == 0 && editReferenceCount == 0 && getResourceSet() != null) {
+				getResourceSet().getResources().remove(this);
+			}
+		
+		} finally {
+			//Removing the load lock
+			removeLoadingSynchronizationAdapter();
 		}
 			
 	}
@@ -341,6 +370,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.resource.Resource#save(Object)
 	 */
+	@Override
 	public void save(Map options) throws IOException {
 		notifyAboutToSave();
         try {
@@ -349,8 +379,7 @@
             notifySaveFailed();
             if (e instanceof IOException)
                 throw (IOException) e;
-            else
-                Logger.getLogger().write(e);
+            EcoreUtilitiesPlugin.logError(e);
         }
         notifySaved();
 	}
@@ -372,11 +401,13 @@
 		  Notification notification =
 			new NotificationImpl(eventType, this, this)
 			{
-			  public Object getNotifier()
+			  @Override
+			public Object getNotifier()
 			  {
 				return ReferencedXMIResourceImpl.this;
 			  }
-			  public int getFeatureID(Class expectedClass)
+			  @Override
+			public int getFeatureID(Class expectedClass)
 			  {
 				return eventType;
 			  }
@@ -392,6 +423,7 @@
 		return false;
 	}
 	
+	@Override
 	public EList eAdapters()
 	  {
 	    if (eAdapters == null)
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/RendererFactory.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/RendererFactory.java
index 9f294d3..356c05f 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/RendererFactory.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/RendererFactory.java
@@ -8,10 +8,9 @@
  **************************************************************************************************/
 package org.eclipse.wst.common.internal.emf.resource;
 
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Iterator;
+import java.util.Map;
+import java.util.WeakHashMap;
 
 
 public abstract class RendererFactory {
@@ -48,6 +47,7 @@
 		defaultRendererFactory = factory;
 	}
 
+	@Override
 	public String toString() {
 		return "RendererFactory instance: " + getClass().getName(); //$NON-NLS-1$
 	}
@@ -56,7 +56,8 @@
 
 		private static final Notifier INSTANCE = new Notifier();
 
-		private final Collection resourceFactoryListeners = new ArrayList();
+		// use a WeakHashMap for a weak HashSet
+		private final Map resourceFactoryListeners = new WeakHashMap();
 
 		private Notifier() {
 		}
@@ -72,17 +73,11 @@
 				 * work
 				 */
 				if (rendererFactory != RendererFactory.getDefaultRendererFactory()) {
-					WeakReference wref = null;
-					Listener listener = null;
 					synchronized (resourceFactoryListeners) {
-						for (Iterator i = resourceFactoryListeners.iterator(); i.hasNext();) {
-							wref = (WeakReference) i.next();
-							listener = (Listener) wref.get();
+						for (Iterator i = resourceFactoryListeners.keySet().iterator(); i.hasNext();) {
+							Listener listener = (Listener) i.next();
 							//System.out.println("Notifying Listener: " + listener);
-							if (listener != null)
-								listener.updateRendererFactory(rendererFactory);
-							else
-								i.remove();
+							listener.updateRendererFactory(rendererFactory);
 						}
 					}
 				}
@@ -92,29 +87,13 @@
 		public void addListener(Listener l) {
 			//System.out.println("Adding listener: " + l);
 			synchronized (resourceFactoryListeners) {
-				resourceFactoryListeners.add(new WeakReference(l));
+				resourceFactoryListeners.put(l, null);
 			}
 		}
 
 		public void removeListener(Listener listenerToRemove) {
-			final int length = resourceFactoryListeners.size();
-			if (length > 0) {
-				WeakReference wref = null;
-				Listener listener = null;
-				synchronized (resourceFactoryListeners) {
-					for (Iterator i = resourceFactoryListeners.iterator(); i.hasNext();) {
-						wref = (WeakReference) i.next();
-						listener = (Listener) wref.get();
-						if (listener != null) {
-							if (listener == listenerToRemove) {
-								i.remove();
-								break;
-							}
-						} else {
-							i.remove();
-						}
-					}
-				}
+			synchronized (resourceFactoryListeners) {
+				resourceFactoryListeners.remove(listenerToRemove);
 			}
 		}
 
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ResourceFactoryDescriptor.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ResourceFactoryDescriptor.java
index 77984c3..697b516 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ResourceFactoryDescriptor.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/ResourceFactoryDescriptor.java
@@ -56,7 +56,8 @@
 	 * instead of comparing the short segments when searching for an
 	 * applicable descriptor from a set.  
 	 * 
-	 * <p><b>Subclasses may NOT return null.</b></p>
+	 * <p><b>Subclasses may NOT return null unless they also override
+	 * {@link #hashCode()} and {@link #equals(Object)}.</b></p>
 	 *  
 	 * @return The short segment that this descriptor is applicable to.
 	 */
@@ -73,10 +74,12 @@
 	 */
 	public abstract Resource.Factory createFactory();
 	
+	@Override
 	public int hashCode() {
 		return getShortSegment().hashCode();
 	}
 	
+	@Override
 	public boolean equals(Object o) {
 		if(o instanceof ResourceFactoryDescriptor)
 			return getShortSegment().equals(((ResourceFactoryDescriptor)o).getShortSegment());
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/RootTranslator.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/RootTranslator.java
index f5640e9..bbba2f3 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/RootTranslator.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/RootTranslator.java
@@ -30,6 +30,7 @@
 	/**
 	 * @see com.ibm.etools.emf2xml.impl.Translator#setMOFValue(Notifier, Object, int)
 	 */
+	@Override
 	public void setMOFValue(Notifier owner, Object value, int newIndex) {
 		((Resource) owner).getContents().add(newIndex, (EObject)value);
 	}
@@ -37,6 +38,7 @@
 	/**
 	 * @see com.ibm.etools.emf2xml.impl.Translator#removeMOFValue(Notifier, Object)
 	 */
+	@Override
 	public void removeMOFValue(Notifier owner, Object value) {
 		((Resource) owner).getContents().remove(value);
 	}
@@ -47,6 +49,7 @@
 	 * @see com.ibm.etools.emf2xml.impl.Translator#setMOFValue(org.eclipse.emf.ecore.EObject,
 	 *      java.lang.Object)
 	 */
+	@Override
 	public void setMOFValue(Resource res, Object value) {
 		if (res != null && value != null)
 			res.getContents().add((EObject)value);
@@ -57,6 +60,7 @@
 	 * 
 	 * @see com.ibm.etools.emf2xml.impl.Translator#isMultiValued()
 	 */
+	@Override
 	public boolean isMultiValued() {
 		return true;
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/SourceLinkTranslator.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/SourceLinkTranslator.java
index d5d697b..371e0d8 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/SourceLinkTranslator.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/SourceLinkTranslator.java
@@ -51,6 +51,7 @@
 		super(domNameAndPath, aFeature, style);
 	}
 
+	@Override
 	public Object convertStringToValue(String strValue, EObject owner) {
 
 		Object value = null;
@@ -62,6 +63,7 @@
 		return value;
 	}
 
+	@Override
 	public String convertValueToString(Object value, EObject owner) {
 		TranslatorPath path = fTranslatorPaths[0];
 		Object attrValue = path.getLastMap().getMOFValue((EObject) value);
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/StaticResourceFactoryDescriptor.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/StaticResourceFactoryDescriptor.java
index 8caf4ea..e2f46fc 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/StaticResourceFactoryDescriptor.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/StaticResourceFactoryDescriptor.java
@@ -34,6 +34,7 @@
 		this.factory = factory;
 	}  
 
+	@Override
 	public boolean isEnabledFor(URI fileURI) {
 		/* shortSegment must be non-null for the descriptor to be created, 
 		 * a validation check in init() verifies this requirement */
@@ -42,10 +43,12 @@
 		return false;
 	} 
 	
+	@Override
 	public Resource.Factory createFactory() {
 		 return factory;			
 	}
 
+	@Override
 	public String getShortSegment() {
 		return shortSegment;
 	}  
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/Translator.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/Translator.java
index ab28074..e46e58e 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/Translator.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/Translator.java
@@ -380,6 +380,7 @@
 		return (String[]) results.toArray(new String[results.size()]);
 	}
 
+	@Override
 	public String toString() {
 		StringBuffer sb = new StringBuffer();
 		String cn = getClass().getName();
@@ -410,12 +411,18 @@
 	/*
 	 * @see Object#equals(Object)
 	 */
+	@Override
 	public boolean equals(Object object) {
 		if (!(object instanceof Translator))
 			return false;
 		Translator mapInfo = (Translator) object;
 		return fDOMNames.equals(mapInfo.getDOMNames()) && (feature == null && mapInfo.getFeature() == null || feature.equals(mapInfo.getFeature()));
 	}
+	
+	@Override
+	public int hashCode() {
+		return super.hashCode() +fDOMNames.hashCode();
+	}
 
 	/**
 	 * Returns the isManagedByParent.
@@ -469,7 +476,7 @@
 	 *            org.eclipse.emf.ecore.EObject
 	 */
 	public boolean featureExists(EObject emfObject) {
-		if (feature == null)
+		if (feature == null || emfObject == null)
 			return false;
 
 		return emfObject.eClass().getEStructuralFeature(feature.getName()) != null;
@@ -510,20 +517,21 @@
 	public Object convertStringToValue(String strValue, EObject owner) {
 		if (feature == null)
 			return strValue;
-		if (strValue != null) {
+		String innerStrValue = strValue;
+		if (innerStrValue != null) {
 			if (isEnumWithHyphens())
-				strValue = strValue.replace('-', '_');
+				innerStrValue = innerStrValue.replace('-', '_');
 			if (!isCDATAContent()) {
-				strValue = strValue.trim();
+				innerStrValue = innerStrValue.trim();
 			}
 		}
-		Object value = FeatureValueConverter.DEFAULT.convertValue(strValue, feature);
+		Object value = FeatureValueConverter.DEFAULT.convertValue(innerStrValue, feature);
 		if (value == null) {
 			if (isEmptyTag() && !isDOMAttribute() && !isDOMTextValue() && isBooleanFeature())
 				return Boolean.TRUE;
 			EObject convertToType = feature.getEType();
 			if (convertToType == null)
-				value = strValue;
+				value = innerStrValue;
 			else if (convertToType.equals(getEcorePackage().getEString())) {
 				value = ""; //$NON-NLS-1$
 			}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorFilter.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorFilter.java
index b12067d..a38b83b 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorFilter.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorFilter.java
@@ -104,6 +104,7 @@
 				 * update the mode to VARIABLE_TRANSLATORS so we can skip to it directly next time
 				 */
 				this.mode = VARIABLE_TRANSLATORS_MODE;
+			//$FALL-THROUGH$
 			case VARIABLE_TRANSLATORS_MODE :
 				children = this.translator.getVariableChildren(target, this.version);
 				found = scanNextTranslator(children, this.index);
@@ -154,14 +155,15 @@
 	public static final Translator getNextChild(Translator translator, int startHint, int[] hints, EObject target, int version, TranslatorFilter translatorFilter) {
 
 		Translator result = null;
-
-		int index = startHint;
+		
+		int innerStartHint = startHint;
+		int index = innerStartHint;
 		Translator children[] = null;
 
 		switch (hints[MODE_HINT_INDX]) {
 			case STANDARD_TRANSLATORS_MODE :
 				children = translator.getChildren(target, version);
-				if (children != null && startHint < children.length) {
+				if (children != null && innerStartHint < children.length) {
 
 					/* Look for the next Attribute Translator */
 					index = translatorFilter.scanNextTranslator(children, index);
@@ -179,17 +181,18 @@
 					 * DO NOT BREAK we will default to VARIABLE TRANSLATORS MODE so we must reset
 					 * the startHint appropriately
 					 */
-					startHint = -1;
+					innerStartHint = -1;
 				}
 
+			//$FALL-THROUGH$
 			case VARIABLE_TRANSLATORS_MODE :
 				hints[MODE_HINT_INDX] = VARIABLE_TRANSLATORS_MODE;
 				/*
 				 * Reset the index.
 				 */
-				index = startHint;
+				index = innerStartHint;
 				children = translator.getVariableChildren(target, version);
-				if (children != null && children.length > 0 && startHint < children.length) {
+				if (children != null && children.length > 0 && innerStartHint < children.length) {
 					index = translatorFilter.scanNextTranslator(children, index);
 					result = (index >= 0) ? children[index] : null;
 				}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorPath.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorPath.java
index a2d843e..6678b51 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorPath.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorPath.java
@@ -75,6 +75,7 @@
 	 * 
 	 * @see java.lang.Object#toString()
 	 */
+	@Override
 	public String toString() {
 		StringBuffer sb = new StringBuffer();
 		String cn = getClass().getName();
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorResourceFactory.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorResourceFactory.java
index 20a450b..9427fb7 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorResourceFactory.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorResourceFactory.java
@@ -48,6 +48,7 @@
 		return this.listeningForUpdates;
 	}
 
+	@Override
 	public Resource doCreateResource(URI uri) {
 		Renderer aRenderer = rendererFactory.createRenderer();
 		return createResource(uri, aRenderer);
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorResourceImpl.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorResourceImpl.java
index d925245..78fbce0 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorResourceImpl.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/TranslatorResourceImpl.java
@@ -16,6 +16,7 @@
 import java.util.Collection;
 import java.util.Map;
 
+import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.NotificationImpl;
 import org.eclipse.emf.common.util.EList;
@@ -26,7 +27,7 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin;
 import org.eclipse.wst.common.internal.emf.utilities.StringUtil;
 import org.xml.sax.EntityResolver;
 
@@ -74,12 +75,14 @@
 		setRenderer(aRenderer);
 	}
 
+	@Override
 	public java.lang.String getEncoding() {
 		if (super.getEncoding() == null)
 			setEncoding(DEFAULT_ENCODING);
 		return super.getEncoding();
 	}
 
+	@Override
 	public String getPublicId() {
 		return publicId;
 	}
@@ -93,6 +96,7 @@
 		return (EObject) getContents().get(0);
 	}
 
+	@Override
 	public String getSystemId() {
 		return systemId;
 	}
@@ -103,10 +107,12 @@
 		systemId = aSystemId;
 		if (changed) {
 			eNotify(new NotificationImpl(Notification.SET, null, null) {
+				@Override
 				public Object getFeature() {
 					return DOC_TYPE_FEATURE;
 				}
 
+				@Override
 				public Object getNotifier() {
 					return TranslatorResourceImpl.this;
 				}
@@ -119,6 +125,7 @@
 	 * 
 	 * @return String
 	 */
+	@Override
 	public String getXMLVersion() {
 		if (xmlVersion == null)
 			xmlVersion = DEFAULT_VERSION;
@@ -131,10 +138,12 @@
 	 * @param xmlVersion
 	 *            The xmlVersion to set
 	 */
+	@Override
 	public void setXMLVersion(String xmlVersion) {
 		this.xmlVersion = xmlVersion;
 	}
 
+	@Override
 	protected void basicDoLoad(InputStream inputStream, Map options) throws IOException {
 		// long start = System.currentTimeMillis();
 		boolean isTrackingMods = isTrackingModification();
@@ -151,6 +160,7 @@
 		// recordTime("Load", start, end);
 	}
 
+	@Override
 	public void save(Map options) throws IOException {
         if (renderer.useStreamsForIO()) {
             super.save(options);
@@ -163,8 +173,7 @@
                  notifySaveFailed();
                 if (e instanceof IOException)
                     throw (IOException) e;
-                else
-                    Logger.getLogger().write(e);
+                EcoreUtilitiesPlugin.logError(e);
             }
             notifySaved();
         }
@@ -175,6 +184,7 @@
 	 * @see com.ibm.etools.xmi.helpers.CompatibilityXMIResourceImpl#doSave(OutputStream,
 	 *      Map)
 	 */
+	@Override
 	public void doSave(OutputStream outputStream, Map options) throws IOException {
 		// long start = System.currentTimeMillis();
 		renderer.doSave(outputStream, options);
@@ -194,11 +204,13 @@
 	/**
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#doUnload()
 	 */
+	@Override
 	protected void doUnload() {
 		renderer.preUnload();
 		super.doUnload();
 	}
 
+	@Override
 	public String toString() {
 		return getClass().getName() + getURI().toString();
 	}
@@ -234,6 +246,7 @@
 		return super.getContents();
 	}
 
+	@Override
 	public EList getContents() {
 		waitForResourceToLoadIfNecessary();
 		if (contents == null) {
@@ -244,11 +257,18 @@
 
 	protected void initializeContents() {
 		contents = new ResourceImpl.ContentsEList() {
+			/**
+			 * 
+			 */
+			private static final long serialVersionUID = 1L;
+
+			@Override
 			public boolean add(Object object) {
 				renderer.prepareToAddContents();
 				return super.add(object);
 			}
 
+			@Override
 			public boolean addAll(Collection collection) {
 				renderer.prepareToAddContents();
 				return super.addAll(collection);
@@ -267,6 +287,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#init()
 	 */
+	@Override
 	protected void init() {
 		super.init();
 		setEncoding(DEFAULT_ENCODING);
@@ -316,6 +337,7 @@
 	 * 
 	 * @see org.eclipse.emf.ecore.xmi.XMLResource#setID(EObject, String)
 	 */
+	@Override
 	public void setID(EObject eObject, String id) {
 		String oldId = getID(eObject);
 		super.setID(eObject, id);
@@ -328,15 +350,20 @@
 	 * 
 	 * @return boolean
 	 */
+	@Override
 	public boolean isModified() {
 		return super.isModified() || renderer.isModified();
 	}
+	public boolean isReverting() {
+		return ((AbstractRendererImpl)renderer).isReverting();
+	}
 
 	/*
 	 * Overriden to give the renderer a hook
 	 * 
 	 * @see org.eclipse.wst.common.internal.emf.resource.ReferencedResource#accessForWrite()
 	 */
+	@Override
 	public void accessForWrite() {
 		renderer.accessForWrite();
 		super.accessForWrite();
@@ -347,16 +374,19 @@
 	 * 
 	 * @see org.eclipse.wst.common.internal.emf.resource.ReferencedResource#accessForRead()
 	 */
+	@Override
 	public void accessForRead() {
 		renderer.accessForRead();
 		super.accessForRead();
 	}
 
+	@Override
 	public void releaseFromRead() {
 		renderer.releaseFromRead();
 		super.releaseFromRead();
 	}
 
+	@Override
 	public void releaseFromWrite() {
 		renderer.releaseFromWrite();
 		super.releaseFromWrite();
@@ -367,32 +397,48 @@
 	 * 
 	 * @see com.ibm.etools.emf.workbench.ReferencedXMIResourceImpl#preDelete()
 	 */
+	@Override
 	public void preDelete() {
 		super.preDelete();
 		renderer.preDelete();
 	}
 
+	@Override
 	public boolean isShared() {
 		return super.isShared() || renderer.isShared();
 	}
 
+	@Override
 	public boolean isSharedForWrite() {
 		return super.isSharedForWrite() || renderer.isSharedForWrite();
 	}
 
+	@Override
 	public void load(Map options) throws IOException {
-		synchronized (this) {
-			if (isLoaded)
+		
+			if (isLoaded())
 				return;
-			// System.out.println(Thread.currentThread() + "
-			// TranslatorResource.load(): " + this);
+			
 			if (renderer.useStreamsForIO()) {
 				super.load(options);
 			}
-			else if (!isLoaded) {
-				load((InputStream) null, options);
+			else if (!isLoaded()) {
+				isShared();
+				loadExisting(options);
 			}
-		}
-
 	}
+
+	@Override
+	public void eNotify(Notification notification) {
+	    Adapter[] eAdapters = eBasicAdapterArray();
+	    if (eAdapters != null && eDeliver())
+	    {
+	      for (int i = 0, size = eAdapters.length; i < size; ++i)
+	      {
+	      	Adapter temp;
+	    	  if ((temp = eAdapters[i]) != null)
+	    		  temp.notifyChanged(notification);
+	      }
+	    }
+	  }
 }
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/UnsupportedFeature.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/UnsupportedFeature.java
index 43c5864..424241c 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/UnsupportedFeature.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/resource/UnsupportedFeature.java
@@ -10,9 +10,6 @@
  *******************************************************************************/
 /*
  * Created on Apr 13, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Generation - Code and Comments
  */
 package org.eclipse.wst.common.internal.emf.resource;
 
@@ -21,9 +18,6 @@
 
 /**
  * @author cbridgha
- * 
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Generation - Code and Comments
  */
 public class UnsupportedFeature extends EAttributeImpl {
 	/**
@@ -38,6 +32,5 @@
 
 	public UnsupportedFeature() {
 		super();
-		// TODO Auto-generated constructor stub
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/Assert.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/Assert.java
index 3a44751..f6635a7 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/Assert.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/Assert.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.common.internal.emf.utilities;
 
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin;
 
 
 
@@ -93,7 +93,7 @@
 	 */
 	public static void isNotNull(Object object, String message) {
 		if (object == null) {
-			Logger.getLogger().logError("null_argument: " + message);//$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("null_argument: " + message);//$NON-NLS-1$
 			throw new AssertionFailedException();
 		}
 	}
@@ -123,7 +123,7 @@
 	 */
 	public static boolean isTrue(boolean expression, String message) {
 		if (!expression) {
-			Logger.getLogger().logError("assertion failed: " + message);//$NON-NLS-1$
+			EcoreUtilitiesPlugin.logError("assertion failed: " + message);//$NON-NLS-1$
 			throw new AssertionFailedException();
 		}
 		return expression;
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/AssertionFailedException.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/AssertionFailedException.java
index 044c60d..5de492e 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/AssertionFailedException.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/AssertionFailedException.java
@@ -25,6 +25,11 @@
 // on other packages and internal APIs.
 class AssertionFailedException extends RuntimeException {
 	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 3408284008342683621L;
+
+	/**
 	 * Constructs a new exception.
 	 */
 	public AssertionFailedException() {
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DOMUtilities.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DOMUtilities.java
index 44f9669..4d4225d 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DOMUtilities.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DOMUtilities.java
@@ -26,7 +26,7 @@
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -494,13 +494,18 @@
 		try {
 			dbf.setAttribute("http://apache.org/xml/features/allow-java-encodings", new Boolean(options.isAllowJavaEncodings())); //$NON-NLS-1$	        
 		} catch (IllegalArgumentException ignore) {
-			Logger.getLogger().log("Warning: Parser does not support \"http://apache.org/xml/features/allow-java-encodings\"."); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logWarning("Warning: Parser does not support \"http://apache.org/xml/features/allow-java-encodings\"."); //$NON-NLS-1$
 		}
 		try {
 			dbf.setAttribute("http://apache.org/xml/features/validation/schema", new Boolean(options.isValidate())); //$NON-NLS-1$
 		} catch (IllegalArgumentException ignore) {
 			dbf.setValidating(false);
-			Logger.getLogger().log("Warning: Parser does not support \"http://apache.org/xml/features/validation/schema\". Validation will be disabled."); //$NON-NLS-1$
+			EcoreUtilitiesPlugin.logWarning("Warning: Parser does not support \"http://apache.org/xml/features/validation/schema\". Validation will be disabled."); //$NON-NLS-1$
+		}
+		try {
+			dbf.setAttribute("http://apache.org/xml/features/dom/defer-node-expansion", Boolean.FALSE); //$NON-NLS-1$
+		} catch (IllegalArgumentException ignore) {
+			EcoreUtilitiesPlugin.logWarning("Warning: Parser does not support \"http://apache.org/xml/features/dom/defer-node-expansion\"."); //$NON-NLS-1$
 		}
 		dbf.setExpandEntityReferences(options.isExpandEntityRefererences());
 		DocumentBuilder result = dbf.newDocumentBuilder();
@@ -524,7 +529,7 @@
 			}
 
 			public void warning(SAXParseException arg0) throws SAXException {
-				Logger.getLogger().logWarning(arg0);
+				EcoreUtilitiesPlugin.logWarning(arg0);
 			}
 
 		});
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DanglingHREFException.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DanglingHREFException.java
index debd006..9207710 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DanglingHREFException.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DanglingHREFException.java
@@ -20,6 +20,11 @@
 public class DanglingHREFException extends Exception {
 
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -3369128742899263327L;
+
 	public DanglingHREFException() {
 		super();
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultFeatureValueConverter.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultFeatureValueConverter.java
index ea56697..76e5962 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultFeatureValueConverter.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultFeatureValueConverter.java
@@ -348,7 +348,7 @@
 	 * @aValue.
 	 */
 	protected Object failedToConvert(Object aValue, String aString) {
-		String errorString = java.text.MessageFormat.format(FAILED_CONVERSION_PATTERN, new String[]{aValue.toString(), aString});
+		String errorString = java.text.MessageFormat.format(FAILED_CONVERSION_PATTERN, new Object[]{aValue.toString(), aString});
 		throw new FeatureValueConversionException(errorString);
 	}
 }
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultOverridableResourceFactoryRegistry.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultOverridableResourceFactoryRegistry.java
index 927c0a4..456edb5 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultOverridableResourceFactoryRegistry.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultOverridableResourceFactoryRegistry.java
@@ -36,31 +36,31 @@
 		super();
 	}
 
+	@Override
 	public Resource.Factory getFactory(URI uri) {
 		return getFactory(uri, null);
 	}
 
+	@Override
 	public Resource.Factory getFactory(URI uri, String contentType)
 	{
 		Object resourceFactory = null;
+		String protocol = uri.scheme();
+		resourceFactory = protocolToFactoryMap.get(protocol);
 		if (resourceFactory == null) {
-			String protocol = uri.scheme();
-			resourceFactory = protocolToFactoryMap.get(protocol);
+			String extension = uri.fileExtension();
+			resourceFactory = extensionToFactoryMap.get(extension);
 			if (resourceFactory == null) {
-				String extension = uri.fileExtension();
-				resourceFactory = extensionToFactoryMap.get(extension);
-				if (resourceFactory == null) {
-					resourceFactory = delegatedGetFactory(uri);
-					if (resourceFactory == GLOBAL_FACTORY) {
-						resourceFactory = extensionToFactoryMap.get(Resource.Factory.Registry.DEFAULT_EXTENSION);
-						if (resourceFactory == null)
-							resourceFactory = GLOBAL_FACTORY;
-					}
-
+				resourceFactory = delegatedGetFactory(uri);
+				if (resourceFactory == GLOBAL_FACTORY) {
+					resourceFactory = extensionToFactoryMap.get(Resource.Factory.Registry.DEFAULT_EXTENSION);
+					if (resourceFactory == null)
+						resourceFactory = GLOBAL_FACTORY;
 				}
+
 			}
 		}
-
+		
 		return resourceFactory instanceof Resource.Factory.Descriptor ? ((Resource.Factory.Descriptor) resourceFactory).createFactory() : (Resource.Factory) resourceFactory;
 	}
 
@@ -69,6 +69,7 @@
 	 * 
 	 * @see org.eclipse.emf.ecore.resource.impl.ResourceFactoryRegistryImpl#delegatedGetFactory(org.eclipse.emf.common.util.URI)
 	 */
+	@Override
 	protected Factory delegatedGetFactory(URI uri) {
 		return Resource.Factory.Registry.INSTANCE.getFactory(uri);
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/EtoolsCopySession.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/EtoolsCopySession.java
index 0308041..1de9513 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/EtoolsCopySession.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/EtoolsCopySession.java
@@ -46,6 +46,7 @@
 	 * 
 	 * Copy Resources first and then copy RefObjects.
 	 */
+	@Override
 	public void copy(CopyGroup aGroup) {
 		if (aGroup != null) {
 			copyResources(aGroup);
@@ -60,6 +61,7 @@
 	 * This method should be used if you are only going to copy <code>aRefObject</code> in this
 	 * copy execution.
 	 */
+	@Override
 	public EObject copy(EObject aRefObject, String idSuffix) {
 		EObject copied = containmentCopy(aRefObject, idSuffix);
 		executeDeferredCopyActions();
@@ -70,6 +72,7 @@
 	 * This method should be used if you are only going to copy <code>aRefObject</code> in this
 	 * copy execution. This method only copies <code>aRefObject</code> attributes.
 	 */
+	@Override
 	public EObject copyObject(EObject aRefObject, String idSuffix) {
 		EObject copied = containmentCopyObject(aRefObject, idSuffix);
 		executeDeferredCopyActions();
@@ -80,6 +83,7 @@
 	 * This method should be used if you are only going to copy <code>aResource</code> in this
 	 * copy execution. The copied Resource will have a URI equal to <code>newUri</code>.
 	 */
+	@Override
 	public Resource copy(Resource aResource, String newUri) {
 		Resource copied = containmentCopy(aResource, newUri);
 		executeDeferredCopyActions();
@@ -103,6 +107,7 @@
 	 * @see com.ibm.etools.emf.ecore.utilities.copy.EtoolsCopyUtility#primCopyObject(EObject,
 	 *      String)
 	 */
+	@Override
 	protected EObject primCopyObject(EObject aRefObject, String idSuffix) {
 		EObject copy = super.primCopyObject(aRefObject, idSuffix);
 		copyIdIfNecessary(aRefObject, copy, idSuffix);
@@ -140,6 +145,7 @@
 	/**
 	 * Return a cached copy.
 	 */
+	@Override
 	public EObject getCopy(EObject anObject) {
 		EObject copied = super.getCopy(anObject);
 		if (copied == null)
@@ -159,6 +165,7 @@
 	/**
 	 * Return an instance of EObject that is the same type as <code>aRefObject</code>.
 	 */
+	@Override
 	public EObject newInstance(EObject aRefObject) {
 		EObject newType = super.newInstance(aRefObject);
 		newType.eSetDeliver(false);
@@ -168,6 +175,7 @@
 	/**
 	 * @see com.ibm.etools.emf.ecore.utilities.copy.EtoolsCopyUtility#newInstance(Resource, String)
 	 */
+	@Override
 	public Resource newInstance(Resource aResource, String newUri) {
 		Resource copy = super.newInstance(aResource, newUri);
 		if (aResource instanceof XMLResource) {
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/EtoolsCopyUtility.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/EtoolsCopyUtility.java
index 22d91e0..a89a7c7 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/EtoolsCopyUtility.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/EtoolsCopyUtility.java
@@ -51,6 +51,7 @@
 			super(aReference, aValue, aSuffix, aCopyContainer);
 		}
 
+		@Override
 		public void performAction() {
 			EObject value = (EObject) getReferenceValue();
 			getCopyContainer().eSet(getReference(), getCopyIfFound(value));
@@ -62,6 +63,7 @@
 			super(aReference, aValue, aSuffix, aCopyContainer);
 		}
 
+		@Override
 		public void performAction() {
 			List copyList = (List) getCopyContainer().eGet(getReference());
 			Iterator it = ((List) getReferenceValue()).iterator();
@@ -529,9 +531,10 @@
 	public Resource newInstance(Resource aResource, String newUri) {
 		if (aResource == null)
 			return null;
+		String innerNewUri = newUri;
 		Resource newResource;
 		String originalUri = aResource.getURI().toString();
-		newUri = newUri == null ? originalUri : newUri;
+		innerNewUri = innerNewUri == null ? originalUri : innerNewUri;
 
 		Resource.Factory factory = null;
 		if (aResource.getResourceSet() == null)
@@ -540,7 +543,7 @@
 			factory = aResource.getResourceSet().getResourceFactoryRegistry().getFactory(URI.createURI(originalUri));
 
 
-		newResource = factory.createResource(URI.createURI(newUri));
+		newResource = factory.createResource(URI.createURI(innerNewUri));
 		return newResource;
 	}
 
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ExtendedEcoreUtil.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ExtendedEcoreUtil.java
index e9cf914..823f191 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ExtendedEcoreUtil.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ExtendedEcoreUtil.java
@@ -11,10 +11,12 @@
 package org.eclipse.wst.common.internal.emf.utilities;
 
 import java.io.FileNotFoundException;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
 import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EAdapterList;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.common.util.WrappedException;
@@ -34,7 +36,80 @@
 	private static FileNotFoundDetector FILE_NOT_FOUND_DETECTOR;
 	private static String NAME_ATTRIBUTE_STRING = "name"; //$NON-NLS-1$
 
+	public static class ESynchronizedAdapterList extends EAdapterList
+	  {
 
+	    /**
+		 * 
+		 */
+		private static final long serialVersionUID = 7855438339187540718L;
+
+		public ESynchronizedAdapterList(Notifier notifier) {
+			super(notifier);
+		}
+
+		@Override
+		public synchronized boolean add(Object object)
+	    {
+	    return super.add(object);
+	    }
+
+	    @Override
+		public synchronized void add(int index, Object object)
+	    {
+	    super.add(index, object);
+	    }
+
+	    @Override
+		public synchronized boolean addAll(Collection collection)
+	    {
+	    return super.addAll(collection);
+	    }
+
+	    @Override
+		public synchronized boolean remove(Object object)
+	    {
+	    return super.remove(object);
+	    }
+
+	    @Override
+		public synchronized Object remove(int index)
+	    {
+	    return super.remove(index);
+	    }
+
+	    @Override
+		public synchronized boolean removeAll(Collection collection)
+	    {
+	    return super.removeAll(collection);
+	    }
+
+	    @Override
+		public synchronized void clear()
+	    {
+	     super.clear();
+	    }
+
+
+	    @Override
+		public synchronized Object set(int index, Object object)
+	    {
+	    return super.set(index, object);
+	    }
+
+	    @Override
+		public synchronized void move(int newPosition, Object object)
+	    {
+	    super.move(newPosition, object);
+	    }
+
+	    @Override
+		public synchronized Object move(int newPosition, int oldPosition)
+	    {
+	    return super.move(newPosition, oldPosition);
+	    }
+	  }
+	
 	public interface FileNotFoundDetector {
 		boolean isFileNotFound(WrappedException wrappedEx);
 	}
@@ -71,10 +146,11 @@
 
 	public static void eSetOrAdd(EObject obj, EStructuralFeature feature, Object value, int newIndex) {
 		if (feature.isMany() && value != null) {
-			if (newIndex >= 0)
-				((List) obj.eGet(feature)).add(newIndex, value);
+			List featureList = ((List) obj.eGet(feature));
+			if (newIndex >= 0 && newIndex < featureList.size())
+				featureList.add(newIndex, value);
 			else
-				((List) obj.eGet(feature)).add(value);
+				featureList.add(value);
 		} else {
 			obj.eSet(feature, value);
 		}
@@ -194,7 +270,7 @@
 		Resource res = root.eResource();
 		EObject container = root.eContainer();
 		/* Making sure the proxy is created first before unloading */
-		if (root != null && res != null)
+		if (res != null)
 			becomeProxy(root, res);
 		if (container == null)
 			if (res != null)
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/FeatureValueConversionException.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/FeatureValueConversionException.java
index 0525a1f..38c24d1 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/FeatureValueConversionException.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/FeatureValueConversionException.java
@@ -11,6 +11,11 @@
 public class FeatureValueConversionException extends RuntimeException {
 
 	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 8190891648333814201L;
+
+	/**
 	 * Constructor for FeatureValueConversionException.
 	 */
 	public FeatureValueConversionException() {
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ICommand2.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ICommand2.java
new file mode 100644
index 0000000..2fb3c95
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ICommand2.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.internal.emf.utilities;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+
+public interface ICommand2 extends ICommand {
+
+	/**
+	 * Accessor for a {@link List} of {@link IProject} that were modified by the execution of this command.
+	 * 
+	 * @return A {@link List} of {@link IProject} that were modified by the execution of this command.
+	 */
+	public List getAffectedProjects();
+}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/IDUtil.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/IDUtil.java
index 388986c..2aa022c 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/IDUtil.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/IDUtil.java
@@ -52,14 +52,15 @@
 	}
 
 	protected static String ensureUniqueID(XMLResource aResource, String baseIDName) {
-		baseIDName += "_"; //$NON-NLS-1$
+		String innerBaseIDName = baseIDName;
+		innerBaseIDName += "_"; //$NON-NLS-1$
 		//Change to use the current time instead of incremental numbers to help
 		//support team development.
 		long currentTime = System.currentTimeMillis();
-		String id = baseIDName + currentTime;
+		String id = innerBaseIDName + currentTime;
 		while (aResource.getEObject(id) != null) {
 			++currentTime;
-			id = baseIDName + currentTime;
+			id = innerBaseIDName + currentTime;
 		}
 		return id;
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordCipherException.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordCipherException.java
index 5ff513b..18b8d14 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordCipherException.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordCipherException.java
@@ -12,5 +12,10 @@
 import org.omg.CORBA.UserException;
 
 public class InvalidPasswordCipherException extends UserException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -1878574401021590545L;
 }
 
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordDecodingException.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordDecodingException.java
index 2e16808..161c069 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordDecodingException.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordDecodingException.java
@@ -12,5 +12,10 @@
 import org.omg.CORBA.UserException;
 
 public class InvalidPasswordDecodingException extends UserException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 6211942853796823840L;
 }
 
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordEncodingException.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordEncodingException.java
index dd882d7..a03e653 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordEncodingException.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/InvalidPasswordEncodingException.java
@@ -12,5 +12,10 @@
 import org.omg.CORBA.UserException;
 
 public class InvalidPasswordEncodingException extends UserException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -1320759752706898095L;
 }
 
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/IsLoadingProxyAdapter.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/IsLoadingProxyAdapter.java
index a75b865..b52fe8a 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/IsLoadingProxyAdapter.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/IsLoadingProxyAdapter.java
@@ -43,6 +43,7 @@
 	 * 
 	 * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification)
 	 */
+	@Override
 	public void notifyChanged(Notification msg) {
 		if (resource != null) {
 			//listen for the remove of the loading adapter
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/NamespaceAdapter.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/NamespaceAdapter.java
index 0bdac76..78892fa 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/NamespaceAdapter.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/NamespaceAdapter.java
@@ -57,6 +57,7 @@
 		 * 
 		 * @see org.eclipse.emf.common.notify.impl.NotificationImpl#getFeature()
 		 */
+		@Override
 		public Object getFeature() {
 			return NOTIFICATION_FEATURE;
 		}
@@ -169,6 +170,7 @@
 	 * 
 	 * @see org.eclipse.emf.common.notify.impl.AdapterImpl#isAdapterForType(java.lang.Object)
 	 */
+	@Override
 	public boolean isAdapterForType(Object type) {
 		return ADAPTER_TYPE.equals(type);
 	}
@@ -191,6 +193,7 @@
 	 * 
 	 * @see com.ibm.etools.emf.ecore.utilities.CloneablePublic#clone()
 	 */
+	@Override
 	public Object clone() {
 		NamespaceAdapter result = new NamespaceAdapter();
 		if (hasNamespaces()) {
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PassthruEncoderDecoder.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PassthruEncoderDecoder.java
index e684059..d8677eb 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PassthruEncoderDecoder.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PassthruEncoderDecoder.java
@@ -14,7 +14,7 @@
 /**
  * A passthru EncoderDecoder implementation
  */
-public class PassthruEncoderDecoder extends EncoderDecoderAdapter implements EncoderDecoder {
+public class PassthruEncoderDecoder extends EncoderDecoderAdapter {
 	public static final PassthruEncoderDecoder INSTANCE = new PassthruEncoderDecoder();
 	public static final String KEY = PassthruEncoderDecoder.class.getName();
 
@@ -28,6 +28,7 @@
 	/**
 	 * Returns a decoded version of the value.
 	 */
+	@Override
 	public String decode(String value) {
 		return value;
 	}
@@ -35,6 +36,7 @@
 	/**
 	 * Returns an encoded version of the value.
 	 */
+	@Override
 	public String encode(String value) {
 		return value;
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PasswordEncoderDecoder.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PasswordEncoderDecoder.java
index 2c82ced..1334efb 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PasswordEncoderDecoder.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PasswordEncoderDecoder.java
@@ -8,16 +8,18 @@
  **************************************************************************************************/
 package org.eclipse.wst.common.internal.emf.utilities;
 
-public class PasswordEncoderDecoder extends EncoderDecoderAdapter implements EncoderDecoder {
+public class PasswordEncoderDecoder extends EncoderDecoderAdapter {
 	public static final String KEY = "password-security-coder"; //$NON-NLS-1$
 
 	public PasswordEncoderDecoder() {
 	}
 
+	@Override
 	public String decode(String s) {
 		return PasswordUtil.passwordDecode(s);
 	}
 
+	@Override
 	public String encode(String s) {
 		return PasswordUtil.passwordEncode(s);
 	}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PasswordUtil.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PasswordUtil.java
index 012f2c2..a46a97c 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PasswordUtil.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PasswordUtil.java
@@ -60,15 +60,16 @@
 
 	public static String getCryptoAlgorithm(String s) {
 		String s1 = null;
-		if (s != null) {
-			s = s.trim();
-			if (s.length() >= 2) {
-				int i = s.indexOf("{"); //$NON-NLS-1$
+		String innerS = s;
+		if (innerS != null) {
+			innerS = innerS.trim();
+			if (innerS.length() >= 2) {
+				int i = innerS.indexOf("{"); //$NON-NLS-1$
 				if (i == 0) {
-					int j = s.indexOf("}", ++i); //$NON-NLS-1$
+					int j = innerS.indexOf("}", ++i); //$NON-NLS-1$
 					if (j > 0)
 						if (i < j)
-							s1 = s.substring(i, j).trim();
+							s1 = innerS.substring(i, j).trim();
 						else
 							s1 = EMPTY_STRING;
 				}
@@ -91,12 +92,13 @@
 	}
 
 	public static boolean isValidCryptoAlgorithm(String s) {
-		if (s != null) {
-			s = s.trim();
-			if (s.length() == 0)
+		String innerS = s;
+		if (innerS != null) {
+			innerS = innerS.trim();
+			if (innerS.length() == 0)
 				return true;
 			for (int i = 0; i < SUPPORTED_CRYPTO_ALGORITHMS.length; i++)
-				if (s.equalsIgnoreCase(SUPPORTED_CRYPTO_ALGORITHMS[i]))
+				if (innerS.equalsIgnoreCase(SUPPORTED_CRYPTO_ALGORITHMS[i]))
 					return true;
 		}
 		return false;
@@ -137,15 +139,16 @@
 
 	public static String removeCryptoAlgorithmTag(String s) {
 		String s1 = null;
-		if (s != null) {
-			s = s.trim();
-			if (s.length() >= 2) {
-				int i = s.indexOf("{"); //$NON-NLS-1$
+		String innerS = s;
+		if (innerS != null) {
+			innerS = innerS.trim();
+			if (innerS.length() >= 2) {
+				int i = innerS.indexOf("{"); //$NON-NLS-1$
 				if (i == 0) {
-					int j = s.indexOf("}", ++i); //$NON-NLS-1$
+					int j = innerS.indexOf("}", ++i); //$NON-NLS-1$
 					if (j > 0)
-						if (++j < s.length())
-							s1 = s.substring(j).trim();
+						if (++j < innerS.length())
+							s1 = innerS.substring(j).trim();
 						else
 							s1 = EMPTY_STRING;
 				}
@@ -163,7 +166,7 @@
 				try {
 					abyte0 = s.getBytes(STRING_CONVERSION_CODE);
 				} catch (UnsupportedEncodingException unsupportedencodingexception) {
-					abyte0 = null;
+					//do nothing
 				}
 		return abyte0;
 	}
@@ -177,7 +180,7 @@
 				try {
 					s = new String(abyte0, STRING_CONVERSION_CODE);
 				} catch (UnsupportedEncodingException unsupportedencodingexception) {
-					s = null;
+					//do nothing
 				}
 		return s;
 	}
@@ -198,7 +201,9 @@
 
 	private static byte[] base64Decode(byte abyte0[]) {
 		int i;
-		for (i = abyte0.length; abyte0[--i] == 61;);
+		for (i = abyte0.length; abyte0[--i] == 61;){
+			//do nothing just finding index of 61
+		}
 		byte abyte1[] = new byte[(i + 1) - abyte0.length / 4];
 		for (int j = 0; j < abyte0.length; j++)
 			abyte0[j] = BASE64_DECODE_MAP[abyte0[j]];
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PleaseMigrateYourCodeError.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PleaseMigrateYourCodeError.java
index 5a548d6..bd4776e 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PleaseMigrateYourCodeError.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/PleaseMigrateYourCodeError.java
@@ -18,6 +18,11 @@
  */
 public class PleaseMigrateYourCodeError extends Error {
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1137010999400298839L;
+
 	//TODO Delete me
 	public PleaseMigrateYourCodeError() {
 		super(WFTUtilsResourceHandler.PleaseMigrateYourCodeError_ERROR_0);
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceDependencyRegister.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceDependencyRegister.java
index 34ff643..79c8046 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceDependencyRegister.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceDependencyRegister.java
@@ -38,6 +38,7 @@
 		 * 
 		 * @see org.eclipse.emf.common.notify.impl.AdapterImpl#isAdapterForType(java.lang.Object)
 		 */
+		@Override
 		public boolean isAdapterForType(Object type) {
 			return RESOURCE_DEPENDENCY_TYPE.equals(type);
 		}
@@ -47,6 +48,7 @@
 		 * 
 		 * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification)
 		 */
+		@Override
 		public void notifyChanged(Notification msg) {
 			//Listen for unloads and removes
 			switch (msg.getFeatureID(null)) {
@@ -75,6 +77,7 @@
 		 * 
 		 * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification)
 		 */
+		@Override
 		public void notifyChanged(Notification msg) {
 			if (msg.getEventType() == Notification.ADD)
 				proccessAddedResource((ResourceSet) msg.getNotifier(), (Resource) msg.getNewValue());
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceIsLoadingAdapter.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceIsLoadingAdapter.java
index 35f1f33..a5d96ea 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceIsLoadingAdapter.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceIsLoadingAdapter.java
@@ -10,22 +10,20 @@
  *******************************************************************************/
 /*
  * Created on Oct 26, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
  */
 package org.eclipse.wst.common.internal.emf.utilities;
 
+import java.util.List;
+
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
 
 /**
  * @author mdelder
  */
-public class ResourceIsLoadingAdapter extends AdapterImpl implements Adapter {
+public class ResourceIsLoadingAdapter extends AdapterImpl {
 
     private static final Class RESOURCE_IS_LOADING_ADAPTER_CLASS = ResourceIsLoadingAdapter.class;
 
@@ -42,9 +40,10 @@
          * removeIsLoadingSupport() will coordinate with this 
          * synchronization.
          */
-        synchronized (aResource) {
-            adapter = (ResourceIsLoadingAdapter) EcoreUtil.getAdapter(aResource.eAdapters(), ResourceIsLoadingAdapter.class);
+        synchronized(aResource.eAdapters()) {
+        	adapter = (ResourceIsLoadingAdapter) getAdapter(aResource.eAdapters(), ResourceIsLoadingAdapter.class);
         }
+        
         return adapter;
     }
 
@@ -53,7 +52,8 @@
      * 
      * @see org.eclipse.emf.common.notify.Adapter#notifyChanged(org.eclipse.emf.common.notify.Notification)
      */
-    public void notifyChanged(Notification notification) {
+    @Override
+	public void notifyChanged(Notification notification) {
 
         if (notification.getNotifier() != null) {
 
@@ -68,6 +68,18 @@
     public void waitForResourceToLoad() {
 
     }
+    public static Adapter getAdapter(List<Adapter> adapters, Object type)
+    {
+      for (int i = 0, size = adapters.size(); i < size; ++i)
+      {
+        Adapter adapter = adapters.get(i);
+        if (adapter != null && adapter.isAdapterForType(type))
+        {
+          return adapter;
+        }
+      }
+      return null;
+    }
 
     /**
      * @param notification
@@ -88,7 +100,7 @@
          */
         if (getTarget() != null) {
             //System.out.println("ResourceIsLoadingAdapter Synchronizing on " + getTarget());
-            synchronized (getTarget()) {
+            synchronized (getTarget().eAdapters()) {
                 getTarget().eAdapters().remove(this);
             }
         }
@@ -99,7 +111,8 @@
      * 
      * @see org.eclipse.emf.common.notify.Adapter#isAdapterForType(java.lang.Object)
      */
-    public boolean isAdapterForType(Object type) {
+    @Override
+	public boolean isAdapterForType(Object type) {
         return type == RESOURCE_IS_LOADING_ADAPTER_CLASS;
     }
 
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceIsLoadingAdapterFactory.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceIsLoadingAdapterFactory.java
index 5899f5d..6e30496 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceIsLoadingAdapterFactory.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/ResourceIsLoadingAdapterFactory.java
@@ -10,9 +10,6 @@
  *******************************************************************************/
 /*
  * Created on Oct 26, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
  */
 package org.eclipse.wst.common.internal.emf.utilities;
 
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/TranslatorManager.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/TranslatorManager.java
index 79ee8b8..975db26 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/TranslatorManager.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/TranslatorManager.java
@@ -16,8 +16,7 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.RegistryReader;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.core.util.RegistryReader;
 import org.eclipse.wst.common.internal.emf.plugin.EcoreUtilitiesPlugin;
 import org.eclipse.wst.common.internal.emf.resource.Translator;
 
@@ -77,6 +76,7 @@
 		/**
 		 * Add the configuration element if it matchs the expected translator element name
 		 */
+		@Override
 		public boolean readElement(IConfigurationElement element) {
 			boolean result = false;
 			if (TRANSLATOR.equals(element.getName())) {
@@ -134,7 +134,7 @@
 			try {
 				instance = (Translator) configElement.createExecutableExtension(CLASSNAME);
 			} catch (CoreException e) {
-				Logger.getLogger().logError(e);
+				EcoreUtilitiesPlugin.logError(e);
 			}
 			return instance;
 		}
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/UnsupportedCryptoAlgorithmException.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/UnsupportedCryptoAlgorithmException.java
index f71c66d..58459bf 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/UnsupportedCryptoAlgorithmException.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/UnsupportedCryptoAlgorithmException.java
@@ -12,5 +12,10 @@
 import org.omg.CORBA.UserException;
 
 public class UnsupportedCryptoAlgorithmException extends UserException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -3510453767624155991L;
 }
 
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/XMLValueEncoderDecoder.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/XMLValueEncoderDecoder.java
index d9a1d2c..7503523 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/XMLValueEncoderDecoder.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/XMLValueEncoderDecoder.java
@@ -14,7 +14,7 @@
 /**
  * An XML value escaping EncoderDecoder implementation
  */
-public class XMLValueEncoderDecoder extends EncoderDecoderAdapter implements EncoderDecoder {
+public class XMLValueEncoderDecoder extends EncoderDecoderAdapter {
 	/**
 	 * Identifies the last printable character in the Unicode range that is supported by the
 	 * encoding used with this serializer. For 8-bit encodings this will be either 0x7E or 0xFF. For
@@ -34,6 +34,7 @@
 	/**
 	 * Returns a decoded version of the value.
 	 */
+	@Override
 	public String decode(String value) {
 		// NOT_IMPLEMENTED
 		return value;
@@ -47,6 +48,7 @@
 	 * @param source
 	 *            The string to escape
 	 */
+	@Override
 	public String encode(String value) {
 		StringBuffer sbuf = new StringBuffer(value.length());
 		String charRef = null;
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/.classpath b/plugins/org.eclipse.wst.common.emfworkbench.integration/.classpath
index fe45152..44b3dda 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/.classpath
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/.classpath
@@ -2,7 +2,7 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="property_file"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
 		<accessrules>
 			<accessrule kind="accessible" pattern="org/eclipse/wst/common/**"/>
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.emfworkbench.integration/.settings/org.eclipse.jdt.core.prefs
index 46468f9..037a4e5 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/.settings/org.eclipse.jdt.core.prefs
@@ -1,62 +1,95 @@
-#Sat Mar 24 02:06:45 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=ignore
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=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.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-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=error
-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=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-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=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+#Mon Jun 08 15:35:45 EDT 2009
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error
+org.eclipse.jdt.core.compiler.problem.unusedLocal=error
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.compiler.problem.fieldHiding=error
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
+eclipse.preferences.version=1
+org.eclipse.jdt.core.incompleteClasspath=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
+org.eclipse.jdt.core.compiler.problem.deadCode=error
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeUncheckedExceptions=disabled
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=ignore
-org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.compiler.problem.autoboxing=warning
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.emfworkbench.integration/META-INF/MANIFEST.MF
index 6a2ec7c..ae350da 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.common.emfworkbench.integration; singleton:=true
-Bundle-Version: 1.1.200.qualifier
+Bundle-Version: 1.2.101.qualifier
 Bundle-Activator: org.eclipse.wst.common.internal.emfworkbench.integration.EMFWorkbenchEditPlugin
 Bundle-Vendor: %pluginVendor
 Bundle-Localization: plugin
@@ -11,7 +11,7 @@
  org.eclipse.wst.common.internal.emfworkbench.integration;x-internal:=true,
  org.eclipse.wst.common.internal.emfworkbench.validateedit;x-internal:=true
 Require-Bundle: org.eclipse.wst.common.frameworks;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.jem.util;bundle-version="[2.0.100,3.0.0)",
+ org.eclipse.jem.util;bundle-version="[2.1.0,3.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.4.0,3.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)",
  org.eclipse.wst.common.emf;bundle-version="[1.1.200,2.0.0)",
@@ -21,6 +21,5 @@
  org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)"
 Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- J2SE-1.5
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/about.html b/plugins/org.eclipse.wst.common.emfworkbench.integration/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/about.html
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/plugin.properties b/plugins/org.eclipse.wst.common.emfworkbench.integration/plugin.properties
index cdc1ce7..a7b84f1 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/plugin.properties
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/plugin.properties
@@ -13,4 +13,4 @@
 Adapter_Factory_Extension=Adapter Factory Extension
 ModifierHelperFactory=ModifierHelperFactory
 pluginName=EMF Workbench Edit Plug-in
-pluginVendor=Eclipse.org
+pluginVendor=Eclipse Web Tools Platform
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EMFWorkbenchContext.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EMFWorkbenchContext.java
index 66c6b35..2161f94 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EMFWorkbenchContext.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EMFWorkbenchContext.java
@@ -35,11 +35,11 @@
 import org.eclipse.jem.util.emf.workbench.ISynchronizerExtender;
 import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
 import org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.internal.emf.resource.CompatibilityXMIResource;
 import org.eclipse.wst.common.internal.emf.resource.ReferencedXMIFactoryImpl;
 import org.eclipse.wst.common.internal.emf.utilities.DefaultOverridableResourceFactoryRegistry;
 import org.eclipse.wst.common.internal.emfworkbench.edit.EditModelRegistry;
+import org.eclipse.wst.common.internal.emfworkbench.integration.EMFWorkbenchEditPlugin;
 import org.eclipse.wst.common.internal.emfworkbench.integration.EditModel;
 import org.eclipse.wst.common.internal.emfworkbench.integration.EditModelEvent;
 import org.eclipse.wst.common.internal.emfworkbench.integration.ProjectResourceSetEditImpl;
@@ -72,6 +72,7 @@
 	 * 
 	 * @see org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchContext#initializeResourceSet(org.eclipse.wst.common.internal.emfworkbench.ProjectResourceSet)
 	 */
+	@Override
 	protected void initializeResourceSet(ProjectResourceSet aResourceSet) {
 		super.initializeResourceSet(aResourceSet);
 		Resource.Factory.Registry reg = new DefaultOverridableResourceFactoryRegistry();
@@ -276,7 +277,7 @@
 			try {
 				editModel.resourceChanged(anEvent);
 			} catch (Exception e) {
-				Logger.getLogger().logError(e);
+				EMFWorkbenchEditPlugin.logError(e);
 			}
 		}
 	}
@@ -301,6 +302,7 @@
 		 * @see Adapter#notifyChanged(new ENotificationImpl((InternalEObject)Notifier,
 		 *      int,(EStructuralFeature) EObject, Object, Object, int))
 		 */
+		@Override
 		public void notifyChanged(Notification notification) {
 			switch (notification.getEventType()) {
 				case Notification.ADD :
@@ -380,10 +382,12 @@
 	 * 
 	 * @see org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchContextBase#createURIConverter(org.eclipse.wst.common.internal.emfworkbench.ProjectResourceSet)
 	 */
+	@Override
 	protected WorkbenchURIConverter createURIConverter(ProjectResourceSet aResourceSet) {
 		return new CompatibilityWorkbenchURIConverterImpl(getProject(), aResourceSet.getSynchronizer());
 	}
 
+	@Override
 	protected ProjectResourceSet createResourceSet() {
 		if (project == null)
 			throw new IllegalStateException("Attempt to create resource set with null project"); //$NON-NLS-1$
@@ -395,11 +399,12 @@
 	 * 
 	 * @see org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchContextBase#deleteFile(org.eclipse.emf.ecore.resource.Resource)
 	 */
+	@Override
 	public void deleteFile(Resource resource) {
 		try {
 			WorkbenchResourceHelper.deleteResource(resource);
 		} catch (CoreException ex) {
-			Logger.getLogger().logError(ex);
+			EMFWorkbenchEditPlugin.logError(ex);
 		}
 
 	}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EMFWorkbenchEditResourceHandler.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EMFWorkbenchEditResourceHandler.java
index 8bd1073..5c054be 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EMFWorkbenchEditResourceHandler.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EMFWorkbenchEditResourceHandler.java
@@ -10,9 +10,6 @@
  *******************************************************************************/
 /*
  * Created on May 25, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
  */
 package org.eclipse.wst.common.internal.emfworkbench;
 
@@ -20,9 +17,6 @@
 
 /**
  * @author vijayb
- * 
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Style - Code Templates
  */
 public class EMFWorkbenchEditResourceHandler extends NLS {
 	private static final String BUNDLE_NAME = "emfworkbenchedit";//$NON-NLS-1$
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EditModelLeastUsedCache.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EditModelLeastUsedCache.java
index a53bf23..0401cb7 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EditModelLeastUsedCache.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/EditModelLeastUsedCache.java
@@ -85,8 +85,8 @@
 			}
 		}
 		if (shouldAccess) {
+			editModel.access(this);
 			synchronized (lru) {
-				editModel.access(this);
 				lru.add(editModel);
 			}
 		}
@@ -98,6 +98,7 @@
 	 */
 	public void optimizeLRUSizeIfNecessary() {
 		EditModel model = null;
+		
 		synchronized (lru) {
 			if (lru.size() > threshhold) {
 				// remove oldest element and release the edit model.
@@ -107,9 +108,9 @@
 					lru.remove(model);	
 				}
 			}
+		}
 		if (model != null)
 			model.releaseAccess(this);
-		}
 	}
 
 	/**
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/PassthruResourceSet.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/PassthruResourceSet.java
index d1b36ea..a4e957d 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/PassthruResourceSet.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/PassthruResourceSet.java
@@ -20,7 +20,6 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.jem.internal.util.emf.workbench.ProjectResourceSetImpl;
 import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
 
@@ -41,7 +40,14 @@
 public class PassthruResourceSet extends ProjectResourceSetImpl {
 	protected boolean isIsolated = false;
 
-	public class PassthruResourcesEList extends ResourceSetImpl.ResourcesEList {
+	public class PassthruResourcesEList extends SynchronizedResourcesEList {
+		/**
+		 * 
+		 */
+		private static final long serialVersionUID = 2504207070244627980L;
+
+
+		@Override
 		public boolean add(Object object) {
 			if (object == null)
 				return false;
@@ -53,6 +59,7 @@
 		}
 
 
+		@Override
 		public boolean addAll(Collection collection) {
 			if (collection.isEmpty())
 				return false;
@@ -84,6 +91,7 @@
 		return isIsolated;
 	}
 
+	@Override
 	public Resource createResource(URI uri) {
 		Resource result = WorkbenchResourceHelperBase.getExistingOrCreateResource(uri);
 		if (result == null)
@@ -94,6 +102,7 @@
 	/**
 	 * @see org.eclipse.emf.ecore.resource.impl.ResourceSetImpl#demandCreateResource(URI)
 	 */
+	@Override
 	protected Resource demandCreateResource(URI uri) {
 		Resource result = WorkbenchResourceHelperBase.createResource(uri);
 		if (result == null)
@@ -105,6 +114,7 @@
 	/*
 	 * Javadoc copied from interface.
 	 */
+	@Override
 	public EList getResources() {
 		if (isIsolated)
 			return super.getResources();
@@ -117,6 +127,7 @@
 	/**
 	 * @see org.eclipse.jem.internal.util.emf.workbench.ProjectResourceSetImpl#createResourceFromHandlers(URI)
 	 */
+	@Override
 	protected Resource createResourceFromHandlers(URI uri) {
 		if (!isIsolated)
 			return super.createResourceFromHandlers(uri);
@@ -126,6 +137,7 @@
 	/**
 	 * @see org.eclipse.jem.internal.util.emf.workbench.ProjectResourceSetImpl#getResourceFromHandlers(URI)
 	 */
+	@Override
 	protected Resource getResourceFromHandlers(URI uri) {
 		if (!isIsolated)
 			return super.getResourceFromHandlers(uri);
@@ -135,6 +147,7 @@
 	/**
 	 * @see com.ibm.etools.emf.workbench.ProjectResourceSetImpl#getEObjectFromHandlers(URI, boolean)
 	 */
+	@Override
 	protected EObject getEObjectFromHandlers(URI uri, boolean loadOnDemand) {
 		if (!isIsolated)
 			return super.getEObjectFromHandlers(uri, loadOnDemand);
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/WorkbenchResourceHelper.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/WorkbenchResourceHelper.java
index 6296984..a74af9a 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/WorkbenchResourceHelper.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/WorkbenchResourceHelper.java
@@ -40,11 +40,11 @@
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
 import org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.jem.util.plugin.JEMUtilPlugin;
 import org.eclipse.wst.common.internal.emf.resource.ReferencedResource;
 import org.eclipse.wst.common.internal.emf.resource.ReferencedXMIFactoryImpl;
 import org.eclipse.wst.common.internal.emf.utilities.ExtendedEcoreUtil;
+import org.eclipse.wst.common.internal.emfworkbench.integration.EMFWorkbenchEditPlugin;
 
 /**
  * @author schacher
@@ -58,6 +58,7 @@
 
 	private static class FileAdapterFactory extends AdapterFactoryImpl {
 
+		@Override
 		public Adapter adaptNew(Notifier target, Object type) {
 			FileAdapter adapter = new FileAdapter();
 			adapter.setTarget(target);
@@ -80,6 +81,7 @@
 		public static final int FILE_NOT_LOADED = 0;
 		public static final int FILE_INACCESSIBLE = -1;
 
+		@Override
 		public boolean isAdapterForType(Object type) {
 			return ADAPTER_KEY.equals(type);
 		}
@@ -87,6 +89,7 @@
 		/*
 		 * Update the synchronization stamp where appropriate
 		 */
+		@Override
 		public void notifyChanged(Notification msg) {
 			switch (msg.getFeatureID(null)) {
 				case Resource.RESOURCE__IS_LOADED :
@@ -192,13 +195,6 @@
 		}
 
 		/**
-		 * @param file
-		 */
-		public void setFile(IFile file) {
-			this.file = file;
-		}
-
-		/**
 		 * @param l
 		 */
 		public void setSynchronizationStamp(long l) {
@@ -216,7 +212,7 @@
             try {
                 hasLocked = aquireSaveLock(delay);
             } catch (InterruptedException e) {
-                Logger.getLogger().write(e);
+            	EMFWorkbenchEditPlugin.logError(e);
             }
             boolean result = false;
             try {
@@ -231,7 +227,7 @@
                     }
                 }
             } catch (Exception e) {
-                Logger.getLogger().write(e);
+            	EMFWorkbenchEditPlugin.logError(e);
             } finally {
                 if (hasLocked)
                     releaseSaveLock();
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/AdapterFactoryDescriptor.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/AdapterFactoryDescriptor.java
index e72153d..0069b4c 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/AdapterFactoryDescriptor.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/AdapterFactoryDescriptor.java
@@ -23,10 +23,10 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
 import org.eclipse.wst.common.frameworks.internal.AbstractRegistryDescriptor;
 import org.eclipse.wst.common.internal.emf.utilities.Assert;
 import org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchEditResourceHandler;
+import org.eclipse.wst.common.internal.emfworkbench.integration.EMFWorkbenchEditPlugin;
 
 
 public class AdapterFactoryDescriptor extends AbstractRegistryDescriptor implements Comparable {
@@ -54,6 +54,7 @@
 	 * 
 	 * @see java.lang.Object#toString()
 	 */
+	@Override
 	public String toString() {
 		StringBuffer sb = new StringBuffer();
 		sb.append("AdapterFactoryDescriptor"); //$NON-NLS-1$
@@ -98,8 +99,7 @@
 		try {
 			factory = (AdapterFactory) element.createExecutableExtension(AdapterFactoryRegistry.CLASS_NAME);
 		} catch (CoreException e) {
-			JEMUtilPlugin.getLogger().logError(e);
-			factory = null;
+			EMFWorkbenchEditPlugin.logError(e);
 		}
 		return factory;
 	}
@@ -148,6 +148,7 @@
 	 * 
 	 * @see org.eclipse.wst.common.frameworks.internal.AbstractRegistryDescriptor#getID()
 	 */
+	@Override
 	public String getID() {
 		return id;
 	}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/AdapterFactoryRegistry.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/AdapterFactoryRegistry.java
index e986962..fce4ba2 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/AdapterFactoryRegistry.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/AdapterFactoryRegistry.java
@@ -22,7 +22,6 @@
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.jem.util.RegistryReader;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.internal.emfworkbench.integration.EMFWorkbenchEditPlugin;
 
 /**
@@ -79,6 +78,7 @@
 	 * 
 	 * @see org.eclipse.wst.common.frameworks.internal.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
 	 */
+	@Override
 	public boolean readElement(IConfigurationElement element) {
 		try {
 			if (element.getName().equals(ADAPTER_FACTORY)) {
@@ -87,7 +87,7 @@
 				return true;
 			}
 		} catch (RuntimeException re) {
-			Logger.getLogger().logError(re);
+			EMFWorkbenchEditPlugin.logError(re);
 		}
 		return false;
 	}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ChildCommand.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ChildCommand.java
index 6dec40e..75e23b2 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ChildCommand.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ChildCommand.java
@@ -32,6 +32,7 @@
 		modelRetriever = retriever;
 	}
 
+	@Override
 	public boolean canExecute() {
 		return true;
 	}
@@ -43,6 +44,7 @@
 		//does nothing
 	}
 
+	@Override
 	protected void executeInModel(AbstractEditModelCommand cmd) {
 		EditModel model = modelRetriever.getEditModelForWrite(this);
 		try {
@@ -86,6 +88,7 @@
 		}
 	}
 
+	@Override
 	public void undo() {
 		undoInModel();
 		getParent().undoFrom(this);
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ClientAccessRegistry.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ClientAccessRegistry.java
index 5f0f82d..264bc17 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ClientAccessRegistry.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ClientAccessRegistry.java
@@ -87,6 +87,7 @@
 		throw new ClientAccessRegistryException(EMFWorkbenchResourceHandler.getString("ClientAccessRegistry_ERROR_1"), accessorKey); //$NON-NLS-1$
 	}
 
+	@Override
 	public String toString() {
 		StringBuffer result = new StringBuffer("ClientAccessRegistry: ["); //$NON-NLS-1$
 		result.append((isStable()) ? "STABLE" : "OUT OF SYNC"); //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ClientAccessRegistryException.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ClientAccessRegistryException.java
index a5aa1cb..c1742a6 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ClientAccessRegistryException.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ClientAccessRegistryException.java
@@ -33,6 +33,10 @@
  */
 public class ClientAccessRegistryException extends RuntimeException {
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -9016827022289377292L;
 	public static final int UNKNOWN = 0;
 	public static final int DANGLING_REFERENCE = 1;
 	public static final int INVALID_ACCESS_KEY = 2;
@@ -58,6 +62,7 @@
 	 * 
 	 * @see java.lang.Throwable#printStackTrace(java.io.PrintStream)
 	 */
+	@Override
 	public void printStackTrace(PrintStream s) {
 
 		s.println(toString());
@@ -90,6 +95,7 @@
 	 * 
 	 * @see java.lang.Throwable#printStackTrace(java.io.PrintWriter)
 	 */
+	@Override
 	public void printStackTrace(PrintWriter s) {
 
 		s.println(toString());
@@ -127,6 +133,7 @@
 		}
 	}
 
+	@Override
 	public String toString() {
 		StringBuffer result = new StringBuffer(super.toString()).append("\r\n"); //$NON-NLS-1$
 		result.append(EMFWorkbenchEditResourceHandler.getString(EMFWorkbenchEditResourceHandler.ClientAccessRegistryException_UI_1, new Object[]{getType()}));
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EMFWorkbenchEditContextFactory.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EMFWorkbenchEditContextFactory.java
index 0a8d2f8..a853a30 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EMFWorkbenchEditContextFactory.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EMFWorkbenchEditContextFactory.java
@@ -46,10 +46,12 @@
 		super();
 	}
 
+	@Override
 	protected EMFWorkbenchContextBase primCreateEMFContext(IProject aProject) {
 		return new EMFWorkbenchContext(aProject);
 	}
 
+	@Override
 	public ResourceSetWorkbenchSynchronizer createSynchronizer(ResourceSet aResourceSet, IProject aProject) {
 		return new ResourceSetWorkbenchEditSynchronizer(aResourceSet, aProject);
 	}
@@ -72,6 +74,7 @@
 		}
 	}
 	
+	@Override
 	public EMFWorkbenchContextBase createEMFContext(IProject aProject, IEMFContextContributor contributor) {
 		ILock lock = getProjectLockObject(aProject);
 		try{
@@ -86,6 +89,7 @@
 		}
 	}
 	
+	@Override
 	protected EMFWorkbenchContextBase getCachedEMFContext(IProject aProject) {
 		ILock lock = getProjectLockObject(aProject);
 		try{
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelExtension.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelExtension.java
index 6041def..ddb0856 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelExtension.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelExtension.java
@@ -20,8 +20,8 @@
 import java.util.Collection;
 
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.internal.ConfigurationElementWrapper;
+import org.eclipse.wst.common.internal.emfworkbench.integration.EMFWorkbenchEditPlugin;
 
 
 public class EditModelExtension extends ConfigurationElementWrapper {
@@ -40,7 +40,7 @@
 	private void init() {
 		id = element.getAttribute(ID_ATTR);
 		if (id == null) {
-			Logger.getLogger().logError("Incorrect usage of editModelExtension extension point.  Element must contain id attribute.  Plugin: " + getPluginId()); //$NON-NLS-1$
+			EMFWorkbenchEditPlugin.logError("Incorrect usage of editModelExtension extension point.  Element must contain id attribute.  Plugin: " + getPluginId()); //$NON-NLS-1$
 			return;
 		}
 
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelExtensionRegistry.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelExtensionRegistry.java
index 47bc51b..152fbc4 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelExtensionRegistry.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelExtensionRegistry.java
@@ -53,6 +53,7 @@
 	 * 
 	 * @see org.eclipse.wst.common.frameworks.internal.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
 	 */
+	@Override
 	public boolean readElement(IConfigurationElement element) {
 
 		boolean result = false;
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelRegistry.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelRegistry.java
index facd9cb..977ffa4 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelRegistry.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelRegistry.java
@@ -24,7 +24,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.jem.util.RegistryReader;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchContext;
 import org.eclipse.wst.common.internal.emfworkbench.EMFWorkbenchEditResourceHandler;
 import org.eclipse.wst.common.internal.emfworkbench.integration.EMFWorkbenchEditPlugin;
@@ -77,6 +76,7 @@
 	 * 
 	 * @see org.eclipse.wst.common.frameworks.internal.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
 	 */
+	@Override
 	public boolean readElement(IConfigurationElement element) {
 		/*
 		 * The EditModel Extension Point defines Configuration elements named "editModel" with
@@ -139,9 +139,7 @@
 		while(nextEditModelInfo != null && (parentModelID = nextEditModelInfo.getParentModelID()) != null) {
 			if(visitedEditModels.containsKey(parentModelID)) 
 				throw new IllegalStateException(EMFWorkbenchEditResourceHandler.getString(EMFWorkbenchEditResourceHandler.EditModelRegistry_ERROR_0,new Object [] {editModelID})); 
-			else 
-				visitedEditModels.put(parentModelID, null);
-			
+			visitedEditModels.put(parentModelID, null);
 			extensions.addAll(getAllEditModelExtensions(parentModelID));
 			nextEditModelInfo = getEditModelInfoById(parentModelID);
 		}
@@ -293,10 +291,10 @@
 							this.factory.setLoadKnownResourcesAsReadOnly(value.booleanValue());
 							discardConfigurationElementIfNecessary();
 						} catch (CoreException e) {
-							Logger.getLogger(EMFWorkbenchEditPlugin.ID).logError(e);
+							EMFWorkbenchEditPlugin.logError(e);
 						}
 					} else {
-						Logger.getLogger().logError(EMFWorkbenchEditResourceHandler.EditModelRegistry_ERROR_1);
+						EMFWorkbenchEditPlugin.logError(EMFWorkbenchEditResourceHandler.EditModelRegistry_ERROR_1);
 					}
 			      }
 			    }
@@ -339,6 +337,7 @@
 				this.configurationElement = null;
 		}
 
+		@Override
 		public String toString() {
 			if (tostringCache == null)
 				tostringCache = "EditModelID: {" + this.editModelID + "}, Parent Model ID {" + this.parentModelID + "}, Configuration Element: [" + this.configurationElement + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelResource.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelResource.java
index b5543ac..6299bd5 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelResource.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/EditModelResource.java
@@ -68,6 +68,7 @@
 	 * 
 	 * @see org.eclipse.wst.common.frameworks.internal.AbstractRegistryDescriptor#getID()
 	 */
+	@Override
 	public String getID() {
 		return extensionID;
 	}
@@ -77,6 +78,7 @@
 	 * 
 	 * @see org.eclipse.wst.common.frameworks.internal.AbstractRegistryDescriptor#getPriority()
 	 */
+	@Override
 	public int getPriority() {
 		if (isCore)
 			return 0;
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ExtendedComposedAdapterFactory.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ExtendedComposedAdapterFactory.java
index 8f26cf3..8339198 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ExtendedComposedAdapterFactory.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ExtendedComposedAdapterFactory.java
@@ -27,7 +27,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.internal.emfworkbench.integration.EMFWorkbenchEditPlugin;
 
 /**
  * @author schacher
@@ -65,6 +65,7 @@
 	 * @see org.eclipse.emf.common.notify.AdapterFactory#adapt(org.eclipse.emf.common.notify.Notifier,
 	 *      java.lang.Object)
 	 */
+	@Override
 	public Adapter adapt(Notifier target, Object type) {
 		Adapter result = null;
 
@@ -87,7 +88,7 @@
 						try {
 							result = delegateAdapterFactory.adapt(target, type);
 						} catch (RuntimeException re) {
-							Logger.getLogger().logError(re);
+							EMFWorkbenchEditPlugin.logError(re);
 							adapterFactories.remove(delegateAdapterFactory);
 							attemptAdaptAgain = true;
 						}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/InvertedCommand.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/InvertedCommand.java
index 2bbcb11..eb25a7a 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/InvertedCommand.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/InvertedCommand.java
@@ -26,10 +26,12 @@
 		super(targetCommand);
 	}
 
+	@Override
 	public boolean canExecute() {
 		return getTarget().canUndo();
 	}
 
+	@Override
 	public boolean canUndo() {
 		return getTarget().canExecute();
 	}
@@ -44,6 +46,7 @@
 	/**
 	 * getEditModelCommand method comment.
 	 */
+	@Override
 	public EditModelCommand getEditModelCommand() {
 		return ((AbstractEditModelCommand) getTarget()).getEditModelCommand();
 	}
@@ -62,6 +65,7 @@
 		getTarget().undo();
 	}
 
+	@Override
 	public void undo() {
 		getTarget().redo();
 	}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ParentCommand.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ParentCommand.java
index 9c7dc90..1a88cbf 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ParentCommand.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ParentCommand.java
@@ -42,6 +42,7 @@
 		children = new ArrayList(1);
 	}
 
+	@Override
 	public boolean canExecute() {
 		return getTarget().canExecute();
 	}
@@ -92,6 +93,7 @@
 		pushChildrenForExecute();
 	}
 
+	@Override
 	protected void executeInModel(AbstractEditModelCommand cmd) {
 		getEditModel().getCommandStack().execute(cmd);
 	}
@@ -145,6 +147,7 @@
 		invertFrom(child);
 	}
 
+	@Override
 	public void undo() {
 		getTarget().undo();
 		invertChildren();
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ReadOnlyClientAccessRegistry.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ReadOnlyClientAccessRegistry.java
index e845428..e2fc767 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ReadOnlyClientAccessRegistry.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/ReadOnlyClientAccessRegistry.java
@@ -25,6 +25,7 @@
 		super();
 	}
 
+	@Override
 	public synchronized void access(Object accessorKey) {
 		if (!registry.containsKey(accessorKey)) {
 			this.registry.put(accessorKey, null);
@@ -32,6 +33,7 @@
 			throw new ClientAccessRegistryException(EMFWorkbenchEditResourceHandler.ClientAccessRegistry_ERROR_0, accessorKey);
 	}
 
+	@Override
 	public synchronized void release(Object accessorKey) {
 
 		/*
@@ -43,6 +45,7 @@
 			complain(accessorKey);
 	}
 
+	@Override
 	public void complain(Object accessorKey) {
 
 		throw new ClientAccessRegistryException(EMFWorkbenchResourceHandler.getString("ClientAccessRegistry_ERROR_1"), accessorKey); //$NON-NLS-1$
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/Snapshot.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/Snapshot.java
index a2b64b4..6681a3d 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/Snapshot.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/Snapshot.java
@@ -27,6 +27,11 @@
  */
 public class Snapshot extends RuntimeException {
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -6041488000642757347L;
+
 	public Snapshot() {
 		super(EMFWorkbenchEditResourceHandler.Snapshot_ERROR_0);
 	}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/WrappingCommandStack.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/WrappingCommandStack.java
index bf15371..7a58d62 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/WrappingCommandStack.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/edit/WrappingCommandStack.java
@@ -32,6 +32,7 @@
 		editModel = anEditModel;
 	}
 
+	@Override
 	public void execute(Command command) {
 		ParentCommand parent = new ParentCommand(command, editModel);
 		super.execute(parent);
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ComposedAccessorKey.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ComposedAccessorKey.java
index 70cac1e..40c98ef 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ComposedAccessorKey.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ComposedAccessorKey.java
@@ -35,6 +35,7 @@
 		this.addonKey = addonKey;
 	}
 
+	@Override
 	public boolean equals(Object other) {
 		if (other == null || !(other instanceof ComposedAccessorKey))
 			return false;
@@ -48,6 +49,7 @@
 	 * 
 	 * @see java.lang.Object#hashCode()
 	 */
+	@Override
 	public int hashCode() {
 		return accessorKey.hashCode() ^ addonKey.hashCode();
 	}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ComposedEditModel.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ComposedEditModel.java
index e46fa9a..f3b4ed4 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ComposedEditModel.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ComposedEditModel.java
@@ -109,6 +109,7 @@
 	/**
 	 * Return the CommandStack.
 	 */
+	@Override
 	protected BasicCommandStack createCommandStack() {
 		return new WrappingCommandStack(this);
 	}
@@ -121,6 +122,7 @@
 			notifyListeners(anEvent);
 	}
 
+	@Override
 	public Set getAffectedFiles() {
 		Set aSet = new HashSet();
 		List models = getChildren();
@@ -146,6 +148,7 @@
 	/**
 	 * Pass along to children.
 	 */
+	@Override
 	protected void handleSaveIfNecessaryDidNotSave(IProgressMonitor monitor) {
 		List list = getChildren();
 		EditModel editModel;
@@ -158,6 +161,7 @@
 	/**
 	 * Return whether a save is needed on the CommandStack
 	 */
+	@Override
 	public boolean isDirty() {
 		Iterator editModels = getChildren().iterator();
 		while (editModels.hasNext()) {
@@ -168,6 +172,7 @@
 		return false;
 	}
 
+	@Override
 	public boolean isReadOnly() {
 		return false;
 	}
@@ -175,6 +180,7 @@
 	/**
 	 * Return whether a save is needed on the CommandStack
 	 */
+	@Override
 	public boolean isInterrestedInResource(Resource aResource) {
 		Iterator editModels = getChildren().iterator();
 		while (editModels.hasNext()) {
@@ -185,6 +191,7 @@
 		return false;
 	}
 
+	@Override
 	public void primSave(IProgressMonitor monitor) {
 		List list = getChildren();
 		for (int i = 0; i < list.size(); i++)
@@ -195,6 +202,7 @@
 	 * This only increments the reference count of the children and should only be called if you
 	 * know what you are doing.
 	 */
+	@Override
 	public void access(Object accessorKey) {
 		ComposedAccessorKey composedAccessorKey = ComposedAccessorKey.getComposedAccessorKey(accessorKey, this);
 		if (getChildren().size() == 0) {
@@ -216,6 +224,7 @@
 	 * This method should be called from each client when they are finished working with the
 	 * EditModel.
 	 */
+	@Override
 	public void releaseAccess(Object accessorKey) {
 		List tempchildren = getChildren();
 		ComposedAccessorKey composedAccessorKey = ComposedAccessorKey.getComposedAccessorKey(accessorKey, this);
@@ -235,6 +244,7 @@
 	/**
 	 * If one should save, they all should save.
 	 */
+	@Override
 	protected boolean shouldSave() {
 		List list = getChildren();
 		EditModel editModel;
@@ -249,6 +259,7 @@
 	/**
 	 * If one should save, they all should save.
 	 */
+	@Override
 	protected boolean shouldSave(IOperationHandler operationHandler) {
 		List list = getChildren();
 		EditModel editModel;
@@ -263,6 +274,7 @@
 	/**
 	 * @see com.ibm.etools.j2ee.workbench.EditModel#getNonResourceFiles()
 	 */
+	@Override
 	public List getNonResourceFiles() {
 		List list = getChildren();
 		List result = new ArrayList();
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/DynamicAdapterFactory.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/DynamicAdapterFactory.java
index 37571ee..565050c 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/DynamicAdapterFactory.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/DynamicAdapterFactory.java
@@ -41,7 +41,6 @@
 import org.eclipse.emf.edit.provider.INotifyChangedListener;
 import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.internal.enablement.EnablementIdentifier;
 import org.eclipse.wst.common.frameworks.internal.enablement.EnablementIdentifierEvent;
 import org.eclipse.wst.common.frameworks.internal.enablement.EnablementManager;
@@ -211,7 +210,7 @@
 				else
 					addAdapterFactory(aProject, aPackage, factory);
 			} catch (RuntimeException re) {
-				Logger.getLogger().logError(re);
+				EMFWorkbenchEditPlugin.logError(re);
 			}
 		}
 		return factory;
@@ -409,7 +408,7 @@
 					try {
 						result = delegateAdapterFactory.adapt(target, type);
 					} catch (RuntimeException re) {
-						Logger.getLogger().logError(re);
+						EMFWorkbenchEditPlugin.logError(re);
 						removeFactoryForTypes(p, types);
 						attemptAdaptAgain = true;
 					}
@@ -620,6 +619,7 @@
 					 * 
 					 * @see org.eclipse.emf.common.notify.impl.NotificationImpl#getNotifier()
 					 */
+					@Override
 					public Object getNotifier() {
 						return null; // notifier;
 					}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EMFWorkbenchEditPlugin.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EMFWorkbenchEditPlugin.java
index e409b3b..c5ab373 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EMFWorkbenchEditPlugin.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EMFWorkbenchEditPlugin.java
@@ -13,7 +13,11 @@
 import java.io.FileNotFoundException;
 
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.common.util.WrappedException;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
@@ -21,11 +25,15 @@
 import org.eclipse.wst.common.internal.emfworkbench.PassthruResourceSet;
 import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper;
 import org.osgi.framework.BundleContext;
+import java.lang.Throwable;
 
 /**
  * The main plugin class to be used in the desktop.
  */
 public class EMFWorkbenchEditPlugin extends Plugin {
+	//the ID for this plugin (added automatically by logging quickfix)
+	public static final String PLUGIN_ID = "org.eclipse.wst.common.emfworkbench.integration"; //$NON-NLS-1$
+
 	public static final String ID = "org.eclipse.wst.common.emfworkbench.integration"; //$NON-NLS-1$
 
 	public static final String EDIT_MODEL_FACTORIES_EXTENSION_POINT = "editModel"; //$NON-NLS-1$
@@ -56,6 +64,7 @@
 	 * 
 	 * @see org.eclipse.core.runtime.Plugin#startup()
 	 */
+	@Override
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 		ExtendedEcoreUtil.setFileNotFoundDetector(new ExtendedEcoreUtil.FileNotFoundDetector() {
@@ -74,5 +83,33 @@
 		return new PassthruResourceSet();
 	}
 
+	public static IStatus createStatus(int severity, String message, Throwable exception) {
+		return new Status(severity, PLUGIN_ID, message, exception);
+	}
+
+	public static IStatus createStatus(int severity, String message) {
+		return createStatus(severity, message, null);
+	}
+
+	public static void logError(Throwable exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, exception.getMessage(), exception));
+	}
+
+	public static void logError(CoreException exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( exception.getStatus() );
+	}
+
+	public static void logWarning(String message) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log(createStatus(IStatus.WARNING, message));
+	}
+
+	public static void logWarning(Throwable exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.WARNING, exception.getMessage(), exception));
+	}
+
+	public static void logError(String message) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, message));
+	}
+
 
 }
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java
index d22d645..f83118f 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModel.java
@@ -48,7 +48,6 @@
 import org.eclipse.jem.internal.util.emf.workbench.nls.EMFWorkbenchResourceHandler;
 import org.eclipse.jem.util.emf.workbench.ResourceSetWorkbenchSynchronizer;
 import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.internal.ISaveHandler;
 import org.eclipse.wst.common.frameworks.internal.SaveFailedException;
 import org.eclipse.wst.common.frameworks.internal.SaveHandlerHeadless;
@@ -73,6 +72,7 @@
 import org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateValidator;
 import org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateValidatorImpl;
 import org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateValidatorPresenter;
+import org.eclipse.wst.common.internal.emfworkbench.integration.EMFWorkbenchEditPlugin;
 
 
 public class EditModel implements CommandStackListener, ResourceStateInputProvider, ResourceStateValidator, IEnablementIdentifierListener {
@@ -110,6 +110,7 @@
 	private List resourcesTargetedForTermination;
 
 	protected class ResourceAdapter extends AdapterImpl {
+		@Override
 		public void notifyChanged(Notification notification) {
 			if (!isDisposing() && notification.getEventType() == Notification.SET && notification.getFeatureID(null) == Resource.RESOURCE__IS_LOADED) {
 				resourceIsLoadedChanged((Resource) notification.getNotifier(), notification.getOldBooleanValue(), notification.getNewBooleanValue());
@@ -174,7 +175,7 @@
 			releaseIdentifiers();
 			doDispose();
 		} catch (RuntimeException re) {
-			Logger.getLogger().logError(re);
+			EMFWorkbenchEditPlugin.logError(re);
 		} finally {
 			emfContext = null;
 			resources = null;
@@ -376,7 +377,7 @@
 		} catch (SaveFailedException ex) {
 			getSaveHandler().handleSaveFailed(ex, monitor);
 		} catch (Exception ex) {
-			ex.printStackTrace();
+			EMFWorkbenchEditPlugin.logError(ex);
 		} finally {
 			getSaveHandler().release();
 		}
@@ -534,7 +535,7 @@
 				enabled = identifier.isEnabled();
 			}
 		} catch (RuntimeException re) {
-			Logger.getLogger().logWarning(re);
+			EMFWorkbenchEditPlugin.logWarning(re);
 		}
 		if (enabled) {
 			URI uri = res.getURI();
@@ -906,7 +907,8 @@
 	/**
 	 * Process Resources that we are interrested in.
 	 */
-	protected boolean processResourcesIfInterrested(List someResources) {
+	protected boolean processResourcesIfInterrested(List aSomeResources) {
+		List someResources = new ArrayList(aSomeResources);
 		int size = someResources.size();
 		Resource res;
 		boolean processed = false;
@@ -935,6 +937,8 @@
 
 
 	public IProject getProject() {
+		if(project == null)
+			throw new IllegalStateException("The value of the project attribute is null"); //$NON-NLS-1$
 		return project;
 	}
 
@@ -1230,7 +1234,7 @@
 	 * @aResource.
 	 */
 	protected void primHandleSaveFailed(Resource aResource, Exception e) {
-		org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(e);
+		EMFWorkbenchEditPlugin.logError(e);
 		Exception nested = null;
 		if (e instanceof IWFTWrappedException)
 			nested = ((IWFTWrappedException) e).getNestedException();
@@ -1412,6 +1416,7 @@
 		accessAsReadForUnKnownURIs = b;
 	}
 
+	@Override
 	public String toString() {
 		StringBuffer buffer = new StringBuffer(getClass().getName());
 		buffer.append(": "); //$NON-NLS-1$
@@ -1460,6 +1465,7 @@
 		 * 
 		 * @see java.lang.Object#toString()
 		 */
+		@Override
 		public String toString() {
 			if (tostring == null) {
 				StringBuffer result = new StringBuffer("EditModel.Reference ["); //$NON-NLS-1$
@@ -1478,6 +1484,7 @@
 		 * 
 		 * @see java.lang.Object#hashCode()
 		 */
+		@Override
 		public int hashCode() {
 			return toString().hashCode();
 		}
@@ -1493,7 +1500,7 @@
 		Resource res = getPrimaryResource();
 		if (res == null || res.getContents().isEmpty())
 			return null;
-		return (EObject) res.getContents().get(0);
+		return res.getContents().get(0);
 	}
 
 	/**
@@ -1608,5 +1615,5 @@
 				listener.editModelChanged(event); 
 		}
 		
-	};
+	}
 }
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModelCommand.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModelCommand.java
index 00eed90..7476636 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModelCommand.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/EditModelCommand.java
@@ -28,16 +28,19 @@
 		super(targetCommand);
 	}
 
+	@Override
 	public boolean canUndo() {
 		return getTarget().canUndo();
 	}
 
 	protected abstract void executeInModel(AbstractEditModelCommand cmd);
 
+	@Override
 	public EditModelCommand getEditModelCommand() {
 		return this;
 	}
 
+	@Override
 	public String getLabel() {
 		return getTarget().getLabel();
 	}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModelModifier.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModelModifier.java
index 53d88ec..f0b9b72 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModelModifier.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModelModifier.java
@@ -258,6 +258,7 @@
 	}
 
 	protected Command createCommand(Command chainedCommand, List helpersArg) {
+		Command innerChainedCommand = chainedCommand;
 		if (null == extendedHelpers) {
 			extendedHelpers = new ArrayList();
 		}
@@ -267,33 +268,34 @@
 			Command nextCommand = null;
 			while (it.hasNext()) {
 				nextCommand = createCommand((ModifierHelper) it.next());
-				if (chainedCommand == null)
-					chainedCommand = nextCommand;
+				if (innerChainedCommand == null)
+					innerChainedCommand = nextCommand;
 				else if (nextCommand != null)
-					chainedCommand = chainedCommand.chain(nextCommand);
+					innerChainedCommand = innerChainedCommand.chain(nextCommand);
 			}
 		}
 		if (!extendedHelpers.isEmpty()) {
 			List copy = new ArrayList();
 			copy.addAll(extendedHelpers);
 			extendedHelpers.clear();
-			chainedCommand = createCommand(chainedCommand, copy);
+			innerChainedCommand = createCommand(innerChainedCommand, copy);
 		}
-		return chainedCommand;
+		return innerChainedCommand;
 	}
 
 	protected Command appendAdditionalCommands(Command chainedCommand) {
+		Command innerChainedCommand = chainedCommand;
 		if (additionalCommands != null && !additionalCommands.isEmpty()) {
 			Command command;
 			for (int i = 0; i < additionalCommands.size(); i++) {
 				command = (Command) additionalCommands.get(i);
-				if (chainedCommand == null)
-					chainedCommand = command;
+				if (innerChainedCommand == null)
+					innerChainedCommand = command;
 				else
-					chainedCommand = chainedCommand.chain(command);
+					innerChainedCommand = innerChainedCommand.chain(command);
 			}
 		}
-		return chainedCommand;
+		return innerChainedCommand;
 	}
 
 	/**
@@ -321,7 +323,7 @@
 
 	protected String createCommandLabel(String aPattern, EStructuralFeature feature) {
 		String replacement = feature == null ? DEFAULT_COMMAND_LABEL : feature.getName();
-		return java.text.MessageFormat.format(aPattern, new String[]{replacement});
+		return java.text.MessageFormat.format(aPattern, new Object[]{replacement});
 	}
 
 	/**
@@ -338,6 +340,11 @@
 		return aHelper.createNewObjectFromFeature();
 	}
 
+	
+	/**
+	 * Used to remove an object on unset.  Makes the object a proxy  
+	 * on execute and redo commands.  Undo will remove the proxy.
+	 */
 	public class ProxyWrappingCommand extends AbstractCommand {
 		protected Command baseCommand = null;
 		protected EObject eObject = null;
@@ -349,6 +356,7 @@
 			this.resource = eObject.eResource();
 		}
 
+		@Override
 		public boolean canExecute() {
 			return baseCommand.canExecute();
 		}
@@ -358,35 +366,43 @@
 			baseCommand.execute();
 		}
 
+		@Override
 		public boolean canUndo() {
 			return baseCommand.canUndo();
 		}
 
+		@Override
 		public void undo() {
 			baseCommand.undo();
 			ExtendedEcoreUtil.removeProxy(eObject, resource);
 		}
 
 		public void redo() {
+			ExtendedEcoreUtil.becomeProxy(eObject, resource);
 			baseCommand.redo();
 		}
 
+		@Override
 		public Collection getResult() {
 			return baseCommand.getResult();
 		}
 
+		@Override
 		public Collection getAffectedObjects() {
 			return baseCommand.getAffectedObjects();
 		}
 
+		@Override
 		public String getLabel() {
 			return baseCommand.getLabel();
 		}
 
+		@Override
 		public String getDescription() {
 			return baseCommand.getDescription();
 		}
 
+		@Override
 		public void dispose() {
 			super.dispose();
 			baseCommand.dispose();
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModifierHelper.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModifierHelper.java
index ad949b3..5eabc81 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModifierHelper.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModifierHelper.java
@@ -19,7 +19,6 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.impl.EClassImpl;
 import org.eclipse.emf.edit.command.SetCommand;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.internal.emf.utilities.FeatureValueConversionException;
 import org.eclipse.wst.common.internal.emf.utilities.FeatureValueConverter;
 
@@ -320,7 +319,7 @@
 		try {
 			primSetValue(convertValue(newValue));
 		} catch (FeatureValueConversionException featureException) {
-			Logger.getLogger().logError(featureException);
+			EMFWorkbenchEditPlugin.logError(featureException);
 			primSetValue(null);
 		}
 	}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModifierHelperRegistry.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModifierHelperRegistry.java
index b1da8ad..cad78b7 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModifierHelperRegistry.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ModifierHelperRegistry.java
@@ -31,7 +31,6 @@
 import org.eclipse.emf.ecore.EClassifier;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jem.util.logger.proxy.Logger;
 
 /**
  * @author jsholl
@@ -73,7 +72,7 @@
 						factory = (ModifierHelperFactory) element.createExecutableExtension(FACTORY_CLASS);
 						factoryHash.put(hashKey, factory);
 					} catch (CoreException e) {
-						Logger.getLogger().logError(e);
+						EMFWorkbenchEditPlugin.logError(e);
 					}
 				}
 				return factory;
@@ -81,6 +80,7 @@
 			return null;
 		}
 
+		@Override
 		public boolean equals(Object obj) {
 			if (super.equals(obj)) {
 				return true;
@@ -88,6 +88,11 @@
 			FactoryHolder holder = (FactoryHolder) obj;
 			return getFactoryHash(element).equals(getFactoryHash(holder.element));
 		}
+		
+		@Override
+		public int hashCode() {
+			return super.hashCode() + getFactoryHash(element).hashCode();
+		}
 	}
 
 	private ModifierHelperRegistry() {
@@ -218,7 +223,7 @@
 		StringBuffer buf = new StringBuffer();
 		buf.append("Plugin " + extension.getNamespace() + ", extension " + extension.getExtensionPointUniqueIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
 		buf.append("\n" + text); //$NON-NLS-1$
-		Logger.getLogger().logError(buf.toString());
+		EMFWorkbenchEditPlugin.logError(buf.toString());
 	}
 
 	public static ModifierHelperRegistry getInstance() {
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ProjectResourceSetEditImpl.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ProjectResourceSetEditImpl.java
index 07a326e..31c7832 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ProjectResourceSetEditImpl.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ProjectResourceSetEditImpl.java
@@ -44,6 +44,7 @@
 	 * 
 	 * @see org.eclipse.jem.internal.util.emf.workbench.ProjectResourceSetImpl#createResource(org.eclipse.emf.common.util.URI)
 	 */
+	@Override
 	public Resource createResource(URI uri, String contentType) {
 		Resource result = super.createResource(uri, contentType);
 		if (result != null && WorkbenchResourceHelper.isReferencedResource(result))
@@ -51,6 +52,7 @@
 		return result;
 	}
 
+	@Override
 	public Resource createResource(URI uri) {
 		return createResource(uri, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
 	}
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java
index d728798..65faf9c 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java
@@ -16,6 +16,7 @@
  */
 package org.eclipse.wst.common.internal.emfworkbench.integration;
 
+import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -37,16 +38,14 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.ILock;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.common.util.WrappedException;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.jem.internal.util.emf.workbench.EMFWorkbenchContextFactory;
+import org.eclipse.jem.internal.util.emf.workbench.ProjectResourceSetImpl;
 import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
 import org.eclipse.jem.util.emf.workbench.ResourceSetWorkbenchSynchronizer;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.jem.util.plugin.JEMUtilPlugin;
 import org.eclipse.wst.common.internal.emf.resource.ReferencedResource;
 import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper;
@@ -64,33 +63,26 @@
 	private Set recentlySavedFiles = new HashSet();
 	private Map ignoredFilesCache = new HashMap();
 	private class SavedFileKey {
-		private Resource res;
+		private WeakReference res;
 		private IFile savedFile;
 		public SavedFileKey(Resource res, IFile savedFile) {
 			super();
-			this.res = res;
+			this.res = new WeakReference(res);
 			this.savedFile = savedFile;
 		}
 		public Resource getRes() {
-			return res;
+			return this.res == null ? null : (Resource)res.get();
 		}
-		public void setRes(Resource res) {
-			this.res = res;
-		}
-		public IFile getSavedFile() {
-			return savedFile;
-		}
-		public void setSavedFile(IFile savedFile) {
-			this.savedFile = savedFile;
-		}
+		@Override
 		public int hashCode() {
 			final int prime = 31;
 			int result = 1;
 			result = prime * result + getOuterType().hashCode();
-			result = prime * result + ((res == null) ? 0 : res.hashCode());
+			result = prime * result + ((getRes() == null) ? 0 : getRes().hashCode());
 			result = prime * result + ((savedFile == null) ? 0 : savedFile.hashCode());
 			return result;
 		}
+		@Override
 		public boolean equals(Object obj) {
 			if (this == obj)
 				return true;
@@ -101,10 +93,10 @@
 			SavedFileKey other = (SavedFileKey) obj;
 			if (!getOuterType().equals(other.getOuterType()))
 				return false;
-			if (res == null) {
-				if (other.res != null)
+			if (getRes() == null) {
+				if (other.getRes() != null)
 					return false;
-			} else if (!res.equals(other.res))
+			} else if (!getRes().equals(other.getRes()))
 				return false;
 			if (savedFile == null) {
 				if (other.savedFile != null)
@@ -134,12 +126,13 @@
 	public ResourceSetWorkbenchEditSynchronizer(ResourceSet aResourceSet, IProject aProject) {
 		super(aResourceSet, aProject);
 	}
-
+		
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see org.eclipse.wst.common.internal.emfworkbench.ResourceSetWorkbenchSynchronizer#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
 	 */
+	@Override
 	public void resourceChanged(IResourceChangeEvent event) {
 		super.resourceChanged(event);
 		try {
@@ -147,7 +140,7 @@
 			notifyExtendersIfNecessary();
 			processDeferredResources();
 		} catch (Exception e) {
-			e.printStackTrace();
+			EMFWorkbenchEditPlugin.logError(e);
 		} finally {
 			deferredRemoveResources.clear();
 			deferredUnloadResources.clear();
@@ -179,59 +172,30 @@
 			try {
 				resourceSet.getResource(uri, true);
 			} catch (WrappedException ex) {
-				Logger.getLogger().logError(ex);
+				EMFWorkbenchEditPlugin.logError(ex);
 			}
 
 		}
 	}
 
-	private ILock lock;
-	private static final long delay = 30;
-	
-    private ILock getLock() {
-        if (lock == null)
-            lock = Platform.getJobManager().newLock();
-        return lock;
-    }
-    
-    private void releaseLock() {
-        getLock().release();
-    }
-    private boolean aquireLock() throws InterruptedException{
-    	return getLock().acquire(delay);
-    }
-    
 	protected void acceptDelta(final IResourceChangeEvent event) {
 
-		boolean hasLocked = false;
-		try {
-			hasLocked = aquireLock();
-		} catch (InterruptedException e) {
-			Logger.getLogger().write(e);
-		}		
-		
-		try{
-			final IResourceDelta delta = event.getDelta();
-	
-			if (ResourcesPlugin.getWorkspace().isTreeLocked()) {
-				primAcceptDelta(delta, event);
-			}
-			else {
-				IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
-					public void run(IProgressMonitor monitor) throws CoreException {
-						primAcceptDelta(delta, event);
-					}
-				};
-				try {
-					ResourcesPlugin.getWorkspace().run(runnable, project, IWorkspace.AVOID_UPDATE, null);
-				} catch (CoreException e) {
-					// TODO Auto-generated catch block
-					e.printStackTrace();
+		final IResourceDelta delta = event.getDelta();
+
+		if (ResourcesPlugin.getWorkspace().isTreeLocked()) {
+			primAcceptDelta(delta, event);
+		}
+		else {
+			IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
+				public void run(IProgressMonitor monitor) throws CoreException {
+					primAcceptDelta(delta, event);
 				}
+			};
+			try {
+				ResourcesPlugin.getWorkspace().run(runnable, project, IWorkspace.AVOID_UPDATE, null);
+			} catch (CoreException e) {
+				EMFWorkbenchEditPlugin.logError(e);
 			}
-		}finally{
-			if( hasLocked )
-				releaseLock();
 		}
 	}
 
@@ -241,7 +205,7 @@
 				currentProjectDelta = null;
 				delta.accept(ResourceSetWorkbenchEditSynchronizer.this);
 			} catch (Exception e) {
-				Logger.getLogger().logError(e);
+				EMFWorkbenchEditPlugin.logError(e);
 			}
 		}
 	}
@@ -250,6 +214,7 @@
 	 * The project is going away so we need to cleanup ourself and the ResourceSet. TODO Need to
 	 * push up this code to ResourceSetWorkbenchSynchronizer in next release.
 	 */
+	@Override
 	protected void release() {
 		if (JEMUtilPlugin.isActivated()) {
 			try {
@@ -319,22 +284,26 @@
 	 * @post Return true if a <code>Resource</code> was queued up to be reloaded.
 	 */
 	protected boolean addedResource(IFile aFile) {
-        boolean didProcess = false;
-        List resources = getResources(aFile);
-        for (Iterator iterator = resources.iterator(); iterator.hasNext();) {
+		boolean didProcess = false;
+		List resources = getResources(aFile);
+		for (Iterator iterator = resources.iterator(); iterator.hasNext();) {
 			Resource resource = (Resource) iterator.next();
 
-			if ((resource != null) || (recentlySavedFilesContains(resource))) {
-				/*
-				 * The IFile was just added to the workspace but we have a
-				 * resource in memory. Need to decide if it should be unloaded.
-				 */
-				if (resource.isModified()) {
-					if (WorkbenchResourceHelper.isReferencedResource(resource)) {
-						ReferencedResource refRes = (ReferencedResource) resource;
-						if (refRes.shouldForceRefresh()) {
-							deferredUnloadResources.add(resource);
-							didProcess = true;
+			if (resource != null) {
+				if (recentlySavedFilesContains(resource)) {
+
+					/*
+					 * The IFile was just added to the workspace but we have a
+					 * changed resource in memory. Need to decide if it should
+					 * be unloaded.
+					 */
+					if (resource.isModified()) {
+						if (WorkbenchResourceHelper.isReferencedResource(resource)) {
+							ReferencedResource refRes = (ReferencedResource) resource;
+							if (refRes.shouldForceRefresh()) {
+								deferredUnloadResources.add(resource);
+								didProcess = true;
+							}
 						}
 					}
 				} else {
@@ -349,24 +318,24 @@
 							deferredUnloadResources.add(resource);
 							didProcess = true;
 						}
+					} else {
+						/* Process autoload resources on added file */
+						URI uri = URI.createPlatformResourceURI(aFile.getFullPath().toString());
+						if ((autoloadResourcesURIs.contains(uri)) || (autoloadResourcesExts.contains(aFile.getFileExtension()))) {
+							deferredLoadResources.add(uri);
+							didProcess = true;
+						}
 					}
 				}
-			} else {
-				// Process resource as a refresh.
-				URI uri = URI.createPlatformResourceURI(aFile.getFullPath().toString());
-				if ((autoloadResourcesURIs.contains(uri)) || (autoloadResourcesExts.contains(aFile.getFileExtension()))) {
-					deferredLoadResources.add(uri);
-					didProcess = true;
-				}
 			}
 		}
-        return didProcess;
-}
+		return didProcess;
+	}
 
 	private synchronized boolean recentlySavedFilesContains(Resource resource) {
 		for (Iterator iterator = recentlySavedFiles.iterator(); iterator.hasNext();) {
 			SavedFileKey key = (SavedFileKey) iterator.next();
-			if (key.res.equals(resource)) 
+			if (key.getRes() != null && (key.getRes().getURI().equals(resource.getURI()) && key.getRes().getClass().equals(resource.getClass())))
 				return true;
 			}
 		return false;
@@ -376,16 +345,17 @@
 		List resources = getResources(aFile);
         for (Iterator iterator = resources.iterator(); iterator.hasNext();) {
 			Resource resource = (Resource) iterator.next();
-			if ((resource != null) || (recentlySavedFilesContains(resource))) {
-				if (resource.isModified()) {
-					if (WorkbenchResourceHelper.isReferencedResource(resource)) {
-						ReferencedResource refRes = (ReferencedResource) resource;
-						if (!refRes.shouldForceRefresh())
-							continue; // Do not do anything
-					} else
-						continue;
+			if ((resource != null)) {
+				if (recentlySavedFilesContains(resource)) {
+					if (resource.isModified()) {
+						if (WorkbenchResourceHelper.isReferencedResource(resource)) {
+							ReferencedResource refRes = (ReferencedResource) resource;
+							if (!refRes.shouldForceRefresh())
+								continue; // Do not do anything
+						} else
+							continue;
+					}
 				}
-
 				if (isRemove)
 					deferredRemoveResources.add(resource);
 				else if (resource.isLoaded()) {
@@ -427,20 +397,43 @@
 	}
 	
 	protected List getResources(IFile aFile) {
-		
+
 		List resources = new ArrayList();
-		List allResources = resourceSet.getResources();
-		for (Iterator iterator = allResources.iterator(); iterator.hasNext();) {
-			Resource res = (Resource) iterator.next();
-			URI resURI = res.getURI();
-			IPath resURIPath;
-			if (WorkbenchResourceHelper.isPlatformResourceURI(resURI)) 
-				resURIPath = new Path(URI.decode(resURI.path())).removeFirstSegments(2);
-			else 
-				resURIPath = new Path(URI.decode(resURI.path())).removeFirstSegments(1);
-			String resURIString = resURIPath.toString();
-			if (!resURIString.equals("") && aFile.getFullPath().toString().indexOf(resURIString) != -1)
-				resources.add(res);
+		String aFileString = URI.decode(aFile.getFullPath().toString());
+		IPath aFilePath = new Path(aFileString).removeFirstSegments(1);
+		if (!aFilePath.isEmpty())
+		{
+			aFileString = aFilePath.toString();
+		}
+		if (aFileString.length() > 0)
+		{
+			List allResources = null;
+			if (resourceSet instanceof ProjectResourceSetImpl) {
+	            ProjectResourceSetImpl projResSet =(ProjectResourceSetImpl)resourceSet;
+	            allResources = projResSet.getImmutableResources();
+	        } else {
+	            allResources = resourceSet.getResources();
+	        }
+			for (Iterator iterator = allResources.iterator(); iterator.hasNext();) {
+				Resource res = (Resource) iterator.next();
+				URI resURI = res.getURI();
+				String resURIString = ""; //$NON-NLS-1$
+				if (resURI.path() != null) {
+					IPath resURIPath;
+					if (WorkbenchResourceHelper.isPlatformResourceURI(resURI))
+						resURIPath = new Path(URI.decode(resURI.path())).removeFirstSegments(2);
+					else
+						resURIPath = new Path(URI.decode(resURI.path())).removeFirstSegments(1);
+					resURIString = resURIPath.toString();
+				}
+	
+				if (resURIString.length() > 0)
+				{
+					if (aFileString.equals(resURIString))
+					//if (!resURIString.equals("") && aFile.getFullPath().toString().indexOf(resURIString) != -1) //$NON-NLS-1$
+						resources.add(res);
+				}
+			}
 		}
 		return resources;
 	}
@@ -449,6 +442,7 @@
 	/**
 	 * This method should be called prior to writing to an IFile from a MOF resource.
 	 */
+	@Override
 	public void preSave(IFile aFile) {
 		if (aFile != null) {
 			recentlySavedFilesAdd(aFile,null);
@@ -487,10 +481,9 @@
 			SavedFileKey key = (SavedFileKey) iterator.next();
 			if (key.savedFile != null && key.savedFile.equals(file)) {
 				List resources = getResources(file);
-				if (key.res == null || resources.contains(key.res) ) {
+				if (key.getRes() == null || resources.contains(key.getRes()) ) {
 					iterator.remove();
 					removedFromList = true;
-					break;
 				}
 			}
 		}
@@ -580,6 +573,7 @@
 	 * 
 	 * @see org.eclipse.wst.common.internal.emfworkbench.ResourceSetWorkbenchSynchronizer#initialize()
 	 */
+	@Override
 	protected void initialize() {
 		getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.POST_CHANGE);
 	}
@@ -591,6 +585,7 @@
 		autoloadResourcesExts.remove(extension);
 	}
 
+	@Override
 	public void dispose() {
 		super.dispose();
 		currentProjectDelta = null;
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/validateedit/ValidateEditHeadlessContext.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/validateedit/ValidateEditHeadlessContext.java
index 11efe03..5ec8ed9 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/validateedit/ValidateEditHeadlessContext.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/validateedit/ValidateEditHeadlessContext.java
@@ -45,7 +45,6 @@
 	 * @see org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateValidatorPresenter#getValidateEditContext()
 	 */
 	public Object getValidateEditContext() {
-		// TODO Auto-generated method stub
 		return null;
 	}
 
@@ -55,7 +54,6 @@
 	 * @see org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateValidatorPresenter#promptForInconsistentFileOverwrite(java.util.List)
 	 */
 	public boolean promptForInconsistentFileOverwrite(List inconsistentFiles) {
-		// TODO Auto-generated method stub
 		return false;
 	}
 
@@ -65,7 +63,6 @@
 	 * @see org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateValidatorPresenter#promptForInconsistentFileRefresh(java.util.List)
 	 */
 	public boolean promptForInconsistentFileRefresh(List inconsistentFiles) {
-		// TODO Auto-generated method stub
 		return false;
 	}
 
diff --git a/plugins/org.eclipse.wst.common.environment/.classpath b/plugins/org.eclipse.wst.common.environment/.classpath
index ce73933..304e861 100644
--- a/plugins/org.eclipse.wst.common.environment/.classpath
+++ b/plugins/org.eclipse.wst.common.environment/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/plugins/org.eclipse.wst.common.environment/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.environment/.settings/org.eclipse.jdt.core.prefs
index bd896db..037a4e5 100644
--- a/plugins/org.eclipse.wst.common.environment/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.wst.common.environment/.settings/org.eclipse.jdt.core.prefs
@@ -1,57 +1,95 @@
-#Mon Jan 30 10:37:36 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-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=warning
-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.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=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.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+#Mon Jun 08 15:35:45 EDT 2009
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error
+org.eclipse.jdt.core.compiler.problem.unusedLocal=error
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
 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.3
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.compiler.problem.fieldHiding=error
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
+eclipse.preferences.version=1
+org.eclipse.jdt.core.incompleteClasspath=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
+org.eclipse.jdt.core.compiler.problem.deadCode=error
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeUncheckedExceptions=disabled
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=warning
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
diff --git a/plugins/org.eclipse.wst.common.environment/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.environment/META-INF/MANIFEST.MF
index d7cf139..a5697c6 100644
--- a/plugins/org.eclipse.wst.common.environment/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.environment/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.common.environment
-Bundle-Version: 1.0.201.qualifier
+Bundle-Version: 1.0.400.qualifier
 Bundle-Activator: org.eclipse.wst.common.internal.environment.plugin.EnvironmentPlugin
 Bundle-Localization: plugin
 Export-Package: org.eclipse.wst.common.environment,
@@ -16,4 +16,4 @@
  org.eclipse.osgi.util;bundle-version="[3.1.300,4.0.0)"
 Bundle-Vendor: %providerName
 Eclipse-LazyStart: true 
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.common.environment/about.html b/plugins/org.eclipse.wst.common.environment/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.environment/about.html
+++ b/plugins/org.eclipse.wst.common.environment/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.environment/plugin.properties b/plugins/org.eclipse.wst.common.environment/plugin.properties
index c41575f..1e01ac9 100644
--- a/plugins/org.eclipse.wst.common.environment/plugin.properties
+++ b/plugins/org.eclipse.wst.common.environment/plugin.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
+# Copyright (c) 2006, 2009 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -9,5 +9,5 @@
 #     IBM Corporation - initial API and implementation
 ###############################################################################
 
-pluginName=Enviornment Plug-in
+pluginName=Environment Plug-in
 providerName=Eclipse.org
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/EnvironmentService.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/EnvironmentService.java
index 5663fec..53cae74 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/EnvironmentService.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/EnvironmentService.java
@@ -58,7 +58,7 @@
     
     try
     {
-      scheme = environment.getURIFactory().newURIScheme( "platform" );
+      scheme = environment.getURIFactory().newURIScheme( "platform" ); //$NON-NLS-1$
     }
     catch( URIException exc )
     {    
@@ -78,7 +78,7 @@
     
     try
     {
-      scheme = environment.getURIFactory().newURIScheme( "file" );
+      scheme = environment.getURIFactory().newURIScheme( "file" ); //$NON-NLS-1$
     }
     catch( URIException exc )
     {    
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/SimpleURIFactory.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/SimpleURIFactory.java
index bccb2e0..3f33c65 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/SimpleURIFactory.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/SimpleURIFactory.java
@@ -86,8 +86,8 @@
     if( schemeOrURI == null )
     {
       throw new URIException( 
-              new Status( IStatus.ERROR, "id", 0, 
-                 NLS.bind( Messages.MSG_NULL_ARG_SPECIFIED, "newURIScheme"), null ) );
+              new Status( IStatus.ERROR, "id", 0, //$NON-NLS-1$ 
+                 NLS.bind( Messages.MSG_NULL_ARG_SPECIFIED, "newURIScheme"), null ) ); //$NON-NLS-1$
     }
     
     int colon    = schemeOrURI.indexOf(':');
@@ -108,15 +108,15 @@
       if( newScheme == null )
       {
         throw new URIException( 
-            new Status( IStatus.ERROR, "id", 0, 
+            new Status( IStatus.ERROR, "id", 0, //$NON-NLS-1$ 
                 NLS.bind( Messages.MSG_SCHEME_NOT_FOUND, schemeOrURI ), null ) );
                 
       }
     }
-    else if( schemeOrURI.startsWith( "/") )
+    else if( schemeOrURI.startsWith( "/") ) //$NON-NLS-1$
     {
       throw new URIException( 
-          new Status( IStatus.ERROR, "id", 0,
+          new Status( IStatus.ERROR, "id", 0, //$NON-NLS-1$
               NLS.bind( Messages.MSG_ABSOLUTE_PATH_WITHOUT_SCHEME, schemeOrURI ), null ) );
       
     }
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/ConsoleEclipseEnvironment.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/ConsoleEclipseEnvironment.java
index 0c9c95e..b02f303 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/ConsoleEclipseEnvironment.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/ConsoleEclipseEnvironment.java
@@ -37,8 +37,8 @@
 	  uriFactory_      = new SimpleURIFactory();
 	  statusHandler_   = statusHandler;
 	    
-	  uriFactory_.registerScheme( "platform", new EclipseScheme( this ) );
-	  uriFactory_.registerScheme( "file", new FileScheme() );
+	  uriFactory_.registerScheme( "platform", new EclipseScheme( this ) ); //$NON-NLS-1$
+	  uriFactory_.registerScheme( "file", new FileScheme() ); //$NON-NLS-1$
 	}
 			
 	/* (non-Javadoc)
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseLog.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseLog.java
index e1d75e6..e586f53 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseLog.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseLog.java
@@ -43,7 +43,7 @@
 	 * @see org.eclipse.wst.common.Environment.ILog#isEnabled(java.lang.String)
 	 */
 	public boolean isEnabled(String option) {
-		return "true".equals(Platform.getDebugOption("org.eclipse.wst.common.environment/trace/"
+		return "true".equals(Platform.getDebugOption("org.eclipse.wst.common.environment/trace/" //$NON-NLS-1$ //$NON-NLS-2$
 				+ option));
 	}
 	
@@ -58,10 +58,10 @@
 			switch (severity) {
 				case ILog.ERROR :
 				{
-					if (isEnabled("error"))
+					if (isEnabled("error")) //$NON-NLS-1$
 					{
-						String message = getMessageNumString(messageNum) + "E "
-							+ caller + "::" + method + ": object="
+						String message = getMessageNumString(messageNum) + "E " //$NON-NLS-1$
+							+ caller + "::" + method + ": object=" //$NON-NLS-1$ //$NON-NLS-2$
 							+ object;
 						log( severity, message, null );
 					}
@@ -70,11 +70,11 @@
 				
 				case ILog.WARNING :
 				{
-					if (isEnabled("warning"))
+					if (isEnabled("warning")) //$NON-NLS-1$
 					{
 						String message = getMessageNumString(messageNum)
-								+ "W " + caller + "::" + method
-								+ ": object=" + object;
+								+ "W " + caller + "::" + method //$NON-NLS-1$ //$NON-NLS-2$
+								+ ": object=" + object; //$NON-NLS-1$
 						log( severity, message, null );
 					}
 					break;
@@ -82,10 +82,10 @@
 				
 				case ILog.INFO :
 				{
-					if (isEnabled("info"))
+					if (isEnabled("info")) //$NON-NLS-1$
 					{
-						String message = getMessageNumString(messageNum) + "I "
-								+ caller + "::" + method + ": object="
+						String message = getMessageNumString(messageNum) + "I " //$NON-NLS-1$
+								+ caller + "::" + method + ": object=" //$NON-NLS-1$ //$NON-NLS-2$
 								+ object;
 						log( severity, message, null );
 					}
@@ -120,8 +120,8 @@
 	{
 		if (isEnabled(option))
 		{
-			String message = getMessageNumString(messageNum) + "I " + caller
-					+ "::" + method + ": object=" + object;
+			String message = getMessageNumString(messageNum) + "I " + caller //$NON-NLS-1$
+					+ "::" + method + ": object=" + object; //$NON-NLS-1$ //$NON-NLS-2$
 			log(severity, message, null );
 		}	
 	}
@@ -134,8 +134,8 @@
 	{
 		if (isEnabled(option)) 
 		{
-			String message = getMessageNumString(messageNum) + "I " + caller
-					+ "::" + method;
+			String message = getMessageNumString(messageNum) + "I " + caller //$NON-NLS-1$
+					+ "::" + method; //$NON-NLS-1$
 			log( severity, message, throwable );
 		}
 	}
@@ -149,17 +149,18 @@
 		logger.log( status );
 	}
 	
-	private String getMessageNumString(int messageNum) {
-		String messageNumString = "IWAB";
-		if (messageNum > 9999 || messageNum < 0)
-			messageNum = 9999; //default message number
-		messageNumString += (new Integer(messageNum)).toString();
+	private String getMessageNumString(final int messageNum) {
+		String messageNumString = "IWAB"; //$NON-NLS-1$
+		int innerMessageNum = messageNum;
+		if (innerMessageNum > 9999 || innerMessageNum < 0)
+			innerMessageNum = 9999; //default message number
+		messageNumString += (new Integer(innerMessageNum)).toString();
 		return messageNumString;
 	}
 	
 	private void log( int severity, String message, Throwable exc )
 	{
-		Status status = new Status( severity, "id", 0, message, exc );
+		Status status = new Status( severity, "id", 0, message, exc ); //$NON-NLS-1$
 		logger.log( status );
 	}
 }
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseScheme.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseScheme.java
index 0042c4d..41b65c2 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseScheme.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseScheme.java
@@ -32,9 +32,10 @@
     environment_ = environment;
   }
   
-  public String toString()
+  @Override
+public String toString()
   {
-    return "platform";  
+    return "platform"; //$NON-NLS-1$
   }
   
   /**
@@ -56,7 +57,7 @@
     {
       IURIScheme scheme = uri.getURIScheme();
       
-      if( scheme.toString().equals( "relative") ) return scheme.isValid( uri );
+      if( scheme.toString().equals( "relative") ) return scheme.isValid( uri ); //$NON-NLS-1$
         
       getPathFromPlatformURI( uri.toString() );
     }
@@ -74,33 +75,30 @@
   {
     String newURI = null;
     
-    if( uri != null && uri.startsWith( "platform:") )
+    if( uri != null && uri.startsWith( "platform:") ) //$NON-NLS-1$
     {
       // The platform has been specified so keep it as is.
       newURI = uri;
     }
-    else if( uri == null || uri.indexOf( ":") != -1 )
+    else if( uri == null || uri.indexOf( ":") != -1 ) //$NON-NLS-1$
     {
       // The platform uri is not allowed to contain some other protocol. 
       throw new URIException(
-          new Status( IStatus.ERROR, "id", 0,
+          new Status( IStatus.ERROR, "id", 0, //$NON-NLS-1$
               NLS.bind( Messages.MSG_INVALID_PLATFORM_URL,uri), null ) );
               
     }
-    else if( uri.startsWith( "/") )
+    else if( uri.startsWith( "/") ) //$NON-NLS-1$
     {
       // The platform scheme has not been specified so we will add it.
-      newURI = "platform:/resource" + uri;
+      newURI = "platform:/resource" + uri; //$NON-NLS-1$
     }
     
     if( newURI == null )
     {
       return new RelativeURI( uri );
     }
-    else
-    {
-      return new EclipseURI( newURI, environment_ );
-    }
+    return new EclipseURI( newURI, environment_ );
   }
 
   /**
@@ -127,7 +125,7 @@
     {
       IURIScheme scheme = uri.getURIScheme();
       
-      if( scheme.toString().equals( "relative") ) return scheme.validate( uri );
+      if( scheme.toString().equals( "relative") ) return scheme.validate( uri ); //$NON-NLS-1$
       
       getPathFromPlatformURI( uri.toString() );
       status = Status.OK_STATUS;
@@ -156,21 +154,15 @@
     catch( MalformedURLException exc )
     { 
       throw new URIException(
-          new Status( IStatus.ERROR, "id", 0,
+          new Status( IStatus.ERROR, "id", 0, //$NON-NLS-1$
               NLS.bind( Messages.MSG_INVALID_PLATFORM_URL, uri ), exc ) );
     }
     
-    if( url == null )
-    {
-      throw new URIException(
-          new Status( IStatus.ERROR, "id", 0,
-              NLS.bind( Messages.MSG_INVALID_PLATFORM_URL, uri ), null ) );
-    }
-    if( url.getProtocol().equals("platform") ) 
+    if( url.getProtocol().equals("platform") )  //$NON-NLS-1$
     {
       String resourceURL = url.getFile();
       
-      if (resourceURL.startsWith("/resource")) 
+      if (resourceURL.startsWith("/resource"))  //$NON-NLS-1$
       {
         resourceFile = resourceURL.substring(10);   // omit the "/resource" portion
       }
@@ -178,7 +170,7 @@
     else 
     {
       throw new URIException(
-          new Status( IStatus.ERROR, "id", 0,
+          new Status( IStatus.ERROR, "id", 0, //$NON-NLS-1$
                       NLS.bind( Messages.MSG_INVALID_PLATFORM_URL,url.getFile() ), null ) );
     }
     
@@ -192,6 +184,6 @@
    */
   public String getURLFromPath( IPath absolutePath )
   {
-    return "platform:/resource" + absolutePath;
+    return "platform:/resource" + absolutePath; //$NON-NLS-1$
   }
 }
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseURI.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseURI.java
index d062a53..320f9b1 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseURI.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseURI.java
@@ -50,7 +50,8 @@
     file_         = getFile();
   }
   
-  public String toString()
+  @Override
+public String toString()
   {
     return uri_;
   }
@@ -58,7 +59,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#erase()
    */
-  public void erase() throws URIException
+  @Override
+public void erase() throws URIException
   {
     try 
     {
@@ -81,14 +83,15 @@
     }
     catch( Exception exc ) 
     {      
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
+      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); //$NON-NLS-1$
     }
   }
 
   /**
    * @see org.eclipse.env.uri.IURI#getInputStream()
    */
-  public InputStream getInputStream() throws URIException
+  @Override
+public InputStream getInputStream() throws URIException
   {
     try 
     {
@@ -104,7 +107,7 @@
     }
     catch( Throwable exc ) 
     {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
+      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); //$NON-NLS-1$
     }
     
     return null;
@@ -113,7 +116,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#getOutputStream()
    */
-  public OutputStream getOutputStream() throws URIException
+  @Override
+public OutputStream getOutputStream() throws URIException
   {
     // Ensure that the parent folder exists.
     IURI parent = parent();
@@ -129,7 +133,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#getURIScheme()
    */
-  public IURIScheme getURIScheme()
+  @Override
+public IURIScheme getURIScheme()
   {
     return scheme_;
   }
@@ -137,7 +142,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#isLeaf()
    */
-  public boolean isLeaf()
+  @Override
+public boolean isLeaf()
   {
     boolean result = false;
   
@@ -164,7 +170,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#isPresent()
    */
-  public boolean isPresent()
+  @Override
+public boolean isPresent()
   {
     boolean result = false;
     
@@ -189,7 +196,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#isReadable()
    */
-  public boolean isReadable()
+  @Override
+public boolean isReadable()
   {
     boolean result = false;
     
@@ -214,7 +222,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#isRelative()
    */
-  public boolean isRelative()
+  @Override
+public boolean isRelative()
   { 
     return false;
   }
@@ -222,7 +231,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#isWritable()
    */
-  public boolean isWritable()
+  @Override
+public boolean isWritable()
   {
     boolean result = false;
     
@@ -249,7 +259,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#list()
    */
-  public IURI[] list() throws URIException
+  @Override
+public IURI[] list() throws URIException
   {
     IResource resource    = getResource();
     IURI[]     uriChildren = new IURI[0];
@@ -281,7 +292,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#list(org.eclipse.env.uri.IURIFilter)
    */
-  public IURI[] list(IURIFilter uriFilter) throws URIException
+  @Override
+public IURI[] list(IURIFilter uriFilter) throws URIException
   {
     IResource resource = getResource();
     IURI[]     result   = new IURI[0];
@@ -319,7 +331,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#rename(org.eclipse.env.uri.IURI)
    */
-  public void rename(IURI newURI ) throws URIException
+  @Override
+public void rename(IURI newURI ) throws URIException
   {
     if( newURI == null || !(newURI instanceof EclipseURI) ) return;
     
@@ -337,14 +350,15 @@
     catch( CoreException exc )
     {
       exc.printStackTrace();
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ) );
+      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ) ); //$NON-NLS-1$
     }
   }
 
   /**
    * @see org.eclipse.env.uri.IURI#touchFolder()
    */
-  public void touchFolder() throws URIException
+  @Override
+public void touchFolder() throws URIException
   {
     IResource resource = getResource();
     
@@ -359,7 +373,7 @@
           if( folder.members().length > 0 )
           {
             throw new URIException( 
-                new Status( IStatus.ERROR, "id", 0, 
+                new Status( IStatus.ERROR, "id", 0,  //$NON-NLS-1$
                     NLS.bind( Messages.MSG_ERROR_FOLDER_HAS_CHILDREN, folder.toString() ), null ),
                 this );
 								
@@ -367,7 +381,7 @@
         }
         catch( CoreException exc )
         {        
-          throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
+          throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); //$NON-NLS-1$
         }
       }
       else
@@ -386,7 +400,7 @@
       }
       catch( CoreException exc )
       {
-        throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
+        throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); //$NON-NLS-1$
       }
     }
   }
@@ -394,7 +408,8 @@
   /**
    * @see org.eclipse.env.uri.IURI#touchLeaf()
    */
-  public void touchLeaf() throws URIException
+  @Override
+public void touchLeaf() throws URIException
   {
     IResource resource = getResource();
     
@@ -420,7 +435,7 @@
       }
       catch( IOException exc )
       {
-        throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
+        throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); //$NON-NLS-1$
       }
     }
 
@@ -453,7 +468,8 @@
    * will fail and throw an exception. It should be used only
    * in cases where URIs are known to be backed by physical files.
    */
-  public File asFile ()
+  @Override
+public File asFile ()
   {
   	return file_;
   }
@@ -461,7 +477,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.wst.common.environment.uri.IURI#isAvailableAsFile()
    */
-  public boolean isAvailableAsFile() 
+  @Override
+public boolean isAvailableAsFile() 
   {
   	return file_ != null;
   }
@@ -469,7 +486,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#asURL()
    */
-  public URL asURL() throws URIException
+  @Override
+public URL asURL() throws URIException
   {
     URL url = null;
     
@@ -479,7 +497,7 @@
     }
     catch( MalformedURLException exc )
     {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); 
+      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );  //$NON-NLS-1$
     }
     
     return url;
@@ -488,7 +506,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#isAvailableAsURL()
    */
-  public boolean isAvailableAsURL()
+  @Override
+public boolean isAvailableAsURL()
   {
     URL theURL = null;
     
@@ -505,7 +524,7 @@
 
   private File getFile()
   {
-    String platformRes = "platform:/resource";
+    String platformRes = "platform:/resource"; //$NON-NLS-1$
     File   result      = null;
     
     if (uri_.startsWith(platformRes))
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceOutputStream.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceOutputStream.java
index 8cfebb5..4f350f7 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceOutputStream.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceOutputStream.java
@@ -67,7 +67,8 @@
   * and a file of the same name already exists, then an IOException will
   * be thrown either now or during an earlier {@link #write write}.
   */
-  public void close ()
+  @Override
+public void close ()
   throws IOException
   {
     if (!fOpen) return;
@@ -93,7 +94,8 @@
   * same name already exists, then an IOException may be thrown at
   * this point.
   */
-  public void flush ()
+  @Override
+public void flush ()
   throws IOException
   {
     fByteArrayOutputStream.flush();
@@ -107,7 +109,8 @@
   * same name already exists, then an IOException may be thrown at
   * this point.
   */
-  public void write ( byte[] b )
+  @Override
+public void write ( byte[] b )
   throws IOException
   {
     fByteArrayOutputStream.write(b);
@@ -124,7 +127,8 @@
   * same name already exists, then an IOException may be thrown at
   * this point.
   */
-  public void write ( byte[] b, int off, int len )
+  @Override
+public void write ( byte[] b, int off, int len )
   {
     fByteArrayOutputStream.write(b,off,len);
   }
@@ -137,7 +141,8 @@
   * same name already exists, then an IOException may be thrown at
   * this point.
   */
-  public void write ( int b )
+  @Override
+public void write ( int b )
   {
     fByteArrayOutputStream.write(b);
   }
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceUtils.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceUtils.java
index 240f43f..abb6b21 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceUtils.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceUtils.java
@@ -7,6 +7,9 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20080711   240408 rkklai@ca.ibm.com - Raymond Lai, support case-insensitive platform makeFile when a file with variant case exists
  *******************************************************************************/
 package org.eclipse.wst.common.internal.environment.eclipse;
 
@@ -15,11 +18,13 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.Vector;
+
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceStatus;
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -31,8 +36,8 @@
 import org.eclipse.core.runtime.Status;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.common.environment.Choice;
-import org.eclipse.wst.common.environment.StatusException;
 import org.eclipse.wst.common.environment.IStatusHandler;
+import org.eclipse.wst.common.environment.StatusException;
 
 
 
@@ -273,8 +278,7 @@
        folder.delete(true, true, null);
        return true;
      }
-     else
-       return false;
+     return false;
    }
 
   /**
@@ -303,15 +307,15 @@
   {    
     if (!absolutePath.isAbsolute())
     {
-      throw new CoreException(new Status(IStatus.ERROR, "ResourceUtils",0, NLS.bind( Messages.MSG_ERROR_PATH_NOT_ABSOLUTE, absolutePath.toString() ),null));
+      throw new CoreException(new Status(IStatus.ERROR, "ResourceUtils",0, NLS.bind( Messages.MSG_ERROR_PATH_NOT_ABSOLUTE, absolutePath.toString() ),null)); //$NON-NLS-1$
     }
     if (absolutePath.segmentCount() < 1)
     {
-      throw new CoreException(new Status(IStatus.ERROR,"ResourceUtils",0,NLS.bind( Messages.MSG_ERROR_PATH_EMPTY, absolutePath.toString() ),null));
+      throw new CoreException(new Status(IStatus.ERROR,"ResourceUtils",0,NLS.bind( Messages.MSG_ERROR_PATH_EMPTY, absolutePath.toString() ),null)); //$NON-NLS-1$
     }
     if (absolutePath.segmentCount() < 2)
     {
-      throw new CoreException(new Status(IStatus.ERROR,"ResourceUtils",0,NLS.bind( Messages.MSG_ERROR_PATH_NOT_FOLDER, absolutePath.toString() ),null));
+      throw new CoreException(new Status(IStatus.ERROR,"ResourceUtils",0,NLS.bind( Messages.MSG_ERROR_PATH_NOT_FOLDER, absolutePath.toString() ),null)); //$NON-NLS-1$
     }
     IContainer parent   = makeFolderPath(absolutePath.removeLastSegments(1), statusHandler);
     String     fileName = absolutePath.lastSegment();
@@ -443,13 +447,10 @@
     {
       return getWorkspaceRoot().getProject(absolutePath.segment(0));
     }
-    else
-    {
       IContainer parent = makeFolderPath(absolutePath.removeLastSegments(1), statusHandler );
       String folderName = absolutePath.lastSegment();
       
       return makeFolder(parent,folderName, statusHandler );
-    }
   }
   //
   // Creates a folder under a container.
@@ -478,7 +479,7 @@
     {
       throw new CoreException(
         new Status( IStatus.ERROR, 
-                    "ResourceUtils",
+                    "ResourceUtils", //$NON-NLS-1$
                     0, 
 					NLS.bind( Messages.MSG_ERROR_RESOURCE_NOT_FOLDER, parent.getFullPath().append(folderName).toString()),
 			null ) );
@@ -490,61 +491,78 @@
   // The container must already exist.
   //
  private static IFile makeFile (
-    IContainer       parent,
-    String           fileName,
-    InputStream      inputStream,
-    IStatusHandler    statusHandler )
- 
-    throws CoreException
-  {
-    IResource child  = parent.findMember(fileName);
-    
-    if( child != null )
-    {
-      if( child.getType() == IResource.FILE )
-      {        
-        //We have permission to overwrite so check if file is read-only
-        if( child.getResourceAttributes().isReadOnly() )
-        {
-          IFile[] files = new IFile[1];
-          files[0] = (IFile)child;
-          
-          IStatus status = getWorkspace().validateEdit(files,null);
-          
-          try
-          {
-            statusHandler.report( status );
-          }
-          catch( StatusException exc )
-          {
-            return null;
-          }
-        }
+		 IContainer       parent,
+		 String           fileName,
+		 InputStream      inputStream,
+		 IStatusHandler    statusHandler )
 
-        //Change the contents of the existing file.
-        IFile file = parent.getFile( new Path(fileName) );
-        file.setContents( inputStream, true, true, null );
-        
-        return file;
-      
-      }
-      else
-      {
-        throw new CoreException( 
-          new Status( IStatus.ERROR,
-                      "ResourceUtils",
-                      0, 
-				      NLS.bind( Messages.MSG_ERROR_RESOURCE_NOT_FILE, parent.getFullPath().append(fileName)),
-					  null ) );
-      }
-    }
-    else
-    {
-      //Create a new file.
-      IFile file = parent.getFile( new Path(fileName) );
-      file.create( inputStream, true, null);
-      
-      return file;
-    }
-  }
+ throws CoreException
+ {
+	 String innerFileName = fileName;
+	 IFile file = parent.getFile( new Path(innerFileName) );
+
+	 // create the file if it doesn't exist
+	 if (!file.exists()) {
+		 try {
+			 file.create( inputStream, true, null);    
+			 return file;
+		 } catch (CoreException coreException) {
+			 // this error only happens in a case-insensitive file system; so ignore the cases.
+			 if (coreException.getStatus().getCode() == IResourceStatus.CASE_VARIANT_EXISTS) {
+				 boolean foundIgnoringCase = false;
+
+				 for (IResource resource : parent.members()) {
+					 if (resource.getName().equalsIgnoreCase(innerFileName)) {
+						 // found the file
+						 foundIgnoringCase = true;
+						 innerFileName = resource.getName();
+						 file = parent.getFile( new Path(innerFileName));
+						 break;
+					 }
+				 }
+
+				 // can't find the file causing the CASE_VARIANT_EXISTS exception; throw the exception
+				 if (!foundIgnoringCase)
+					 throw coreException;
+			 } else {
+				 // throw other exceptions
+				 throw coreException;
+			 }
+		 }
+	 }
+
+	 // file exists; overwrite the existing file
+	 if( file.getType() == IResource.FILE )
+	 {        
+		 //We have permission to overwrite so check if file is read-only
+		 if( file.getResourceAttributes().isReadOnly() )
+		 {
+			 IFile[] files = new IFile[1];
+			 files[0] = file;
+
+			 IStatus status = getWorkspace().validateEdit(files,null);
+
+			 try
+			 {
+				 statusHandler.report( status );
+			 }
+			 catch( StatusException exc )
+			 {
+				 return null;
+			 }
+		 }
+
+		 //Change the contents of the existing file.
+		 file.setContents( inputStream, true, true, null );
+
+		 return file;
+
+	 }
+	 throw new CoreException( 
+			 new Status( IStatus.ERROR,
+					 "ResourceUtils", //$NON-NLS-1$
+					 0, 
+					 NLS.bind( Messages.MSG_ERROR_RESOURCE_NOT_FILE, parent.getFullPath().append(innerFileName)),
+					 null ) );
+ }
 }
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/Messages.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/Messages.java
index 4c08ea1..638a3e0 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/Messages.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/Messages.java
@@ -12,7 +12,7 @@
 
 public class Messages extends NLS
 {
-  private static final String BUNDLE_NAME = "org.eclipse.wst.common.internal.environment.eclipse.environment";
+  private static final String BUNDLE_NAME = "org.eclipse.wst.common.internal.environment.eclipse.environment"; //$NON-NLS-1$
   
   public static String MSG_NULL_ARG_SPECIFIED;
   public static String MSG_SCHEME_NOT_FOUND;
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeScheme.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeScheme.java
index bb60c0e..3fb9872 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeScheme.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeScheme.java
@@ -21,9 +21,10 @@
 public class RelativeScheme implements IURIScheme
 {
 
-  public String toString()
+  @Override
+public String toString()
   {
-    return "relative";  
+    return "relative"; //$NON-NLS-1$  
   }
   
   /* (non-Javadoc)
@@ -39,7 +40,7 @@
    */
   public boolean isValid(IURI uri)
   {
-    return !uri.toString().startsWith( "/" );
+    return !uri.toString().startsWith( "/" ); //$NON-NLS-1$
   }
 
   /* (non-Javadoc)
@@ -79,7 +80,7 @@
     }
     else
     {
-      result = new Status( IStatus.ERROR, "id", 0, "",null );      
+      result = new Status( IStatus.ERROR, "id", 0, "",null ); //$NON-NLS-1$ //$NON-NLS-2$     
     }
     
     return result;
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeURI.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeURI.java
index 59f3d36..0877405 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeURI.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeURI.java
@@ -42,12 +42,12 @@
     if( !relativeURI.isRelative()) 
      {      
       throw new URIException( 
-          new Status( IStatus.ERROR, "id", 0,
+          new Status( IStatus.ERROR, "id", 0, //$NON-NLS-1$
               NLS.bind( Messages.MSG_URI_NOT_RELATIVE, relativeURI.toString() ), null ) );
       
     }
     
-    String newURI = uri_ + "/" + relativeURI.toString();
+    String newURI = uri_ + "/" + relativeURI.toString(); //$NON-NLS-1$
     
     return getURIScheme().newURI( newURI );
   }
@@ -71,7 +71,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#toString()
    */
-  public String toString()
+  @Override
+public String toString()
   {
     return uri_;
   }
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileScheme.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileScheme.java
index 3dd4f89..cb332ba 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileScheme.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileScheme.java
@@ -24,15 +24,17 @@
 
 public class FileScheme extends RelativeScheme
 {
-  public String toString()
+  @Override
+public String toString()
   {
-    return "file";  
+    return "file"; //$NON-NLS-1$
   }
   
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URIScheme#isValid(org.eclipse.env.uri.URI)
    */
-  public boolean isValid(IURI uri)
+  @Override
+public boolean isValid(IURI uri)
   { 
     boolean result = false;
     
@@ -40,11 +42,11 @@
     
     IURIScheme scheme = uri.getURIScheme();
       
-    if( scheme.toString().equals( "relative") ) return scheme.isValid( uri );
+    if( scheme.toString().equals( "relative") ) return scheme.isValid( uri ); //$NON-NLS-1$
         
     String uriString = uri.toString();
       
-    if( uriString != null && uriString.startsWith( "file:" ) )
+    if( uriString != null && uriString.startsWith( "file:" ) ) //$NON-NLS-1$
     {
       result = true;
     }  
@@ -55,43 +57,42 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URIScheme#newURI(java.lang.String)
    */
-  public IURI newURI(String uri) throws URIException
+  @Override
+public IURI newURI(String uri) throws URIException
   {
     String newURI = null;
     
-    if( uri != null && uri.startsWith( "file:") )
+    if( uri != null && uri.startsWith( "file:") ) //$NON-NLS-1$
     {
       // The file protocol has been specified so keep it as is.
       newURI = uri;
     }
-    else if( uri == null || uri.indexOf( ":") != -1 )
+    else if( uri == null || uri.indexOf( ":") != -1 ) //$NON-NLS-1$
     {
       // The file uri is not allowed to contain some other protocol. 
       throw new URIException(
-          new Status( IStatus.ERROR, "id", 0,
+          new Status( IStatus.ERROR, "id", 0, //$NON-NLS-1$
               NLS.bind( Messages.MSG_INVALID_FILE_URL,uri), null ) );
               
     }
-    else if( uri.startsWith( "/") )
+    else if( uri.startsWith( "/") ) //$NON-NLS-1$
     {
       // The file scheme has not been specified so we will add it.
-      newURI = "file:" + uri;
+      newURI = "file:" + uri; //$NON-NLS-1$
     }
     
     if( newURI == null )
     {
       return new RelativeURI( uri );
     }
-    else
-    {
-      return new FileURI( newURI );
-    }
+    return new FileURI( newURI );
   }
 
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URIScheme#newURI(org.eclipse.env.uri.URI)
    */
-  public IURI newURI(IURI uri) throws URIException
+  @Override
+public IURI newURI(IURI uri) throws URIException
   {
     return newURI( uri == null ? null : uri.toString() );
   }
@@ -99,7 +100,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URIScheme#newURI(java.net.URL)
    */
-  public IURI newURI(URL url) throws URIException
+  @Override
+public IURI newURI(URL url) throws URIException
   {
     return newURI( url == null ? null : url.toString() );
   }
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileURI.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileURI.java
index ecc1664..65b3d04 100644
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileURI.java
+++ b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileURI.java
@@ -45,7 +45,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#asFile()
    */
-  public File asFile() 
+  @Override
+public File asFile() 
   {
     return file_;
   }
@@ -53,7 +54,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#erase()
    */
-  public void erase() throws URIException
+  @Override
+public void erase() throws URIException
   {
     deleteFile( file_ );
   }
@@ -85,7 +87,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#getInputStream()
    */
-  public InputStream getInputStream() throws URIException
+  @Override
+public InputStream getInputStream() throws URIException
   {
     FileInputStream stream = null;
     
@@ -98,7 +101,7 @@
     }
     catch( IOException exc )
     {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
+      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); //$NON-NLS-1$
     }
     
     return stream;
@@ -107,7 +110,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#getOutputStream()
    */
-  public OutputStream getOutputStream() throws URIException
+  @Override
+public OutputStream getOutputStream() throws URIException
   {
     FileOutputStream stream = null;
     
@@ -120,7 +124,7 @@
     }
     catch( IOException exc )
     {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
+      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); //$NON-NLS-1$
     }
     
     return stream;
@@ -129,7 +133,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#getURIScheme()
    */
-  public IURIScheme getURIScheme()
+  @Override
+public IURIScheme getURIScheme()
   {
     return new FileScheme();
   }
@@ -137,7 +142,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#isAvailableAsFile()
    */
-  public boolean isAvailableAsFile()
+  @Override
+public boolean isAvailableAsFile()
   {
     return file_ != null;
   }
@@ -145,7 +151,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#isAvailableAsURL()
    */
-  public boolean isAvailableAsURL()
+  @Override
+public boolean isAvailableAsURL()
   {
     return file_ != null;
   }
@@ -153,7 +160,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#asURL()
    */
-  public URL asURL() throws URIException
+  @Override
+public URL asURL() throws URIException
   {
     URL url = null;
     
@@ -163,7 +171,7 @@
     }
     catch( MalformedURLException exc )
     {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );      
+      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); //$NON-NLS-1$      
     }
     
     return url;
@@ -172,7 +180,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#isLeaf()
    */
-  public boolean isLeaf()
+  @Override
+public boolean isLeaf()
   {
     return file_.isFile();
   }
@@ -180,7 +189,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#isPresent()
    */
-  public boolean isPresent()
+  @Override
+public boolean isPresent()
   {
     return file_.exists();
   }
@@ -188,7 +198,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#isReadable()
    */
-  public boolean isReadable()
+  @Override
+public boolean isReadable()
   {
     return file_.canRead();
   }
@@ -196,7 +207,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#isWritable()
    */
-  public boolean isWritable()
+  @Override
+public boolean isWritable()
   {
     return file_.canWrite();
   }
@@ -204,7 +216,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#list()
    */
-  public IURI[] list() throws URIException
+  @Override
+public IURI[] list() throws URIException
   {
     File[] children = file_.listFiles();
     IURI[]  URIs     = new IURI[0];
@@ -217,7 +230,7 @@
     
       for( int index = 0; index < length; index++ )
       {
-        URIs[index] = new FileURI( "file:" + children[index].getAbsolutePath() );
+        URIs[index] = new FileURI( "file:" + children[index].getAbsolutePath() ); //$NON-NLS-1$
       }
     }
     
@@ -227,29 +240,32 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#list(org.eclipse.env.uri.URIFilter)
    */
-  public IURI[] list(IURIFilter uriFilter) throws URIException
+  @Override
+public IURI[] list(IURIFilter uriFilter) throws URIException
   {
     File[]   children = file_.listFiles();
     int      length   = children == null ? 0 : children.length;
     Vector   URIs     = new Vector();
     
-    for( int index = 0; index < length; index++ )
-    {
-      IURI newURI = new FileURI( "file:" + children[index].getAbsolutePath() );
-      
-      if( uriFilter.accepts( newURI) )
-      {
-        URIs.add( newURI );
-      } 
+    if(children != null){
+	    for( int index = 0; index < length; index++ )
+	    {
+	      IURI newURI = new FileURI( "file:" + children[index].getAbsolutePath() ); //$NON-NLS-1$
+	      
+	      if( uriFilter.accepts( newURI) )
+	      {
+	        URIs.add( newURI );
+	      } 
+	    }
     }
-    
     return (IURI[])URIs.toArray( new IURI[0] );
   }
 
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#rename(org.eclipse.env.uri.URI)
    */
-  public void rename(IURI newURI) throws URIException
+  @Override
+public void rename(IURI newURI) throws URIException
   {
     try
     {
@@ -259,14 +275,15 @@
     }
     catch( MalformedURLException exc )
     {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );      
+      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); //$NON-NLS-1$      
     }
   }
 
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#touchFolder()
    */
-  public void touchFolder() throws URIException
+  @Override
+public void touchFolder() throws URIException
   {
     file_.mkdirs();
   }
@@ -274,7 +291,8 @@
   /* (non-Javadoc)
    * @see org.eclipse.env.uri.URI#touchLeaf()
    */
-  public void touchLeaf() throws URIException
+  @Override
+public void touchLeaf() throws URIException
   {
     try
     {
@@ -286,11 +304,12 @@
     }
     catch( IOException exc )
     {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );      
+      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); //$NON-NLS-1$      
     }
   }
 
-  public boolean isRelative()
+  @Override
+public boolean isRelative()
   {
     return false;
   }    
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/.classpath b/plugins/org.eclipse.wst.common.frameworks.ui/.classpath
index 0ea0610..fe40552 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/.classpath
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/.classpath
@@ -2,7 +2,7 @@
 <classpath>
 	<classpathentry kind="src" path="wtp_ui/"/>
 	<classpathentry kind="src" path="property_files"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.frameworks.ui/.settings/org.eclipse.jdt.core.prefs
index 341713a..037a4e5 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/.settings/org.eclipse.jdt.core.prefs
@@ -1,62 +1,95 @@
-#Sat Mar 31 16:58:45 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=ignore
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=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.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-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=error
-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=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-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=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+#Mon Jun 08 15:35:45 EDT 2009
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error
+org.eclipse.jdt.core.compiler.problem.unusedLocal=error
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.compiler.problem.fieldHiding=error
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
+eclipse.preferences.version=1
+org.eclipse.jdt.core.incompleteClasspath=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
+org.eclipse.jdt.core.compiler.problem.deadCode=error
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeUncheckedExceptions=disabled
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=ignore
-org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.compiler.problem.autoboxing=warning
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.frameworks.ui/META-INF/MANIFEST.MF
index 5857635..00f0174 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-SymbolicName: org.eclipse.wst.common.frameworks.ui; singleton:=true
-Bundle-Version: 1.1.200.qualifier
+Bundle-Version: 1.2.100.qualifier
 Bundle-Activator: org.eclipse.wst.common.frameworks.internal.ui.WTPUIPlugin
 Bundle-Localization: plugin
 Export-Package: org.eclipse.wst.common.frameworks.internal.datamodel.ui;x-internal:=true,
@@ -16,7 +16,8 @@
  org.eclipse.ui;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.wst.common.frameworks;bundle-version="[1.1.200,2.0.0)";visibility:=reexport,
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jem.util;bundle-version="[2.0.100,3.0.0)",
- org.eclipse.wst.common.environment;bundle-version="[1.0.200,2.0.0)"
+ org.eclipse.wst.common.environment;bundle-version="[1.0.200,2.0.0)",
+ org.eclipse.wst.common.core;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.core.expressions;bundle-version="[3.4.100,4.0.0)"
 Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/about.html b/plugins/org.eclipse.wst.common.frameworks.ui/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/about.html
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/build.properties b/plugins/org.eclipse.wst.common.frameworks.ui/build.properties
index feb73fb..4d7ef95 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/build.properties
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/build.properties
@@ -16,5 +16,4 @@
                about.html
 source.. = wtp_ui/,\
                     property_files/
-src.includes = schema/,\
-               plugin.properties
+src.includes = schema/
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/plugin.xml b/plugins/org.eclipse.wst.common.frameworks.ui/plugin.xml
index f1e3ab7..5f4d1bd 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/plugin.xml
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/plugin.xml
@@ -7,10 +7,24 @@
    <extension-point id="extendableWizard" name="%Extendable_Wizard" schema="schema/extendableWizard.exsd"/>
    <extension-point id="wizardPageGroup" name="%Extendable_Wizard_Page" schema="schema/extendableWizardPage.exsd"/>
    <extension-point id="DataModelWizardExtension" name="%DataModelWizard" schema="schema/DataModelWizardExtension.exsd"/>
-
+	 	 
+	<extension-point id="MenuEnabler" 
+	 name="MenuEnabler"
+	 schema="schema/menuEnabler.exsd"/>
+	 
+   <extension point="org.eclipse.core.expressions.propertyTesters">
+    <propertyTester
+          class="org.eclipse.wst.common.frameworks.internal.ui.MenuEnablementPropertyTester"
+          id="org.eclipse.wst.common.frameworks.internal.ui.MenuEnablementPropertyTester"
+          namespace="org.eclipse.wst.common.frameworks.actions"
+          properties="show"
+          type="org.eclipse.core.resources.IResource">
+    </propertyTester>
+  </extension>
+  	 
    <extension
          id="UITester"
-         point="org.eclipse.jem.util.uiTester">
+         point="org.eclipse.wst.common.core.uiTester">
       <uiTester
             className="org.eclipse.wst.common.frameworks.internal.ui.UITesterImpl">
       </uiTester>
@@ -18,7 +32,7 @@
    <extension
          id="context.Sensitive.Class.saveHandler"
          name="Save Handler - Headless Context Class"
-         point="org.eclipse.jem.util.uiContextSensitiveClass">
+         point="org.eclipse.wst.common.core.uiContextSensitiveClass">
       <uiContextSensitiveClass
             key="saveHandler"
             context="UI"
@@ -28,7 +42,7 @@
    <extension
          id="org.eclipse.wst.common.frameworks.internal.ui.EnablementDetermination"
          name="UI Enablement Determination"
-         point="org.eclipse.jem.util.uiContextSensitiveClass">
+         point="org.eclipse.wst.common.core.uiContextSensitiveClass">
       <uiContextSensitiveClass
             key="org.eclipse.wst.common.frameworks.internal.EnablementDetermination"
             context="UI"
@@ -50,7 +64,7 @@
    </extension>
    -->
    <extension 
-       point="org.eclipse.jem.util.uiContextSensitiveClass">
+       point="org.eclipse.wst.common.core.uiContextSensitiveClass">
        <uiContextSensitiveClass
           key="ISimpleValidateEditContext"
           className="org.eclipse.wst.common.frameworks.internal.ui.SimpleValidateEditContextUI"
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/property_files/messages.properties b/plugins/org.eclipse.wst.common.frameworks.ui/property_files/messages.properties
index fbdef12..e14128d 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/property_files/messages.properties
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/property_files/messages.properties
@@ -8,6 +8,6 @@
 # Contributors:
 #     IBM Corporation - initial API and implementation
 ###############################################################################
-WizardNewProjectCreationPage_projectContentsLabel = Project contents:
-WizardNewProjectCreationPage_useDefaultLabel = Use &default
-WizardNewProjectCreationPage_locationLabel = Director&y:
\ No newline at end of file
+WizardNewProjectCreationPage_projectContentsLabel = Project location
+WizardNewProjectCreationPage_useDefaultLabel = Use &default location
+WizardNewProjectCreationPage_locationLabel = &Location:
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/property_files/wtpcommonui.properties b/plugins/org.eclipse.wst.common.frameworks.ui/property_files/wtpcommonui.properties
index dc661b8..d35ea00 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/property_files/wtpcommonui.properties
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/property_files/wtpcommonui.properties
@@ -31,7 +31,8 @@
 WizardPageExtensionManager_UI_3=Editor does not allow page insertions
 WizardPageExtensionManager_UI_4=Parent Class Not Found Error: {0} \r\n for attribute: {1} in plugin {2} \r\nPage not created
 Delete_UI_0=Delete
-Name_=Project name:
-Browse_=Browse...
+Name_=Project na&me:
+Browse_=Brow&se...
 Project_location_=Project Location:
 MULTIPLE_MODULE_PREF_TEXT=Allow Multiple modules per project
+DefDirDialogLabel_=Select the location directory.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/schema/menuEnabler.exsd b/plugins/org.eclipse.wst.common.frameworks.ui/schema/menuEnabler.exsd
new file mode 100644
index 0000000..332f105
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/schema/menuEnabler.exsd
@@ -0,0 +1,106 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.frameworks.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.frameworks.ui" id="MenuEnabler" name="MenuEnabler"/>
+      </appInfo>
+      <documentation>
+         Defines extension point for setting enablement condition for a menu item. This extension point is used in
+org.eclipse.wst.common.frameworks.internal.ui.MenuEnablementPropertyTester.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="menuenabler"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  Optional name for the extension point
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="menuenabler">
+      <complexType>
+         <attribute name="className" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The className is an implementation of interface IPropertyTester
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         3.2 M6
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         &lt;extension
+    point=&quot;org.eclipse.wst.common.frameworks.ui.MenuEnabler&quot;&gt;
+     &lt;menuenabler
+         className=&quot;org.eclipse.foo.BarPropertyTester&quot;&gt;
+     &lt;/menuenabler&gt;
+&lt;/extension&gt;
+
+The class specified in className should implement IPropertyTester interface
+      </documentation>
+   </annotation>
+
+
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2010 IBM Corporation and others.
+  All rights reserved. This program and the accompanying materials
+  are made available under the terms of the Eclipse Public License v1.0
+  which accompanies this distribution, and is available at
+  http://www.eclipse.org/legal/epl-v10.html
+ 
+  Contributors:
+      IBM Corporation - initial API and implementation
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java
index a0ed277..4f18abb 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java
@@ -546,6 +546,7 @@
 					setTextProperty(propertyName, (Text) w);
 				}
 			}) {
+				@Override
 				public void modifyText(ModifyEvent e) {
 					if (ignoreModifyEvent)
 						return;
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizard.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizard.java
index 1a6cbf3..7bdbbe0 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizard.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizard.java
@@ -19,7 +19,6 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.Wizard;
@@ -78,6 +77,7 @@
 	 * This is finalized to handle the adding of extended pages. Clients should override
 	 * doAddPages() to add their pages.
 	 */
+	@Override
 	public final void addPages() {
 		init();
 		doAddPages();
@@ -90,6 +90,7 @@
 	}
 
 	// TODO make this final
+	@Override
 	public IWizardPage getStartingPage() {
 		pageGroupManager.reset();
 		return getNextPage(null);
@@ -103,6 +104,7 @@
 	 * @link #getPreviousPage(String, String)
 	 */
 	// TODO make this final
+	@Override
 	public IWizardPage getNextPage(IWizardPage page) {
 
 		IWizardPage currentPage = pageGroupManager.getCurrentPage();
@@ -132,6 +134,7 @@
 	 * @link #getPreviousPage(String, String)
 	 */
 	// TODO make this final
+	@Override
 	public IWizardPage getPreviousPage(IWizardPage page) {
 		return page != null ? page.getPreviousPage() : null;
 	}
@@ -140,6 +143,7 @@
 		return expectedPreviousPageName;
 	}
 
+	@Override
 	public boolean canFinish() {
 		if (!super.canFinish() || !getDataModel().isValid()) {
 			return false;
@@ -177,6 +181,7 @@
 	 * 
 	 * @see org.eclipse.jface.wizard.IWizard#performFinish()
 	 */
+	@Override
 	public final boolean performFinish() {
 		try {
 			executing = true;
@@ -187,7 +192,8 @@
 
 				if (st.getSeverity() == IStatus.ERROR) {
 					WTPUIPlugin.log(st);
-					ErrorDialog.openError(getShell(), WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WTPWizard_UI_0, new Object[]{getWindowTitle()}), WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WTPWizard_UI_1, new Object[]{getWindowTitle()}), new CoreException(st), 0, false);
+					Throwable t = st.getException() == null ? new CoreException(st) : st.getException();
+					ErrorDialog.openError(getShell(), WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WTPWizard_UI_0, new Object[]{getWindowTitle()}), WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WTPWizard_UI_1, new Object[]{getWindowTitle()}), t, 0, false);
 				} else if(st.getSeverity() == IStatus.WARNING){
 					WarningDialog.openWarning(getShell(), WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WTPWizard_UI_2, new Object[]{getWindowTitle()}), st.getMessage(), st, IStatus.WARNING);
 				}
@@ -230,13 +236,14 @@
 			runnable.caught = e;
 		}
 		if (runnable.caught != null) {
-			Logger.getLogger().logError(runnable.caught);
+			WTPUIPlugin.logError(runnable.caught);
 			status[0] = new Status(IStatus.ERROR, "id", 0, runnable.caught.getMessage(), runnable.caught); //$NON-NLS-1$
 			ErrorDialog.openError(getShell(), WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WTPWizard_UI_0, new Object[]{getWindowTitle()}), WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WTPWizard_UI_1, new Object[]{getWindowTitle()}), runnable.caught, 0, false);
 		}
 		return status[0];
 	}
 
+	@Override
 	public boolean performCancel() {
 		pageGroupManager.undoAllCurrentOperations();
 
@@ -314,6 +321,7 @@
 		return dataModel;
 	}
 
+	@Override
 	public void dispose() {
 		super.dispose();
 		if (null != rootPageGroup) {
@@ -355,6 +363,7 @@
 		return new EclipseEnvironment();
 	}
 
+	@Override
 	public void addPage(IWizardPage page) {
 		rootPageGroup.addPage(page);
 	}
@@ -380,6 +389,7 @@
 		return false;
 	}
 
+	@Override
 	public boolean needsPreviousAndNextButtons() {
 		return super.needsPreviousAndNextButtons() || getPageGroupManager().hasMultiplePages();
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizardPage.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizardPage.java
index 577bf5d..626d75c 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizardPage.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizardPage.java
@@ -128,6 +128,7 @@
 		}
 	}
 
+	@Override
 	public boolean canFlipToNextPage() {
 		// TODO why is that last getNextPage() call here???
 		return isPageComplete() && ((null != wizard && wizard.getPageGroupManager().hasNextPage() || null != getNextPage()));
@@ -136,6 +137,7 @@
 	/*
 	 * (non-Javadoc) Method declared on IWizardPage.
 	 */
+	@Override
 	public void setWizard(IWizard newWizard) {
 		super.setWizard(newWizard);
 		if (newWizard instanceof DataModelWizard) {
@@ -143,10 +145,12 @@
 		}
 	}
 
+	@Override
 	public IWizardPage getPreviousPage() {
 		return previousPage;
 	}
 
+	@Override
 	public void setPreviousPage(IWizardPage page) {
 		super.setPreviousPage(page);
 		previousPage = page;
@@ -301,6 +305,7 @@
 	 * the control to the given visibility state. Subclasses may extend.
 	 */
 
+	@Override
 	public void setVisible(boolean visible) {
 		super.setVisible(visible);
 		if (visible) {
@@ -468,8 +473,12 @@
 		return model;
 	}
 
+	@Override
 	public void dispose() {
 		super.dispose();
+		if (model != null) {
+			model.removeListener(this);
+		}
 		if (synchHelper != null) {
 			synchHelper.dispose();
 			synchHelper = null;
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/PageExtensionManager.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/PageExtensionManager.java
index ff2ea8c..8042119 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/PageExtensionManager.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/PageExtensionManager.java
@@ -87,7 +87,7 @@
 		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(CommonUIPluginConstants.PLUGIN_ID, POINT_WIZARD_PAGE_GROUP);
 		IConfigurationElement[] allElements = point.getConfigurationElements();
 		for (int i = 0; i < allElements.length; i++) {
-			IConfigurationElement element = (IConfigurationElement) allElements[i];
+			IConfigurationElement element = allElements[i];
 			if (ELEMENT_WIZARD_PAGE.equals(element.getName())) {
 				result.add(new DMWizardPageElement(element));
 			}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/ErrorDialog.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/ErrorDialog.java
index 620d136..d186f96 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/ErrorDialog.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/ErrorDialog.java
@@ -67,7 +67,8 @@
   /*
    * (non-Javadoc) This should also be overwritten Method declared on Dialog.
    */
-  protected void createButtonsForButtonBar(Composite parent)
+  @Override
+protected void createButtonsForButtonBar(Composite parent)
   {
     // create OK and Details buttons
     createButton(
@@ -90,7 +91,8 @@
    * This is one of the few methods that needs to be overwritten by the
    * subclasses. The image names can be found in the Dialog class
    */
-  protected Image getDialogImage()
+  @Override
+protected Image getDialogImage()
   {
     // create image
     return PlatformUI.getWorkbench().getDisplay().getSystemImage(SWT.ICON_ERROR);
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/InfoDialog.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/InfoDialog.java
index cfc565a..af189c0 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/InfoDialog.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/InfoDialog.java
@@ -66,7 +66,8 @@
   /*
    * (non-Javadoc) This should also be overwritten Method declared on Dialog.
    */
-  protected void createButtonsForButtonBar(Composite parent)
+  @Override
+protected void createButtonsForButtonBar(Composite parent)
   {
     // create OK and Details buttons
     createButton(
@@ -89,7 +90,8 @@
    * This is one of the few methods that needs to be overwritten by the
    * subclasses. The image names can be found in the Dialog class
    */
-  protected Image getDialogImage()
+  @Override
+protected Image getDialogImage()
   {
     // create image
     return PlatformUI.getWorkbench().getDisplay().getSystemImage(SWT.ICON_INFORMATION);
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/MessageDialog.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/MessageDialog.java
index 8d48622..946aeab 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/MessageDialog.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/MessageDialog.java
@@ -145,7 +145,8 @@
    * of the error details area. Note that the Details button will only be
    * visible if the error being displayed specifies child details.
    */
-  protected void buttonPressed(int id)
+  @Override
+protected void buttonPressed(int id)
   {
     if (id == StatusDialogConstants.DETAILS_ID)
     { // was the details button pressed?
@@ -159,7 +160,8 @@
   /*
    * (non-Javadoc) Method declared in Window.
    */
-  protected void configureShell(Shell shell)
+  @Override
+protected void configureShell(Shell shell)
   {
     super.configureShell(shell);
     shell.setText(title);
@@ -167,7 +169,8 @@
   /*
    * (non-Javadoc) This should also be overwritten Method declared on Dialog.
    */
-  protected void createButtonsForButtonBar(Composite parent)
+  @Override
+protected void createButtonsForButtonBar(Composite parent)
   {
     // create OK and Details buttons
     createButton(
@@ -202,7 +205,8 @@
    * (non-Javadoc) Method declared on Dialog. Creates and returns the contents
    * of the upper part of the dialog (above the button bar).
    */
-  protected Control createDialogArea(Composite parent)
+  @Override
+protected Control createDialogArea(Composite parent)
   {
     this.parent = parent;
 
@@ -295,7 +299,8 @@
    * children, the error dialog will only be displayed if there is at least one
    * child status matching the mask.
    */
-  public int open()
+  @Override
+public int open()
   {
     if (shouldDisplay(status, displayMask))
     {
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/OptionsDialog.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/OptionsDialog.java
index 21869b2..13af9c3 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/OptionsDialog.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/OptionsDialog.java
@@ -47,7 +47,8 @@
   /*
    * (non-Javadoc) This should also be overwritten Method declared on Dialog.
    */
-  protected void createButtonsForButtonBar(Composite parent)
+  @Override
+protected void createButtonsForButtonBar(Composite parent)
   {
     // create a button for each options
     for (int i = 0; i < choices.length; i++)
@@ -65,7 +66,8 @@
     }
   }
 
-  protected void buttonPressed(int id)
+  @Override
+protected void buttonPressed(int id)
   {
     if (id == StatusDialogConstants.DETAILS_ID)
       // was the Details button pressed?
@@ -77,12 +79,14 @@
     }
   }
 
-  protected void setReturnCode(int id)
+  @Override
+protected void setReturnCode(int id)
   {
     returnCode_ = id;
   }
 
-  public int getReturnCode()
+  @Override
+public int getReturnCode()
   {
     return returnCode_;
   }
@@ -90,7 +94,8 @@
    * This is one of the few methods that needs to be overwritten by the
    * subclasses. The image names can be found in the Dialog class
    */
-  protected Image getDialogImage()
+  @Override
+protected Image getDialogImage()
   {
     // create image
     switch (status.getSeverity())
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/WarningDialog.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/WarningDialog.java
index 6c66d82..f2bda20 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/WarningDialog.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/dialog/ui/WarningDialog.java
@@ -66,7 +66,8 @@
   /*
    * (non-Javadoc) This should also be overwritten Method declared on Dialog.
    */
-  protected void createButtonsForButtonBar(Composite parent)
+  @Override
+protected void createButtonsForButtonBar(Composite parent)
   {
     // create OK, Cancel and Details buttons
     createButton(
@@ -94,7 +95,8 @@
    * This is one of the few methods that needs to be overwritten by the
    * subclasses. The image names can be found in the Dialog class
    */
-  protected Image getDialogImage()
+  @Override
+protected Image getDialogImage()
   {
     // create image
     return PlatformUI.getWorkbench().getDisplay().getSystemImage(SWT.ICON_WARNING);
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/eclipse/ui/EclipseEnvironment.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/eclipse/ui/EclipseEnvironment.java
index 26bff48..78a9120 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/eclipse/ui/EclipseEnvironment.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/eclipse/ui/EclipseEnvironment.java
@@ -56,7 +56,7 @@
 	  if( logger_ == null )
     {  
       logger_ = EnvironmentService.getEclipseLog(); 
-    };
+    }
 	
     return logger_;
   }
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageElement.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageElement.java
index 7070caf..6aeac6d 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageElement.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageElement.java
@@ -63,10 +63,11 @@
 	/**
 	 * @see Identifiable#getID()
 	 */
+	@Override
 	public String getID() {
 		String id = wizardID;
 		if (factoryElement != null) {
-			id = id + "@" + factoryElement.className;
+			id = id + "@" + factoryElement.className; //$NON-NLS-1$
 		}
 		return id; 
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageExtensionManager.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageExtensionManager.java
index 70f90ae..d147d5e 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageExtensionManager.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageExtensionManager.java
@@ -22,10 +22,10 @@
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionPoint;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.jem.util.RegistryReader;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.core.util.RegistryReader;
 import org.eclipse.wst.common.frameworks.internal.enablement.EnablementManager;
 import org.eclipse.wst.common.frameworks.internal.ui.WTPCommonUIResourceHandler;
+import org.eclipse.wst.common.frameworks.internal.ui.WTPUIPlugin;
 
 public class DMWizardPageExtensionManager {
 
@@ -84,6 +84,7 @@
 			super(CommonUIPluginConstants.PLUGIN_ID, DMWizardPageGroupElement.ELEMENT_PAGE_GROUP);
 		}
 
+		@Override
 		public boolean readElement(IConfigurationElement element) {
 			if (!DMWizardPageGroupElement.ELEMENT_PAGE_GROUP.equals(element.getName()))
 				return false;
@@ -121,8 +122,8 @@
 				return;
 			}
 			if (!parentElement.allowsExtendedPagesAfter()) {
-				Logger.getLogger().logError(WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WizardPageExtensionManager_UI_0, new Object[]{parentElement.getPageID()}));
-				Logger.getLogger().logError(WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WizardPageExtensionManager_UI_1, new Object[]{newElement.getPageID()}));
+				WTPUIPlugin.logError(WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WizardPageExtensionManager_UI_0, new Object[]{parentElement.getPageID()}));
+				WTPUIPlugin.logError(WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WizardPageExtensionManager_UI_1, new Object[]{newElement.getPageID()}));
 				return;
 			}
 			TreeSet set = (TreeSet) pageMap.get(parentElement);
@@ -197,7 +198,7 @@
 		for (Iterator iter = treeSet.iterator(); iter.hasNext();) {
 			DMWizardPageGroupElement element = (DMWizardPageGroupElement) iter.next();
 			if (alreadyVistedList.contains(element)) {
-				Logger.getLogger().logError(WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WizardPageExtensionManager_UI_2, new Object[]{element.getPageID(), DMWizardPageGroupElement.ATT_PAGE_INSERTION_ID})); 
+				WTPUIPlugin.logError(WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WizardPageExtensionManager_UI_2, new Object[]{element.getPageID(), DMWizardPageGroupElement.ATT_PAGE_INSERTION_ID})); 
 				return;
 			}
 			if (allPageElementsList.contains(element)) {
@@ -250,17 +251,15 @@
 			}
 		}
 		if (insertNotFound) {
-			Logger logger = Logger.getLogger();
-			logger.logError(WTPCommonUIResourceHandler.WizardPageExtensionManager_UI_3);
+			WTPUIPlugin.logError(WTPCommonUIResourceHandler.WizardPageExtensionManager_UI_3);
 		}
 
 	}
 
 	private void logMissingClassError() {
-		Logger logger = Logger.getLogger();
 		for (int i = 0; i < nonSyncedPageElementList.size(); i++) {
 			DMWizardPageGroupElement element = (DMWizardPageGroupElement) nonSyncedPageElementList.get(i);
-			logger.logError(WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WizardPageExtensionManager_UI_4, new Object[]{element.pageInsertionID, element.getPageID(), element.pluginID}));
+			WTPUIPlugin.logError(WTPCommonUIResourceHandler.getString(WTPCommonUIResourceHandler.WizardPageExtensionManager_UI_4, new Object[]{element.pageInsertionID, element.getPageID(), element.pluginID}));
 		}
 		nonSyncedPageElementList.clear();
 
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageFactoryElement.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageFactoryElement.java
index 4b09a8b..1f0d47e 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageFactoryElement.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageFactoryElement.java
@@ -12,10 +12,10 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.internal.ConfigurationElementWrapper;
+import org.eclipse.wst.common.frameworks.internal.ui.WTPUIPlugin;
 
 /**
  * This class provides convenient methods for accessing the semantics of the
@@ -86,8 +86,8 @@
 		try {
 			wizardPageFactory = (DMWizardPageExtensionFactory) element.createExecutableExtension(ATT_CLASS_NAME);
 		} catch (CoreException e) {
-			Logger.getLogger().logError("Error getting page factory: " + className); //$NON-NLS-1$ 
-			Logger.getLogger().logError(e);
+			WTPUIPlugin.logError("Error getting page factory: " + className); //$NON-NLS-1$ 
+			WTPUIPlugin.logError(e);
 		} finally {
 			isPageFactoryInitialized = true;
 		}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageGroupElement.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageGroupElement.java
index 8c7aa7e..e95f435 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageGroupElement.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageGroupElement.java
@@ -13,14 +13,15 @@
 
 import java.util.HashSet;
 import java.util.Set;
+
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.internal.AbstractRegistryDescriptor;
 import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage;
 import org.eclipse.wst.common.frameworks.internal.datamodel.ui.IDMPageGroupHandler;
 import org.eclipse.wst.common.frameworks.internal.datamodel.ui.IDMPageHandler;
 import org.eclipse.wst.common.frameworks.internal.enablement.IdentifiableComparator;
+import org.eclipse.wst.common.frameworks.internal.ui.WTPUIPlugin;
 
 public class DMWizardPageGroupElement extends AbstractRegistryDescriptor implements Comparable {
 	static final String ELEMENT_PAGE_GROUP = "wizardPageGroup"; //$NON-NLS-1$
@@ -81,7 +82,7 @@
   
 	private void validateSettings() {
 		if (wizardID == null || wizardPageFactoryElement == null) {
-			Logger.getLogger().logError("Incomplete page extension specification."); //$NON-NLS-1$
+			WTPUIPlugin.logError("Incomplete page extension specification."); //$NON-NLS-1$
 		}
 	}
 
@@ -264,6 +265,7 @@
 	 * 
 	 * @see org.eclipse.wst.common.frameworks.internal.AbstractRegistryDescriptor#getID()
 	 */
+	@Override
 	public String getID() {
 		return getPageID();
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageGroupFactoryElement.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageGroupFactoryElement.java
index f04ba22..12da463 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageGroupFactoryElement.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DMWizardPageGroupFactoryElement.java
@@ -20,12 +20,12 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.internal.ConfigurationElementWrapper;
 import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage;
 import org.eclipse.wst.common.frameworks.internal.datamodel.ui.IDMPageGroupHandler;
 import org.eclipse.wst.common.frameworks.internal.datamodel.ui.IDMPageHandler;
+import org.eclipse.wst.common.frameworks.internal.ui.WTPUIPlugin;
 
 /**
  * @author schacher
@@ -86,8 +86,8 @@
 		try {
 			wizardPageGroupFactory = (DMWizardExtensionFactory) element.createExecutableExtension(ATT_CLASS_NAME);
 		} catch (CoreException e) {
-			Logger.getLogger().logError("Error getting page factory: " + className); //$NON-NLS-1$ 
-			Logger.getLogger().logError(e);
+			WTPUIPlugin.logError("Error getting page factory: " + className); //$NON-NLS-1$ 
+			WTPUIPlugin.logError(e);
 		} finally {
 			isPageGroupFactoryInitialized = true;
 		}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DataModelWizardExtensionReader.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DataModelWizardExtensionReader.java
index 5ce7b73..cc5c041 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DataModelWizardExtensionReader.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/DataModelWizardExtensionReader.java
@@ -14,8 +14,7 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.RegistryReader;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.core.util.RegistryReader;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizard;
 import org.eclipse.wst.common.frameworks.internal.ui.WTPUIPlugin;
@@ -33,16 +32,17 @@
 		super(WTPUIPlugin.PLUGIN_ID, EXTENSION);
 	}
 
+	@Override
 	public boolean readElement(IConfigurationElement element) {
 		if (!element.getName().equals(ELEMENT))
 			return false;
 		String id = element.getAttribute(ATTRIBUTE_ID);
 		if (null == id || id.trim().length() == 0) {
-			Logger.getLogger().logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + ELEMENT + " is missing " + ATTRIBUTE_ID)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			WTPUIPlugin.logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + ELEMENT + " is missing " + ATTRIBUTE_ID)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		}
 		String className = element.getAttribute(ATTRIBUTE_CLASS);
 		if (null == className || className.trim().length() == 0) {
-			Logger.getLogger().logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + ELEMENT + " is missing " + ATTRIBUTE_CLASS)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			WTPUIPlugin.logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + ELEMENT + " is missing " + ATTRIBUTE_CLASS)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		}
 		addExtension(id, element);
 		return true;
@@ -50,7 +50,7 @@
 
 	private void addExtension(String id, IConfigurationElement element) {
 		if (extensions.containsKey(id)) {
-			Logger.getLogger().logError(new RuntimeException("Duplicate " + ELEMENT + " " + ATTRIBUTE_ID + " " + id)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			WTPUIPlugin.logError(new RuntimeException("Duplicate " + ELEMENT + " " + ATTRIBUTE_ID + " " + id)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		}
 		extensions.put(id, element);
 	}
@@ -75,8 +75,7 @@
 			wizard = (DataModelWizard) element.createExecutableExtension(ATTRIBUTE_CLASS);
 			wizard.setDataModel(dataModel);
 		} catch (CoreException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
+			WTPUIPlugin.logError(e);
 		}
 
 		return wizard;
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/ExtensibleViewRegistry.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/ExtensibleViewRegistry.java
index c6aee2c..d89752a 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/ExtensibleViewRegistry.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/ExtensibleViewRegistry.java
@@ -15,13 +15,9 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.RegistryReader;
+import org.eclipse.wst.common.core.util.RegistryReader;
 import org.eclipse.wst.common.frameworks.internal.ui.WTPUIPlugin;
 
-
-/**
- * @author mdelder
- */
 public class ExtensibleViewRegistry extends RegistryReader {
 
 	private static ExtensibleViewRegistry INSTANCE = null;
@@ -62,6 +58,7 @@
 	 * 
 	 * @see org.eclipse.ui.internal.registry.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
 	 */
+	@Override
 	public boolean readElement(IConfigurationElement element) {
 		if (element.getName().equals(Elements.EXTENDED_VIEWER)) {
 			Descriptor descriptor = new Descriptor(element);
@@ -120,7 +117,7 @@
 			try {
 				factoryInstance = (IExtensibleViewFactory) this.element.createExecutableExtension(getFactoryClass());
 			} catch (CoreException e) {
-				WTPUIPlugin.getLogger().logError(e);
+				WTPUIPlugin.logError(e);
 			}
 			return factoryInstance;
 		}
@@ -167,6 +164,7 @@
 			return viewerID;
 		}
 
+		@Override
 		public String toString() {
 			if (toStringCache == null)
 				toStringCache = "ExtensibleViewRegistry.Info [viewerID=\"" + getViewerID() + "\",parentViewerID=\"" + getParentViewerID() + "\",factoryClass=" + getFactoryClass() + "\",functionGroupID=\"" + getFunctionGroupID() + "\"]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/IOperationNode.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/IOperationNode.java
index 747b5ca..79eea7b 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/IOperationNode.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/operation/extensionui/IOperationNode.java
@@ -10,17 +10,11 @@
  *******************************************************************************/
 /*
  * Created on May 5, 2004
- * 
- * TODO To change the template for this generated file go to Window -
- * Preferences - Java - Code Generation - Code and Comments
  */
 package org.eclipse.wst.common.frameworks.internal.operation.extensionui;
 
 /**
  * @author mdelder
- * 
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Generation - Code and Comments
  */
 public interface IOperationNode {
 
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/AbstractWTPUIPlugin.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/AbstractWTPUIPlugin.java
index 583f298..de7035d 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/AbstractWTPUIPlugin.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/AbstractWTPUIPlugin.java
@@ -18,14 +18,10 @@
 
 import java.util.ResourceBundle;
 
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.logger.proxyrender.DefaultPluginTraceRenderer;
-import org.eclipse.jem.util.logger.proxyrender.IMsgLogger;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 
-public abstract class AbstractWTPUIPlugin extends AbstractUIPlugin implements IMsgLogger {
-	protected static Logger logger = null;
+public abstract class AbstractWTPUIPlugin extends AbstractUIPlugin {
 	public ResourceBundle resourceBundle;
 	protected static AbstractWTPUIPlugin instance = null; 
 
@@ -37,29 +33,14 @@
 		instance = this;
 	}
 
-	public Logger getMsgLogger() {
-		if (logger == null) {
-			logger = Logger.getLogger(getPluginID());
-			setRenderer(logger);
-		}
-		return logger;
-	}
-
 	public abstract String getPluginID();
 
-	/**
-	 * @param aLogger
-	 */
-	protected void setRenderer(Logger aLogger) {
-		new DefaultPluginTraceRenderer(aLogger);
-	}
-	
-
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see org.eclipse.core.runtime.Plugin#startup()
 	 */
+	@Override
 	public void start(BundleContext context) throws Exception  {
 		super.start(context);
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/DisplayUtility.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/DisplayUtility.java
index 647f58e..daca40e 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/DisplayUtility.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/DisplayUtility.java
@@ -10,9 +10,6 @@
  *******************************************************************************/
 /*
  * Created on Apr 19, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Generation - Code and Comments
  */
 package org.eclipse.wst.common.frameworks.internal.ui;
 
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/ErrorDialog.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/ErrorDialog.java
index 6c24426..dfa54d1 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/ErrorDialog.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/ErrorDialog.java
@@ -43,7 +43,7 @@
 	private Throwable detail;
 	private int detailButtonID = -1;
 	private Text text;
-	private String message;
+	private String message2;
 	//Workaround. SWT does not seem to set the default button if
 	//there is not control with focus. Bug: 14668
 	private int defaultButtonIndex = 0;
@@ -56,12 +56,12 @@
 		super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels, defaultIndex);
 		defaultButtonIndex = defaultIndex;
 		this.detail = detail;
-		message = dialogMessage;
-		setShellStyle(getShellStyle() | SWT.APPLICATION_MODAL | SWT.RESIZE);
+		message2 = dialogMessage;
 	}
 
 	//Workaround. SWT does not seem to set rigth the default button if
 	//there is not control with focus. Bug: 14668
+	@Override
 	public int open() {
 		create();
 		Button b = getButton(defaultButtonIndex);
@@ -80,6 +80,7 @@
 	/*
 	 * (non-Javadoc) Method declared on Dialog.
 	 */
+	@Override
 	protected void buttonPressed(int buttonId) {
 		if (buttonId == detailButtonID) {
 			toggleDetailsArea();
@@ -157,6 +158,7 @@
 		return dialog.open() == 0;
 	}
 
+	@Override
 	protected Control createDialogArea(Composite parent) {
 		// create a composite with standard margins and spacing
 		Composite composite = new Composite(parent, SWT.NONE);
@@ -178,9 +180,9 @@
 			label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER | GridData.VERTICAL_ALIGN_BEGINNING));
 		}
 		// create message
-		if (message != null) {
+		if (message2 != null) {
 			Label label = new Label(composite, SWT.WRAP);
-			label.setText(message);
+			label.setText(message2);
 			GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER);
 			data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
 			label.setLayoutData(data);
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/ListMessageDialog.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/ListMessageDialog.java
index aed38af..4c11cad 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/ListMessageDialog.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/ListMessageDialog.java
@@ -10,9 +10,6 @@
  *******************************************************************************/
 /*
  * Created on Aug 5, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Generation - Code and Comments
  */
 package org.eclipse.wst.common.frameworks.internal.ui;
 
@@ -28,9 +25,6 @@
 
 /**
  * @author dfholt
- * 
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Generation - Code and Comments
  */
 public class ListMessageDialog extends MessageDialog {
 	protected String[] listItems;
@@ -93,6 +87,7 @@
 	 *            parent composite to contain the custom area
 	 * @return the custom area control, or <code>null</code>
 	 */
+	@Override
 	protected Control createCustomArea(Composite parent) {
 
 		Composite composite = new Composite(parent, 0);
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/MenuEnablementPropertyTester.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/MenuEnablementPropertyTester.java
new file mode 100644
index 0000000..dc1afbf
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/MenuEnablementPropertyTester.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+ 
+package org.eclipse.wst.common.frameworks.internal.ui;
+
+import java.util.List;
+
+import org.eclipse.core.expressions.IPropertyTester;
+import org.eclipse.core.expressions.PropertyTester;
+
+public class MenuEnablementPropertyTester extends PropertyTester{
+
+	static private List<MenuEnablerExtension>  list = MenuEnablerExtensionReader.getInstance().getMenuEnabler();	
+	public boolean test(Object receiver, String property, Object[] args,
+			Object expectedValue) {
+
+		if( list != null && list.size() > 0 ){
+			MenuEnablerExtension menuEnablerExtension = list.get( 0 );
+			IPropertyTester tester =  menuEnablerExtension.getInstance();
+			if( tester != null ){
+				return tester.test( receiver, property, args, expectedValue );
+			}
+			return true;
+		}
+		return true;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/MenuEnablerExtension.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/MenuEnablerExtension.java
new file mode 100644
index 0000000..2c1dbbd
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/MenuEnablerExtension.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.common.frameworks.internal.ui;
+
+import org.eclipse.core.expressions.IPropertyTester;
+import org.eclipse.core.runtime.IConfigurationElement;
+
+
+public class MenuEnablerExtension {
+
+	public static final String ATT_ID = "id"; //$NON-NLS-1$
+	public static final String MENU_ENABLER_EXTENSION = "menuenabler"; //$NON-NLS-1$
+	
+	private String id = null;
+	private IConfigurationElement element;
+	//private IMenuEnabler instance;
+	private IPropertyTester instance;
+	private boolean errorCondition = false;
+	
+	public MenuEnablerExtension(){
+		super();
+	}
+	
+	private void init() {
+		id = element.getAttribute(ATT_ID);
+	}
+
+	/**
+	 * @return Returns the id.
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * @param id
+	 *            The id to set.
+	 */
+	public void setId(String id) {
+		this.id = id;
+	}
+	
+	public MenuEnablerExtension(IConfigurationElement element) {
+		this.element = element;
+		init();
+	}
+	
+	public IPropertyTester getInstance() {
+		try {
+			if (instance == null && !errorCondition)
+				instance = (IPropertyTester) element.createExecutableExtension("className"); //$NON-NLS-1$
+		} catch (Throwable e) {
+			errorCondition = true;
+		}
+		return instance;
+	}	
+}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/MenuEnablerExtensionReader.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/MenuEnablerExtensionReader.java
new file mode 100644
index 0000000..684b964
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/MenuEnablerExtensionReader.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.common.frameworks.internal.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.wst.common.core.util.RegistryReader;
+
+
+
+public class MenuEnablerExtensionReader extends RegistryReader {
+
+	private static MenuEnablerExtensionReader instance = null;
+	private List<MenuEnablerExtension> pageExtenders = null;
+	
+	public MenuEnablerExtensionReader(){
+		super("org.eclipse.wst.common.frameworks.ui", "MenuEnabler"); //$NON-NLS-1$ //$NON-NLS-2$ 
+	}
+	
+
+	public static MenuEnablerExtensionReader getInstance() {
+		if (instance == null) {
+			instance = new MenuEnablerExtensionReader();
+			instance.readRegistry();
+		}
+		return instance;
+	}
+	
+	@Override
+	public boolean readElement(IConfigurationElement element) {
+		if (MenuEnablerExtension.MENU_ENABLER_EXTENSION.equals(element.getName())) {
+			addExtension(element);
+			return true;
+		}
+		return false;
+	}
+	
+	protected void addExtension(IConfigurationElement newExtension) {
+		getMenuEnabler().add(new MenuEnablerExtension(newExtension));
+	}
+	
+	public List<MenuEnablerExtension> getMenuEnabler() {
+		if (pageExtenders == null)
+			pageExtenders = new ArrayList<MenuEnablerExtension>();
+		return pageExtenders;
+	}	
+
+}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/NewProjectGroup.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/NewProjectGroup.java
index 6bb33f6..15067f1 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/NewProjectGroup.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/NewProjectGroup.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -13,6 +13,7 @@
 import java.io.File;
 
 import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -44,7 +45,7 @@
 	// default values
 	private String defProjectNameLabel = WTPCommonUIResourceHandler.Name_;
 	private String defBrowseButtonLabel = WTPCommonUIResourceHandler.Browse_;
-	private static final String defDirDialogLabel = "Directory"; //$NON-NLS-1$
+	private String defDirDialogLabel = WTPCommonUIResourceHandler.DefDirDialogLabel_;
 
 	private DataModelSynchHelper synchHelper;
 
@@ -105,14 +106,11 @@
 		projectGroup.setText(InternalCommonWorkbenchMessages.WizardNewProjectCreationPage_projectContentsLabel);
 
 		final Button useDefaultsButton = new Button(projectGroup, SWT.CHECK | SWT.RIGHT);
+		GridDataFactory.defaultsFor(useDefaultsButton).span(3,1).applyTo(useDefaultsButton);
 		useDefaultsButton.setText(InternalCommonWorkbenchMessages.WizardNewProjectCreationPage_useDefaultLabel);
 		useDefaultsButton.setFont(font);
 		synchHelper.synchCheckbox(useDefaultsButton, USE_DEFAULT_LOCATION, null);
 
-		GridData buttonData = new GridData();
-		buttonData.horizontalSpan = 3;
-		useDefaultsButton.setLayoutData(buttonData);
-
 		createUserSpecifiedProjectLocationGroup(projectGroup);
 	}
 
@@ -132,9 +130,11 @@
 
 		// browse button
 		browseButton = new Button(projectGroup, SWT.PUSH);
+		GridDataFactory.defaultsFor(browseButton).applyTo(browseButton);
 		browseButton.setFont(font);
 		browseButton.setText(defBrowseButtonLabel);
 		browseButton.addSelectionListener(new SelectionAdapter() {
+			@Override
 			public void widgetSelected(SelectionEvent event) {
 				handleLocationBrowseButtonPressed();
 			}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/OverlayIcon.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/OverlayIcon.java
index 8ff7b0a..f623ed4 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/OverlayIcon.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/OverlayIcon.java
@@ -68,6 +68,7 @@
 		}
 	}
 
+	@Override
 	protected void drawCompositeImage(int width, int height) {
 		ImageData bg = fBase.getImageData();
 		drawImage(bg, 0, 0);
@@ -115,6 +116,7 @@
 		}
 	}
 
+	@Override
 	protected Point getSize() {
 		return fSize;
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/PageGroupManager.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/PageGroupManager.java
index 9917589..c3fd902 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/PageGroupManager.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/PageGroupManager.java
@@ -24,7 +24,6 @@
 import org.eclipse.core.runtime.IExtensionPoint;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.internal.datamodel.IDataModelPausibleOperation;
@@ -117,12 +116,12 @@
 		try {
 			pageFound = findNextPage(true);
 		} catch (Exception exc) {
-			Logger.getLogger().logError(exc);
+			WTPUIPlugin.logError(exc);
 			if (rootOperation != null) {
 				try {
 					rootOperation.rollBack(null, null);
 				} catch (ExecutionException e) {
-					Logger.getLogger().logError(e);
+					WTPUIPlugin.logError(e);
 				}
 			}
 			pageFound = false;
@@ -155,7 +154,7 @@
 					try {
 						rootOperation.rollBack(null, null);
 					} catch (ExecutionException e) {
-						Logger.getLogger().logError(e);
+						WTPUIPlugin.logError(e);
 					}
 				}
 			}
@@ -229,7 +228,7 @@
 		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(CommonUIPluginConstants.PLUGIN_ID, ELEMENT_PAGE_GROUP);
 		IConfigurationElement[] allElements = point.getConfigurationElements();
 		for (int i = 0; i < allElements.length; i++) {
-			IConfigurationElement element = (IConfigurationElement) allElements[i];
+			IConfigurationElement element = allElements[i];
 			if (ELEMENT_PAGE_GROUP.equals(element.getName())) {
 				result.add(element);
 			}
@@ -274,12 +273,14 @@
 					try {
 						status = rootOperation.resume(null, null);
 					} catch (ExecutionException e) {
-						Logger.getLogger().logError(e);
+						WTPUIPlugin.logError(e);
 					}
 					nextStackEntry.ranOperations = true;
-
-					if (status.getSeverity() == IStatus.ERROR) {
-						// TODO need a better error feedback mechanism here.
+					
+					// TODO need a better error feedback mechanism here.
+					if(status == null){
+						throw new IllegalArgumentException();
+					} else if (status.getSeverity() == IStatus.ERROR) {
 						throw new IllegalArgumentException(status.getMessage());
 					}
 				}
@@ -409,7 +410,7 @@
 				try {
 					newPageId = pageGroupEntry.getPageHandler().getNextPage(pageId, expectedId);
 				} catch (Exception exc) {
-					Logger.getLogger().logError(exc);
+					WTPUIPlugin.logError(exc);
 				}
 
 				if (newPageId != null && newPageId.equals(IDMPageHandler.SKIP_PAGE) && pageIndex >= 0 && pageIndex < pages.size() - 2) {
@@ -430,7 +431,7 @@
 			try {
 				nextGroupID = pageGroupEntry.getPageGroupHandler().getNextPageGroup(afterId, groupIDList);
 			} catch (Exception exc) {
-				Logger.getLogger().logError(exc);
+				WTPUIPlugin.logError(exc);
 			}
 
 			if (nextGroupID != null) {
@@ -497,19 +498,12 @@
 			return pageGroup.getPages(dataModel);
 		}
 
-		public PageGroupEntry(PageGroupEntry originalEntry) {
-			pageGroup = originalEntry.pageGroup;
-			groupsThatFollow = originalEntry.groupsThatFollow;
-			pageHandler = originalEntry.pageHandler;
-			pageGroupHandler = originalEntry.pageGroupHandler;
-		}
-
 		private void init() {
 			try {
 				pageHandler = pageGroup.getPageHandler(dataModel);
 				pageGroupHandler = pageGroup.getPageGroupHandler(dataModel);
 			} catch (Exception exc) {
-				Logger.getLogger().logError(exc);
+				WTPUIPlugin.logError(exc);
 			}
 
 			if (pageHandler == null)
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/SimplePageGroupHandler.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/SimplePageGroupHandler.java
index c68ee57..22ad059 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/SimplePageGroupHandler.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/SimplePageGroupHandler.java
@@ -26,10 +26,7 @@
 				// array if there is one.
 				if (index + 1 < pageGroupIDs.length) {
 					result = pageGroupIDs[index + 1];
-				} else {
-					result = null;
 				}
-
 				break;
 			}
 		}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/SimpleValidateEditContextUI.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/SimpleValidateEditContextUI.java
index e9bb587..be99af0 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/SimpleValidateEditContextUI.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/SimpleValidateEditContextUI.java
@@ -14,11 +14,11 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.common.frameworks.internal.ISimpleValidateEditContext;
 import org.eclipse.wst.common.frameworks.internal.SimpleValidateEditContextHeadless;
 
-public class SimpleValidateEditContextUI extends SimpleValidateEditContextHeadless implements ISimpleValidateEditContext {
+public class SimpleValidateEditContextUI extends SimpleValidateEditContextHeadless {
 
+	@Override
 	protected IStatus validateEditImpl(final IFile[] filesToValidate) {
 		final IStatus [] status = new IStatus[1];
 		Display.getDefault().syncExec(new Runnable() {
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimedKeyListener.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimedKeyListener.java
index 7f3c7b4..7eee181 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimedKeyListener.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimedKeyListener.java
@@ -119,6 +119,7 @@
 	 * 
 	 * @see org.eclipse.wst.common.frameworks.internal.ui.util.Timer#getSource()
 	 */
+	@Override
 	protected Object getSource() {
 		return monitoringTarget;
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimedModifyListener.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimedModifyListener.java
index 98045fe..c540c4e 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimedModifyListener.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimedModifyListener.java
@@ -19,10 +19,9 @@
  */
 import java.awt.event.ActionListener;
 
-import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.widgets.Widget;
 
-public class TimedModifyListener extends TimedKeyListener implements ModifyListener {
+public class TimedModifyListener extends TimedKeyListener {
 	/**
 	 * J2EETimedModefyListener constructor comment.
 	 * 
@@ -48,6 +47,7 @@
 	/*
 	 * Re/Start the timer
 	 */
+	@Override
 	public void modifyText(org.eclipse.swt.events.ModifyEvent e) {
 		monitoringTarget = (Widget) e.getSource();
 		restart();
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimerQueue.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimerQueue.java
index 62442f4..a86a0d8 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimerQueue.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/TimerQueue.java
@@ -209,6 +209,7 @@
 		notify();
 	}
 
+	@Override
 	public synchronized String toString() {
 		StringBuffer buf;
 		Timer nextTimer;
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementIdentifier.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementIdentifier.java
index 8c7e54e..1d999f6 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementIdentifier.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementIdentifier.java
@@ -69,12 +69,12 @@
 	 * 
 	 * @see org.eclispe.wst.common.frameworks.internal.enablement.EnablementIdentifier#getNewEnabled()
 	 */
+	@Override
 	protected boolean getNewEnabled() {
 		IIdentifier identifier = getActivityIdentifier();
 		if (identifier != null)
 			return identifier.isEnabled() && super.getNewEnabled();
-		else
-			return false;
+		return false;
 	}
 
 	
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementManager.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementManager.java
index f427422..7a3f93b 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementManager.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementManager.java
@@ -38,8 +38,7 @@
 	protected IActivityManager getActivityManager() {
 		if (getActivitySupport() != null)
 			return getActivitySupport().getActivityManager();
-		else
-			return null;
+		return null;
 	}
 
 	/**
@@ -67,6 +66,7 @@
 	 * @see org.eclipse.wst.common.frameworks.internal.enablement.EnablementManager#createIdentifier(java.lang.String,
 	 *      org.eclipse.core.resources.IProject)
 	 */
+	@Override
 	protected EnablementIdentifier createIdentifier(String identifierId, IProject project) {
 		return new UIEnablementIdentifier(identifierId, project);
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIOperationHandler.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIOperationHandler.java
index 53ccd53..34206c9 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIOperationHandler.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIOperationHandler.java
@@ -10,9 +10,6 @@
  *******************************************************************************/
 /*
  * Created on Aug 5, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Generation - Code and Comments
  */
 package org.eclipse.wst.common.frameworks.internal.ui;
 
@@ -24,9 +21,6 @@
 
 /**
  * @author dfholt
- * 
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Generation - Code and Comments
  */
 public class UIOperationHandler implements IOperationHandler {
 	protected Shell parentShell;
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UITesterImpl.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UITesterImpl.java
index db7ba7a..c82a6cc 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UITesterImpl.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UITesterImpl.java
@@ -8,24 +8,11 @@
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*
- * Created on Oct 27, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
 package org.eclipse.wst.common.frameworks.internal.ui;
 
-import org.eclipse.jem.util.UITester;
 import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.common.core.util.UITester;
 
-
-/**
- * @author schacher
- * 
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
 public class UITesterImpl implements UITester {
 
 	/**
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPActivityBridgeHelperImpl.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPActivityBridgeHelperImpl.java
index a8440eb..414c97f 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPActivityBridgeHelperImpl.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPActivityBridgeHelperImpl.java
@@ -17,6 +17,7 @@
 import java.util.HashSet;
 import java.util.Set;
 
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IPluginContribution;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.activities.IActivityManager;
@@ -54,7 +55,7 @@
 			newEnabledActivities.remove(activityID);
 		}
 		if (null != newEnabledActivities) {
-			workbenchActivitySupport.setEnabledActivityIds(newEnabledActivities);
+			setEnabledActivityIds(newEnabledActivities);
 		}
 	}
 
@@ -63,7 +64,17 @@
 	}
 
 	public void setEnabledActivityIds(Set activityIDs) {
-		workbenchActivitySupport.setEnabledActivityIds(activityIDs);
+		Display display = PlatformUI.getWorkbench().getDisplay();
+		if (display.getThread() == Thread.currentThread()) {
+			workbenchActivitySupport.setEnabledActivityIds(activityIDs);
+		} else {
+			final Set newActivityIDs = activityIDs; 
+			display.asyncExec(new Runnable() {
+				public void run() {
+					workbenchActivitySupport.setEnabledActivityIds(newActivityIDs);
+				}
+			});
+		}
 	}
 
 	public Set getActivityIDsFromContribution(final String localID, final String pluginID) {
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPCommonUIResourceHandler.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPCommonUIResourceHandler.java
index 3805719..171513c 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPCommonUIResourceHandler.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPCommonUIResourceHandler.java
@@ -10,9 +10,6 @@
  *******************************************************************************/
 /*
  * Created on May 23, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
  */
 package org.eclipse.wst.common.frameworks.internal.ui;
 
@@ -20,9 +17,6 @@
 
 /**
  * @author vijayb
- * 
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Style - Code Templates
  */
 public class WTPCommonUIResourceHandler extends NLS {
 	private static final String BUNDLE_NAME = "wtpcommonui";//$NON-NLS-1$
@@ -58,6 +52,7 @@
 	public static String WizardPageExtensionManager_UI_1;
 	public static String WizardPageExtensionManager_UI_0;
 	public static String Delete_UI_0;
+	public static String DefDirDialogLabel_;
 
 	static {
 		NLS.initializeMessages(BUNDLE_NAME, WTPCommonUIResourceHandler.class);
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPGenericActionIds.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPGenericActionIds.java
index faaa453..dc1b8e4 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPGenericActionIds.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPGenericActionIds.java
@@ -10,17 +10,11 @@
  *******************************************************************************/
 /*
  * Created on Jun 16, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
  */
 package org.eclipse.wst.common.frameworks.internal.ui;
 
 /**
  * @author mdelder
- * 
- * TODO To change the template for this generated type comment go to Window - Preferences - Java -
- * Code Style - Code Templates
  */
 public interface WTPGenericActionIds {
 
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPUIPlugin.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPUIPlugin.java
index 3f27cb9..05169a1 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPUIPlugin.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WTPUIPlugin.java
@@ -18,11 +18,13 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.eclipse.wst.common.frameworks.internal.operations.IHeadlessRunnableWithProgress;
+import org.eclipse.core.runtime.Platform;
+import java.lang.Throwable;
+import org.eclipse.core.runtime.CoreException;
 
 /**
  * The main plugin class to be used in the desktop.
@@ -72,10 +74,6 @@
 		return plugin;
 	}
 
-	public static Logger getLogger() {
-		return Logger.getLogger(PLUGIN_ID);
-	}
-
 	/**
 	 * Returns the workspace instance.
 	 */
@@ -136,5 +134,25 @@
     {
         log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null ) );
     }
+
+	public static IStatus createStatus(int severity, String message, Throwable exception) {
+		return new Status(severity, PLUGIN_ID, message, exception);
+	}
+
+	public static IStatus createStatus(int severity, String message) {
+		return createStatus(severity, message, null);
+	}
+
+	public static void logError(Throwable exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, exception.getMessage(), exception));
+	}
+
+	public static void logError(CoreException exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( exception.getStatus() );
+	}
+
+	public static void logError(String message) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, message));
+	}
     
 }
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WorkspaceModifyComposedOperation.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WorkspaceModifyComposedOperation.java
index 58c8419..f47b6b2 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WorkspaceModifyComposedOperation.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/WorkspaceModifyComposedOperation.java
@@ -65,6 +65,7 @@
 		return getRunnables().add(nestedOp);
 	}
 
+	@Override
 	protected void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
 		try{
 			List runnables = getRunnables();
diff --git a/plugins/org.eclipse.wst.common.frameworks/.classpath b/plugins/org.eclipse.wst.common.frameworks/.classpath
index b9e915c..f34d912 100644
--- a/plugins/org.eclipse.wst.common.frameworks/.classpath
+++ b/plugins/org.eclipse.wst.common.frameworks/.classpath
@@ -2,7 +2,7 @@
 <classpath>
 	<classpathentry kind="src" path="src/"/>
 	<classpathentry kind="src" path="src-non_workbench/"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/plugins/org.eclipse.wst.common.frameworks/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.frameworks/.settings/org.eclipse.jdt.core.prefs
index b290b5f..037a4e5 100644
--- a/plugins/org.eclipse.wst.common.frameworks/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.wst.common.frameworks/.settings/org.eclipse.jdt.core.prefs
@@ -1,62 +1,95 @@
-#Sat Mar 24 02:07:18 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=ignore
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=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.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-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=error
-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=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-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=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+#Mon Jun 08 15:35:45 EDT 2009
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error
+org.eclipse.jdt.core.compiler.problem.unusedLocal=error
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.compiler.problem.fieldHiding=error
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
+eclipse.preferences.version=1
+org.eclipse.jdt.core.incompleteClasspath=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
+org.eclipse.jdt.core.compiler.problem.deadCode=error
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeUncheckedExceptions=disabled
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=ignore
-org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.compiler.problem.autoboxing=warning
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
diff --git a/plugins/org.eclipse.wst.common.frameworks/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.frameworks/META-INF/MANIFEST.MF
index 24494b1..72c0c39 100644
--- a/plugins/org.eclipse.wst.common.frameworks/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.frameworks/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.common.frameworks; singleton:=true
-Bundle-Version: 1.1.200.qualifier
+Bundle-Version: 1.2.101.qualifier
 Bundle-Activator: org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin
 Bundle-Vendor: %provider
 Bundle-Localization: plugin
@@ -18,8 +18,8 @@
 Require-Bundle: org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.commands;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jem.util;bundle-version="[2.0.100,3.0.0)",
  org.eclipse.wst.common.environment;bundle-version="[1.0.200,2.0.0)";visibility:=reexport,
- org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)",
+ org.eclipse.wst.common.core;bundle-version="[1.2.0,2.0.0)"
 Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.common.frameworks/about.html b/plugins/org.eclipse.wst.common.frameworks/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.frameworks/about.html
+++ b/plugins/org.eclipse.wst.common.frameworks/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.frameworks/plugin.xml b/plugins/org.eclipse.wst.common.frameworks/plugin.xml
index 0ac2055..b817e73 100644
--- a/plugins/org.eclipse.wst.common.frameworks/plugin.xml
+++ b/plugins/org.eclipse.wst.common.frameworks/plugin.xml
@@ -10,7 +10,7 @@
    <extension
          id="context.Sensitive.Class.saveHandler"
          name="Save Handler - Headless Context Class"
-         point="org.eclipse.jem.util.uiContextSensitiveClass">
+         point="org.eclipse.wst.common.core.uiContextSensitiveClass">
       <uiContextSensitiveClass
             key="saveHandler"
             context="Headless"
@@ -19,7 +19,7 @@
    </extension>
    <extension
          id="org.eclipse.wst.common.frameworks.internal.enablement"
-         point="org.eclipse.jem.util.uiContextSensitiveClass">
+         point="org.eclipse.wst.common.core.uiContextSensitiveClass">
       <uiContextSensitiveClass
             key="org.eclipse.wst.common.frameworks.internal.EnablementDetermination"
             context="Headless"
@@ -27,7 +27,7 @@
       </uiContextSensitiveClass>
    </extension>
    <extension 
-       point="org.eclipse.jem.util.uiContextSensitiveClass">
+       point="org.eclipse.wst.common.core.uiContextSensitiveClass">
        <uiContextSensitiveClass
           key="ISimpleValidateEditContext"
           className="org.eclipse.wst.common.frameworks.internal.SimpleValidateEditContextHeadless"
diff --git a/plugins/org.eclipse.wst.common.frameworks/src-non_workbench/org/eclipse/wst/common/frameworks/internal/enablement/nonui/WFTWrappedException.java b/plugins/org.eclipse.wst.common.frameworks/src-non_workbench/org/eclipse/wst/common/frameworks/internal/enablement/nonui/WFTWrappedException.java
index 9a59c94..70990f5 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src-non_workbench/org/eclipse/wst/common/frameworks/internal/enablement/nonui/WFTWrappedException.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src-non_workbench/org/eclipse/wst/common/frameworks/internal/enablement/nonui/WFTWrappedException.java
@@ -57,6 +57,7 @@
 	/**
 	 * Print out a stack trace to the system err.
 	 */
+	@Override
 	public void printStackTrace() {
 		printStackTrace(System.err);
 	}
@@ -64,6 +65,7 @@
 	/**
 	 * Prints the exception to System.err. If we have a nested exception, print its stack.
 	 */
+	@Override
 	public void printStackTrace(java.io.PrintStream s) {
 		if (getTargetException() != null) {
 			s.println(this);
@@ -79,6 +81,7 @@
 	/**
 	 * Prints the exception to System.err. If we have a nested exception, print its stack.
 	 */
+	@Override
 	public void printStackTrace(java.io.PrintWriter s) {
 		if (getTargetException() != null) {
 			s.println(this);
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/AbstractDataModelOperation.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/AbstractDataModelOperation.java
index 705b22a..00f877f 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/AbstractDataModelOperation.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/AbstractDataModelOperation.java
@@ -173,6 +173,7 @@
 	 * Default empty implementation of redo.
 	 * </p>
 	 */
+	@Override
 	public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
 		return Status.OK_STATUS;
 	}
@@ -182,6 +183,7 @@
 	 * Default empty implementation of undo.
 	 * </p>
 	 */
+	@Override
 	public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
 		return Status.OK_STATUS;
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/DataModelFactory.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/DataModelFactory.java
index 5cb0732..3682a6d 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/DataModelFactory.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/DataModelFactory.java
@@ -10,9 +10,9 @@
  *******************************************************************************/
 package org.eclipse.wst.common.frameworks.datamodel;
 
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.internal.datamodel.DataModelExtensionReader;
 import org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl;
+import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 
 /**
  * <p>
@@ -96,7 +96,7 @@
 	public static IDataModel createDataModel(Class aClass) {
 		if(aClass.isInterface()){
 				try{
-					Class clazz = (Class)aClass.getField("_provider_class").get(null);
+					Class clazz = (Class)aClass.getField("_provider_class").get(null); //$NON-NLS-1$
 					if(clazz != null){
 						IDataModelProvider provider = (IDataModelProvider)clazz.newInstance();
 						return createDataModel(provider);
@@ -104,13 +104,13 @@
 				} catch (NoSuchFieldException e) {
 					//ignore; the interface may not have defined the field and is relying on extensions.
 				} catch (IllegalArgumentException e) {
-					Logger.getLogger().logError(e);
+					WTPCommonPlugin.logError(e);
 				} catch (SecurityException e) {
-					Logger.getLogger().logError(e);
+					WTPCommonPlugin.logError(e);
 				} catch (IllegalAccessException e) {
-					Logger.getLogger().logError(e);
+					WTPCommonPlugin.logError(e);
 				} catch (InstantiationException e) {
-					Logger.getLogger().logError(e);
+					WTPCommonPlugin.logError(e);
 				}  
 		}
 		return createDataModel(aClass.getName());
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/DataModelPropertyDescriptor.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/DataModelPropertyDescriptor.java
index 2154ecc..dc757df 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/DataModelPropertyDescriptor.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/datamodel/DataModelPropertyDescriptor.java
@@ -134,6 +134,7 @@
 		return (null != str) ? str : ""; //$NON-NLS-1$
 	}
 	
+	@Override
 	public String toString(){
 		return getPropertyDescription();
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SaveHandlerHeadless.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SaveHandlerHeadless.java
index a9c07ce..2ae150f 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SaveHandlerHeadless.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SaveHandlerHeadless.java
@@ -12,8 +12,8 @@
 package org.eclipse.wst.common.frameworks.internal;
 
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.internal.enablement.nonui.IWFTWrappedException;
+import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 
 /**
  * Insert the type's description here. Creation date: (10/19/2001 11:40:59 AM)
@@ -80,7 +80,7 @@
 		if (aFile == null)
 			return false;
 		String error = WTPResourceHandler.getString("Unable_to_save_read-only_f_ERROR_", new Object[]{aFile.getFullPath()}); //$NON-NLS-1$ = "Unable to save read-only file: "
-		Logger.getLogger().logError(error);
+		WTPCommonPlugin.logError(error);
 		return false;
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SaveHandlerRegister.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SaveHandlerRegister.java
index 7dee26d..7aaef00 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SaveHandlerRegister.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SaveHandlerRegister.java
@@ -10,8 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.common.frameworks.internal;
 
-import org.eclipse.jem.util.UIContextDetermination;
-
+import org.eclipse.wst.common.core.util.UIContextDetermination;
 
 /**
  * A registry for the default ISaveHandler to use when saving edit models
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SimpleValidateEdit.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SimpleValidateEdit.java
index ec84468..f8d6acb 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SimpleValidateEdit.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/SimpleValidateEdit.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jem.util.UIContextDetermination;
+import org.eclipse.wst.common.core.util.UIContextDetermination;
 
 public class SimpleValidateEdit {
 
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WTPPlugin.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WTPPlugin.java
index e33fdf6..7f798ba 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WTPPlugin.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WTPPlugin.java
@@ -8,26 +8,16 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*
- * Created on Dec 10, 2003
- * 
- * To change the template for this generated file go to Window - Preferences - Java - Code
- * Generation - Code and Comments
- */
 package org.eclipse.wst.common.frameworks.internal;
 
 import java.util.ResourceBundle;
 
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Plugin;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.logger.proxyrender.DefaultPluginTraceRenderer;
-import org.eclipse.jem.util.logger.proxyrender.IMsgLogger;
 import org.eclipse.wst.common.frameworks.internal.enablement.nonui.WorkbenchUtil;
 import org.osgi.framework.BundleContext;
 
-public abstract class WTPPlugin extends Plugin implements IMsgLogger {
-	protected static Logger logger = null;
+public abstract class WTPPlugin extends Plugin {
 	protected static WTPPlugin instance = null; 
 	public ResourceBundle resourceBundle;
 
@@ -39,24 +29,6 @@
 		instance = this;
 	}
 
-	public Logger getMsgLogger() {
-		if (logger == null) {
-			logger = Logger.getLogger(getPluginID());
-			setRenderer(logger);
-		}
-		return logger;
-	}
-
-	/**
-	 * @param aLogger
-	 */
-	protected void setRenderer(Logger aLogger) {
-		new DefaultPluginTraceRenderer(aLogger);
-	}
-
-	public Logger getLogger() {
-		return getMsgLogger();
-	}
 	public static boolean isPlatformCaseSensitive() {
 		return Platform.OS_MACOSX.equals(Platform.getOS()) ? false : new
 				java.io.File("a").compareTo(new java.io.File("A")) != 0;  //$NON-NLS-1$//$NON-NLS-2$
@@ -69,6 +41,7 @@
 	 * 
 	 * @see org.eclipse.core.runtime.Plugin#startup()
 	 */
+	@Override
 	public void start(BundleContext context) throws Exception  {
 		super.start(context);
 		WorkbenchUtil.setWorkbenchIsRunning(true);
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WrappedException.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WrappedException.java
index cd2aba8..3c182d1 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WrappedException.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WrappedException.java
@@ -49,6 +49,7 @@
 	/**
 	 * Print out a stack trace to the system err.
 	 */
+	@Override
 	public void printStackTrace() {
 		printStackTrace(System.err);
 	}
@@ -56,6 +57,7 @@
 	/**
 	 * Prints the exception to System.err. If we have a nested exception, print its stack.
 	 */
+	@Override
 	public void printStackTrace(java.io.PrintStream s) {
 		if (getTargetException() != null) {
 			s.println(this);
@@ -69,6 +71,7 @@
 	/**
 	 * Prints the exception to System.err. If we have a nested exception, print its stack.
 	 */
+	@Override
 	public void printStackTrace(java.io.PrintWriter s) {
 		if (getTargetException() != null) {
 			s.println(this);
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WrappedRuntimeException.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WrappedRuntimeException.java
index 351de84..7e9895f 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WrappedRuntimeException.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/WrappedRuntimeException.java
@@ -77,6 +77,7 @@
 	 * <code>Throwable.getCause()</code>.
 	 * @return The nested exception held by the receiver.
 	 */
+	@Override
 	public java.lang.Throwable getCause() {
 		return getNestedException();
 	}
@@ -84,6 +85,7 @@
 	/**
 	 * Print out a stack trace to the system err.
 	 */
+	@Override
 	public void printStackTrace() {
 		printStackTrace(System.err);
 	}
@@ -91,6 +93,7 @@
 	/**
 	 * Prints the exception to System.err. If we have a nested exception, print its stack.
 	 */
+	@Override
 	public void printStackTrace(java.io.PrintStream s) {
 		if (nestedException != null) {
 			s.println(this);
@@ -104,6 +107,7 @@
 	/**
 	 * Prints the exception to System.err. If we have a nested exception, print its stack.
 	 */
+	@Override
 	public void printStackTrace(java.io.PrintWriter s) {
 		if (nestedException != null) {
 			s.println(this);
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/activities/WTPActivityBridge.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/activities/WTPActivityBridge.java
index 3538ea4..6c7fa23 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/activities/WTPActivityBridge.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/activities/WTPActivityBridge.java
@@ -24,7 +24,7 @@
 import org.eclipse.core.runtime.IExtension;
 import org.eclipse.core.runtime.IExtensionPoint;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 
 /**
  * @author jsholl
@@ -58,8 +58,8 @@
 	}
 
 	public Set getEnabledActivityIds() {
-		for (int i = 0; i < listeners.length; i++) {
-			return listeners[i].getEnabledActivityIds();
+		if(listeners.length > 0){
+			return listeners[0].getEnabledActivityIds();
 		}
 		return Collections.EMPTY_SET;
 	}
@@ -71,8 +71,8 @@
 	}
 
 	public Set getActivityIDsFromContribution(String localID, String pluginID) {
-		for (int i = 0; i < listeners.length; i++) {
-			return listeners[i].getActivityIDsFromContribution(localID, pluginID);
+		if(listeners.length > 0) {
+			return listeners[0].getActivityIDsFromContribution(localID, pluginID);
 		}
 		return Collections.EMPTY_SET;
 	}
@@ -101,6 +101,6 @@
 		StringBuffer buf = new StringBuffer();
 		buf.append("Plugin " + extension.getNamespace() + ", extension " + extension.getExtensionPointUniqueIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
 		buf.append("\n" + text); //$NON-NLS-1$
-		Logger.getLogger().logError(buf.toString());
+		WTPCommonPlugin.logError(buf.toString());
 	}
 }
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelExtensionReader.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelExtensionReader.java
index 86adbc6..5b1fe15 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelExtensionReader.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelExtensionReader.java
@@ -16,8 +16,7 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.RegistryReader;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.core.util.RegistryReader;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider;
 import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 
@@ -45,35 +44,36 @@
 		super(WTPCommonPlugin.PLUGIN_ID, EXTENSION);
 	}
 
+	@Override
 	public boolean readElement(IConfigurationElement element) {
 		if (element.getName().equals(PROVIDER_ELEMENT)) {
 			String id = element.getAttribute(ATTRIBUTE_ID);
 			if (null == id || id.trim().length() == 0) {
-				Logger.getLogger().logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + PROVIDER_ELEMENT + " is missing " + ATTRIBUTE_ID)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				WTPCommonPlugin.logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + PROVIDER_ELEMENT + " is missing " + ATTRIBUTE_ID)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			}
 			String className = element.getAttribute(ATTRIBUTE_CLASS);
 			if (null == className || className.trim().length() == 0) {
-				Logger.getLogger().logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + PROVIDER_ELEMENT + " is missing " + ATTRIBUTE_CLASS)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				WTPCommonPlugin.logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + PROVIDER_ELEMENT + " is missing " + ATTRIBUTE_CLASS)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			}
 			addProviderExtension(id, element);
 		} else if (element.getName().equals(DEFINES_TYPE_ELEMENT)) {
 			String type = element.getAttribute(ATTRIBUTE_PROVIDER_TYPE);
 			if (null == type || type.trim().length() == 0) {
-				Logger.getLogger().logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + DEFINES_TYPE_ELEMENT + " is missing " + ATTRIBUTE_PROVIDER_TYPE)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				WTPCommonPlugin.logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + DEFINES_TYPE_ELEMENT + " is missing " + ATTRIBUTE_PROVIDER_TYPE)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			}
 			String id = element.getAttribute(ATTRIBUTE_PROVIDER_ID);
 			if (null == id || id.trim().length() == 0) {
-				Logger.getLogger().logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + DEFINES_TYPE_ELEMENT + " is missing " + ATTRIBUTE_PROVIDER_ID)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				WTPCommonPlugin.logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + DEFINES_TYPE_ELEMENT + " is missing " + ATTRIBUTE_PROVIDER_ID)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			}
 			addDefinesExtension(type, id);
 		} else if (element.getName().equals(IMPLEMENTS_TYPE_ELEMENT)) {
 			String type = element.getAttribute(ATTRIBUTE_PROVIDER_TYPE);
 			if (null == type || type.trim().length() == 0) {
-				Logger.getLogger().logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + DEFINES_TYPE_ELEMENT + " is missing " + ATTRIBUTE_PROVIDER_TYPE)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				WTPCommonPlugin.logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + DEFINES_TYPE_ELEMENT + " is missing " + ATTRIBUTE_PROVIDER_TYPE)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			}
 			String id = element.getAttribute(ATTRIBUTE_PROVIDER_ID);
 			if (null == id || id.trim().length() == 0) {
-				Logger.getLogger().logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + DEFINES_TYPE_ELEMENT + " is missing " + ATTRIBUTE_PROVIDER_ID)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				WTPCommonPlugin.logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + DEFINES_TYPE_ELEMENT + " is missing " + ATTRIBUTE_PROVIDER_ID)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			}
 			addImplementsExtension(type, id);
 		}
@@ -82,14 +82,14 @@
 
 	private void addProviderExtension(String id, IConfigurationElement element) {
 		if (providerExtensions.containsKey(id)) {
-			Logger.getLogger().logError(new RuntimeException("Duplicate " + PROVIDER_ELEMENT + " " + ATTRIBUTE_ID + " " + id)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			WTPCommonPlugin.logError(new RuntimeException("Duplicate " + PROVIDER_ELEMENT + " " + ATTRIBUTE_ID + " " + id)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		}
 		providerExtensions.put(id, element);
 	}
 
 	private void addDefinesExtension(String type, String id) {
 		if (definesExtensions.containsKey(type)) {
-			Logger.getLogger().logError(new RuntimeException("Duplicate " + PROVIDER_ELEMENT + " " + ATTRIBUTE_PROVIDER_TYPE + " " + type)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			WTPCommonPlugin.logError(new RuntimeException("Duplicate " + PROVIDER_ELEMENT + " " + ATTRIBUTE_PROVIDER_TYPE + " " + type)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		}
 		definesExtensions.put(type, id);
 	}
@@ -108,7 +108,7 @@
 		readRegistryIfNecessary();
 		IConfigurationElement element = (IConfigurationElement) providerExtensions.get(id);
 		if (null == element) {
-			Logger.getLogger().log(new RuntimeException("Extension:" + EXTENSION + " Element:" + PROVIDER_ELEMENT + " not found for " + ATTRIBUTE_ID + ": " + id)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+			WTPCommonPlugin.logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + PROVIDER_ELEMENT + " not found for " + ATTRIBUTE_ID + ": " + id)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 		}
 		return element;
 	}
@@ -117,7 +117,7 @@
 		readRegistryIfNecessary();
 		String element = (String) definesExtensions.get(providerType);
 		if (null == element) {
-			Logger.getLogger().log(new RuntimeException("Extension:" + EXTENSION + " Element:" + DEFINES_TYPE_ELEMENT + " not found for " + ATTRIBUTE_PROVIDER_TYPE + ": " + providerType)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+			WTPCommonPlugin.logError(new RuntimeException("Extension:" + EXTENSION + " Element:" + DEFINES_TYPE_ELEMENT + " not found for " + ATTRIBUTE_PROVIDER_TYPE + ": " + providerType)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 		}
 		return element;
 	}
@@ -157,7 +157,7 @@
 		try {
 			provider = (IDataModelProvider) element.createExecutableExtension(ATTRIBUTE_CLASS);
 		} catch (CoreException e) {
-			Logger.getLogger().logError(e);
+			WTPCommonPlugin.logError(e);
 		}
 		return provider;
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelImpl.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelImpl.java
index 7a4dc3a..434e312 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelImpl.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelImpl.java
@@ -327,14 +327,15 @@
 		return descriptor == null ? new DataModelPropertyDescriptor(getProperty(propertyName)) : descriptor;
 	}
 
-	public void notifyPropertyChange(String propertyName, int flag) {
-		if (flag == DEFAULT_CHG) {
+	public void notifyPropertyChange(final String propertyName, final int flag) {
+		int innerFlag = flag;
+		if (innerFlag == DEFAULT_CHG) {
 			if (isPropertySet(propertyName)) {
 				return;
 			}
-			flag = VALUE_CHG;
+			innerFlag = VALUE_CHG;
 		}
-		notifyListeners(new DataModelEvent(this, propertyName, flag));
+		notifyListeners(new DataModelEvent(this, propertyName, innerFlag));
 	}
 
 	private void notifyListeners(DataModelEvent event) {
@@ -375,19 +376,19 @@
 				propName = (String) it.next();
 				propStatus = provider.validate(propName);
 				if (propStatus != null) {
-					if (status == null || status.isOK())
+					if (status == null || status.isOK()) {
 						status = propStatus;
-					else {
-						if (status.isMultiStatus())
+					} else {
+						if (status.isMultiStatus()) {
 							((MultiStatus) status).merge(propStatus);
-						else {
+						} else {
 							MultiStatus multi = new MultiStatus("org.eclipse.wst.common.frameworks.internal", 0, "", null); //$NON-NLS-1$ //$NON-NLS-2$
 							multi.merge(status);
 							multi.merge(propStatus);
 							status = multi;
 						}
 					}
-					if (stopOnFirstFailure && status != null && !status.isOK() && status.getSeverity() == IStatus.ERROR)
+					if (stopOnFirstFailure && !status.isOK() && status.getSeverity() == IStatus.ERROR)
 						return status;
 				}
 			}
@@ -445,6 +446,7 @@
 		IDataModelOperation providerOp = provider.getDefaultOperation();
 		if (null == providerOp) {
 			providerOp = new AbstractDataModelOperation(this) {
+				@Override
 				public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
 					return OK_STATUS;
 				}
@@ -457,6 +459,7 @@
 		return new DataModelPausibleOperationImpl(getRawOperation());
 	}
 
+	@Override
 	public String toString() {
 		return "IDataModel, provider=" + provider.toString(); //$NON-NLS-1$
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelPausibleOperationImpl.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelPausibleOperationImpl.java
index 63bc4b3..31d078a 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelPausibleOperationImpl.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/datamodel/DataModelPausibleOperationImpl.java
@@ -123,10 +123,12 @@
 		throw new RuntimeException();
 	}
 
+	@Override
 	public boolean canRedo() {
 		return (COMPLETE_UNDO == executionState) && super.canRedo();
 	}
 
+	@Override
 	public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
 		return cacheThreadAndContinue(monitor, info, REDO_IMPL);
 	}
@@ -160,10 +162,12 @@
 		}
 	}
 
+	@Override
 	public boolean canUndo() {
 		return (executionState == COMPLETE_EXECUTE || executionState == COMPLETE_REDO) && super.canUndo();
 	}
 
+	@Override
 	public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
 		return cacheThreadAndContinue(monitor, info, UNDO_IMPL);
 	}
@@ -198,6 +202,7 @@
 		}
 	}
 
+	@Override
 	public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
 		return cacheThreadAndContinue(monitor, info, EXECUTE_IMPL);
 	}
@@ -329,46 +334,50 @@
 	}
 
 	protected OperationStatus addStatus(OperationStatus returnStatus, IStatus status) {
-		if (returnStatus == null) {
-			returnStatus = new OperationStatus(status.getMessage(), status.getException());
-			returnStatus.setSeverity(status.getSeverity());
-			returnStatus.add(status);
+		OperationStatus innerReturnStatus = returnStatus;
+		if (innerReturnStatus == null) {
+			innerReturnStatus = new OperationStatus(status.getMessage(), status.getException());
+			innerReturnStatus.setSeverity(status.getSeverity());
+			innerReturnStatus.add(status);
 		} else {
-			returnStatus.add(status);
+			innerReturnStatus.add(status);
 		}
-		return returnStatus;
+		return innerReturnStatus;
 	}
 
 	private OperationStatus addExtendedStatus(OperationStatus returnStatus, IStatus aStatus) {
-		if (returnStatus == null) {
-			returnStatus = new OperationStatus(new IStatus[]{WTPCommonPlugin.OK_STATUS});
+		OperationStatus innerReturnStatus = returnStatus;
+		if (innerReturnStatus == null) {
+			innerReturnStatus = new OperationStatus(new IStatus[]{WTPCommonPlugin.OK_STATUS});
 		}
-		returnStatus.addExtendedStatus(aStatus);
-		return returnStatus;
+		innerReturnStatus.addExtendedStatus(aStatus);
+		return innerReturnStatus;
 	}
 
 	private OperationStatus runOperation(final IDataModelOperation operation, final IProgressMonitor monitor, final IAdaptable info, final int executionType, OperationStatus returnStatus) {
+		OperationStatus innerReturnStatus = returnStatus;
 		if (rootOperation == operation) {
 			IStatus status = runOperation(operation, monitor, info, IDataModelPausibleOperationEvent.EXECUTE);
 			if (!status.isOK()) {
-				returnStatus = addStatus(returnStatus, status);
+				innerReturnStatus = addStatus(innerReturnStatus, status);
 			}
 		} else {
 			try {
 				IStatus status = runOperation(operation, monitor, info, IDataModelPausibleOperationEvent.EXECUTE);
 				if (!status.isOK()) {
-					returnStatus = addExtendedStatus(returnStatus, status);
+					innerReturnStatus = addExtendedStatus(innerReturnStatus, status);
 				}
 			} catch (Exception e) {
 				IStatus status = new Status(IStatus.ERROR, WTPCommonPlugin.PLUGIN_ID, 0, WTPResourceHandler.getString("25", new Object[]{operation.getClass().getName()}), e); //$NON-NLS-1$
-				returnStatus = addExtendedStatus(returnStatus, status);
+				innerReturnStatus = addExtendedStatus(innerReturnStatus, status);
 			}
 		}
-		return returnStatus;
+		return innerReturnStatus;
 	}
 
 	private IStatus runOperation(final IDataModelOperation operation, final IProgressMonitor monitor, final IAdaptable info, final int executionType) {
 		IWorkspaceRunnableWithStatus workspaceRunnable = new IWorkspaceRunnableWithStatus(info) {
+			@Override
 			public void run(IProgressMonitor pm) throws CoreException {
 				try {
 					switch (executionType) {
@@ -387,7 +396,7 @@
 					}
 				} catch (Exception e) {
 					this.setStatus(new Status(IStatus.ERROR, WTPCommonPlugin.PLUGIN_ID, 0, WTPResourceHandler.getString("25", new Object[]{operation.getClass().getName()}), e)); //$NON-NLS-1$
-					WTPCommonPlugin.getDefault().getLogger().logError(e);
+					WTPCommonPlugin.logError(e);
 				}
 			}
 		};
@@ -485,6 +494,7 @@
 			return null;
 		}
 
+		@Override
 		public String toString() {
 			return getOperationID();
 		}
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/AscendingGroupComparator.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/AscendingGroupComparator.java
index 39afa0c..2a473d6 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/AscendingGroupComparator.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/AscendingGroupComparator.java
@@ -28,6 +28,8 @@
 	private static AscendingGroupComparator singleton;
 
 	public int compare(Object o1, Object o2) {
+		FunctionGroup group1 = (FunctionGroup) o1;
+		FunctionGroup group2 = (FunctionGroup) o2;
 		if (o2 == null && o1 != null)
 			return -1;
 		if (o1 == null && o2 != null)
@@ -35,9 +37,6 @@
 		if (o1 == null && o2 == null)
 			return 0;
 
-		FunctionGroup group1 = (FunctionGroup) o1;
-		FunctionGroup group2 = (FunctionGroup) o2;
-
 		if (group1.getPriority() > group2.getPriority())
 			return 1;
 		if (group1.getPriority() == group2.getPriority())
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/DescendingGroupComparator.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/DescendingGroupComparator.java
index 0720856..0c7619b 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/DescendingGroupComparator.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/DescendingGroupComparator.java
@@ -29,6 +29,8 @@
 	private static DescendingGroupComparator singleton;
 
 	public int compare(Object o1, Object o2) {
+		FunctionGroup group1 = (FunctionGroup) o1;
+		FunctionGroup group2 = (FunctionGroup) o2;
 		if (o1 == null && o2 != null)
 			return -1;
 		if (o2 == null && o1 != null)
@@ -36,9 +38,6 @@
 		if (o1 == null && o2 == null)
 			return 0;
 
-		FunctionGroup group1 = (FunctionGroup) o1;
-		FunctionGroup group2 = (FunctionGroup) o2;
-
 		if (group1.getPriority() > group2.getPriority())
 			return -1;
 		if (group1.getPriority() == group2.getPriority())
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementIdentifier.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementIdentifier.java
index a6dbbd9..7147a3e 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementIdentifier.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementIdentifier.java
@@ -87,6 +87,7 @@
 
 	}
 
+	@Override
 	public boolean equals(Object object) {
 		if (!(object instanceof EnablementIdentifier))
 			return false;
@@ -116,6 +117,7 @@
 		return id;
 	}
 
+	@Override
 	public int hashCode() {
 		if (!hashCodeComputed) {
 			hashCode = HASH_INITIAL;
@@ -142,10 +144,10 @@
 	}
 
 	protected boolean setFunctionGroupIds(Set functionGroupIds) {
-		functionGroupIds = Util.safeCopy(functionGroupIds, String.class);
+		Set safeFunctionGroupIds = Util.safeCopy(functionGroupIds, String.class);
 
-		if (!Util.equals(functionGroupIds, this.functionGroupIds)) {
-			this.functionGroupIds = functionGroupIds;
+		if (!Util.equals(safeFunctionGroupIds, this.functionGroupIds)) {
+			this.functionGroupIds = safeFunctionGroupIds;
 			this.functionGroupIdsAsArray = (String[]) this.functionGroupIds.toArray(new String[this.functionGroupIds.size()]);
 
 			hashCodeComputed = false;
@@ -189,6 +191,7 @@
 		return false;
 	}
 
+	@Override
 	public String toString() {
 		if (string == null) {
 			final StringBuffer stringBuffer = new StringBuffer();
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementIdentifierEvent.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementIdentifierEvent.java
index d90b19c..5e077b7 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementIdentifierEvent.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementIdentifierEvent.java
@@ -72,6 +72,7 @@
 	 * 
 	 * @see java.lang.Object#toString()
 	 */
+	@Override
 	public String toString() {
 		return "EnablementIdentifierEvent [identifier=" + identifier.toString() + ", functionGroupIdsChanged=" + hasFunctionGroupIdsChanged() + ", enabledChanged=" + hasEnabledChanged() + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementManager.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementManager.java
index 4b4b5e8..5a21de8 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementManager.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/EnablementManager.java
@@ -28,7 +28,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonMessages;
 import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 
@@ -60,17 +59,22 @@
 	}
 
     public IEnablementIdentifier getIdentifier(String identifierId, IProject project) {
-        if (identifierId == null) throw new NullPointerException();
-        if (project != null && !project.isAccessible()) project = null;
+        if (identifierId == null){
+        	throw new NullPointerException();
+        }
+        IProject innerProject = project;
+        if (innerProject != null && !innerProject.isAccessible()){
+        	innerProject = null;
+        }
         
         EnablementIdentifier identifier = null;
         boolean identifierRequiresUpdate = false;
         synchronized(this) {
-	        Map identifiersById = getIdentifiersById(project);	
+	        Map identifiersById = getIdentifiersById(innerProject);	
 	        identifier = (EnablementIdentifier) identifiersById.get(identifierId);
 	        if(identifier == null){
 	        	identifierRequiresUpdate = true;
-	        	identifier = createIdentifier(identifierId, project);
+	        	identifier = createIdentifier(identifierId, innerProject);
 	            identifiersById.put(identifierId, identifier);
 	        }
 	    }
@@ -141,7 +145,7 @@
 			} catch (Exception ex) {
 				//Defer the exception so others can handle it.
 				nextStatus = WTPCommonPlugin.createErrorStatus(WTPCommonMessages.INTERNAL_ERROR, ex);
-				Logger.getLogger().logError(ex);
+				WTPCommonPlugin.logError(ex);
 				if (errorStatus == null)
 					errorStatus = nextStatus;
 				else if (errorStatus.isMultiStatus())
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroup.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroup.java
index 8fb8259..c470bbc 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroup.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroup.java
@@ -16,8 +16,8 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.internal.WTPResourceHandler;
+import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 
 
 /**
@@ -85,12 +85,13 @@
 			try {
 				groupInterface = (IGroupInitializer) element.createExecutableExtension(GROUP_INTIALIZER_CLASS_ATTR);
 			} catch (CoreException e) {
-				Logger.getLogger().logError(WTPResourceHandler.getString("29", new Object[]{GROUP_INTIALIZER_CLASS_ATTR, getInitalizerClassName(), getDeclaringExtensionName()}) + "\r\n"); //$NON-NLS-1$//$NON-NLS-2$
-				Logger.getLogger().logError(e);
+				WTPCommonPlugin.logError(WTPResourceHandler.getString("29", new Object[]{GROUP_INTIALIZER_CLASS_ATTR, getInitalizerClassName(), getDeclaringExtensionName()}) + "\r\n"); //$NON-NLS-1$//$NON-NLS-2$
+				WTPCommonPlugin.logError(e);
 			}
 		return groupInterface;
 	}
 
+	@Override
 	public String toString() {
 		return "\"" + getName() + "\" (" + getGroupID() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 	}
@@ -131,7 +132,7 @@
 	public boolean isMatch(String string) {
 		if (functionGroupPatternBindings == null) {
 			if (!errorReported) {
-				Logger.getLogger().logError(WTPResourceHandler.getString("30", new Object[]{getGroupID()})); //$NON-NLS-1$
+				WTPCommonPlugin.logError(WTPResourceHandler.getString("30", new Object[]{getGroupID()})); //$NON-NLS-1$
 				errorReported = true;
 			}
 			return false;
@@ -147,12 +148,10 @@
 	}
 
 	boolean setFunctionGroupPatternBindings(Set functionGroupPatternBindings) {
-		functionGroupPatternBindings = Util.safeCopy(functionGroupPatternBindings, FunctionGroupPatternBinding.class);
+		Set safeFunctionGroupPatternBindings = Util.safeCopy(functionGroupPatternBindings, FunctionGroupPatternBinding.class);
 
-		if (!Util.equals(functionGroupPatternBindings, this.functionGroupPatternBindings)) {
-			this.functionGroupPatternBindings = functionGroupPatternBindings;
-//			this.functionGroupPatternBindingsAsArray = (FunctionGroupPatternBinding[]) this.functionGroupPatternBindings.toArray(new FunctionGroupPatternBinding[this.functionGroupPatternBindings.size()]);
-
+		if (!Util.equals(safeFunctionGroupPatternBindings, this.functionGroupPatternBindings)) {
+			this.functionGroupPatternBindings = safeFunctionGroupPatternBindings;
 			return true;
 		}
 
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroupPatternBinding.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroupPatternBinding.java
index d387771..464bcc5 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroupPatternBinding.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroupPatternBinding.java
@@ -56,6 +56,7 @@
 		return compareTo;
 	}
 
+	@Override
 	public boolean equals(Object object) {
 		if (!(object instanceof FunctionGroupPatternBinding))
 			return false;
@@ -75,6 +76,7 @@
 		return pattern;
 	}
 
+	@Override
 	public int hashCode() {
 		if (!hashCodeComputed) {
 			hashCode = HASH_INITIAL;
@@ -86,6 +88,7 @@
 		return hashCode;
 	}
 
+	@Override
 	public String toString() {
 		if (string == null) {
 			final StringBuffer stringBuffer = new StringBuffer();
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroupRegistry.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroupRegistry.java
index 996c92c..ce55ca9 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroupRegistry.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/FunctionGroupRegistry.java
@@ -25,16 +25,13 @@
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.RegistryReader;
-import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.core.util.RegistryReader;
 import org.eclipse.wst.common.frameworks.internal.WTPResourceHandler;
 import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 
 /**
  * The FunctionGroupRegistry will consume Configuration elements conforming to the FunctionGroup
  * Extension Point schema.
- * 
- * @author mdelder/blancett
  */
 public class FunctionGroupRegistry extends RegistryReader {
 
@@ -67,6 +64,7 @@
 	 * (non-Javadoc) Read all the elements first, then set the pattern bindings on the function
 	 * groups
 	 */
+	@Override
 	public void readRegistry() {
 		super.readRegistry();
 		setPatternBindings();
@@ -85,6 +83,7 @@
 
 	}
 
+	@Override
 	public boolean readElement(IConfigurationElement element) {
 		if (element.getName().equals(GROUP_ELEMENT)) {
 			readGroup(element);
@@ -224,11 +223,11 @@
 		FunctionGroup group1 = getGroupByID(groupID1);
 		FunctionGroup group2 = getGroupByID(groupID2);
 		if (group1 == null) {
-			Logger.getLogger().logError(new IllegalArgumentException(WTPResourceHandler.getString("28", new Object[]{groupID1}))); //$NON-NLS-1$
+			WTPCommonPlugin.logError(new IllegalArgumentException(WTPResourceHandler.getString("28", new Object[]{groupID1}))); //$NON-NLS-1$
 			return -1;
 		}
 		if (group2 == null) {
-			Logger.getLogger().logError(new IllegalArgumentException(WTPResourceHandler.getString("28", new Object[]{groupID2}))); //$NON-NLS-1$
+			WTPCommonPlugin.logError(new IllegalArgumentException(WTPResourceHandler.getString("28", new Object[]{groupID2}))); //$NON-NLS-1$
 			return 1;
 		}
 
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/IEnablementManager.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/IEnablementManager.java
index 454c94c..ab6fcdc 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/IEnablementManager.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/IEnablementManager.java
@@ -8,26 +8,14 @@
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*
- * Created on Feb 12, 2004
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
 package org.eclipse.wst.common.frameworks.internal.enablement;
 
 import java.util.Collection;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jem.util.UIContextDetermination;
+import org.eclipse.wst.common.core.util.UIContextDetermination;
 
-/**
- * @author schacher
- * 
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
 public interface IEnablementManager {
 	String INTERNAL_ENABLEMENT_DETERMINATION_ID = "org.eclipse.wst.common.frameworks.internal.EnablementDetermination"; //$NON-NLS-1$
 
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/IdentifiableComparator.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/IdentifiableComparator.java
index 0df26cf..b6d9a61 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/IdentifiableComparator.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/IdentifiableComparator.java
@@ -60,9 +60,14 @@
 	 * 
 	 * @see java.util.Comparator#equals(java.lang.Object)
 	 */
+	@Override
 	public boolean equals(Object obj) {
 		return obj instanceof IdentifiableComparator;
 	}
+	@Override
+	public int hashCode() {
+		return super.hashCode();
+	}
 
 	private int compareLoadOrder(Identifiable lvalue, Identifiable rvalue) {
 		/* R - L implies 0 is the highest priority */
@@ -74,4 +79,6 @@
 			return FunctionGroupRegistry.getInstance().getFunctionPriority(identifiable.getID());
 		return DEFAULT_PRIORITY;
 	}
+
+	
 }
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/Util.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/Util.java
index 740270a..2c49776 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/Util.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/enablement/Util.java
@@ -220,13 +220,13 @@
 		if (list == null || c == null)
 			throw new NullPointerException();
 
-		list = Collections.unmodifiableList(new ArrayList(list));
-		Iterator iterator = list.iterator();
+		List safeList = Collections.unmodifiableList(new ArrayList(list));
+		Iterator iterator = safeList.iterator();
 
 		while (iterator.hasNext())
 			assertInstance(iterator.next(), c, allowNullElements);
 
-		return list;
+		return safeList;
 	}
 
 	public static Map safeCopy(Map map, Class keyClass, Class valueClass) {
@@ -237,8 +237,8 @@
 		if (map == null || keyClass == null || valueClass == null)
 			throw new NullPointerException();
 
-		map = Collections.unmodifiableMap(new HashMap(map));
-		Iterator iterator = map.entrySet().iterator();
+		Map safeMap = Collections.unmodifiableMap(new HashMap(map));
+		Iterator iterator = safeMap.entrySet().iterator();
 
 		while (iterator.hasNext()) {
 			Map.Entry entry = (Map.Entry) iterator.next();
@@ -246,7 +246,7 @@
 			assertInstance(entry.getValue(), valueClass, allowNullValues);
 		}
 
-		return map;
+		return safeMap;
 	}
 
 	public static Set safeCopy(Set set, Class c) {
@@ -257,13 +257,13 @@
 		if (set == null || c == null)
 			throw new NullPointerException();
 
-		set = Collections.unmodifiableSet(new HashSet(set));
-		Iterator iterator = set.iterator();
+		Set safeSet = Collections.unmodifiableSet(new HashSet(set));
+		Iterator iterator = safeSet.iterator();
 
 		while (iterator.hasNext())
 			assertInstance(iterator.next(), c, allowNullElements);
 
-		return set;
+		return safeSet;
 	}
 
 	public static SortedMap safeCopy(SortedMap sortedMap, Class keyClass, Class valueClass) {
@@ -274,8 +274,8 @@
 		if (sortedMap == null || keyClass == null || valueClass == null)
 			throw new NullPointerException();
 
-		sortedMap = Collections.unmodifiableSortedMap(new TreeMap(sortedMap));
-		Iterator iterator = sortedMap.entrySet().iterator();
+		SortedMap safeSortedMap = Collections.unmodifiableSortedMap(new TreeMap(sortedMap));
+		Iterator iterator = safeSortedMap.entrySet().iterator();
 
 		while (iterator.hasNext()) {
 			Map.Entry entry = (Map.Entry) iterator.next();
@@ -283,7 +283,7 @@
 			assertInstance(entry.getValue(), valueClass, allowNullValues);
 		}
 
-		return sortedMap;
+		return safeSortedMap;
 	}
 
 	public static SortedSet safeCopy(SortedSet sortedSet, Class c) {
@@ -294,13 +294,13 @@
 		if (sortedSet == null || c == null)
 			throw new NullPointerException();
 
-		sortedSet = Collections.unmodifiableSortedSet(new TreeSet(sortedSet));
-		Iterator iterator = sortedSet.iterator();
+		SortedSet safeSortedSet = Collections.unmodifiableSortedSet(new TreeSet(sortedSet));
+		Iterator iterator = safeSortedSet.iterator();
 
 		while (iterator.hasNext())
 			assertInstance(iterator.next(), c, allowNullElements);
 
-		return sortedSet;
+		return safeSortedSet;
 	}
 
 	public static boolean startsWith(List left, List right, boolean equals) {
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ComposedExtendedOperationHolder.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ComposedExtendedOperationHolder.java
index 8b754b5..b1676d2 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ComposedExtendedOperationHolder.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ComposedExtendedOperationHolder.java
@@ -15,8 +15,8 @@
 import java.util.Iterator;
 
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.internal.enablement.EnablementManager;
+import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 
 public class ComposedExtendedOperationHolder {
 
@@ -46,7 +46,7 @@
 						extOperationHolder.addPreOperation(preOp);
 					}
 				} catch (CoreException e) {
-					Logger.getLogger().logError(e);
+					WTPCommonPlugin.logError(e);
 				}
 				try {
 					postOp = currentExt.getPostOperation();
@@ -54,7 +54,7 @@
 						extOperationHolder.addPostOperation(postOp);
 					}
 				} catch (CoreException e) {
-					Logger.getLogger().logError(e);
+					WTPCommonPlugin.logError(e);
 				}
 			}
 		}
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/OperationExtensionReader.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/OperationExtensionReader.java
index 31f25db..3228037 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/OperationExtensionReader.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/OperationExtensionReader.java
@@ -8,12 +8,6 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*
- * Created on Nov 3, 2003
- * 
- * To change the template for this generated file go to Window&gt;Preferences&gt;Java&gt;Code
- * Generation&gt;Code and Comments
- */
 package org.eclipse.wst.common.frameworks.internal.operations;
 
 import java.util.ArrayList;
@@ -21,7 +15,7 @@
 import java.util.HashMap;
 
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jem.util.RegistryReader;
+import org.eclipse.wst.common.core.util.RegistryReader;
 import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 
 public class OperationExtensionReader extends RegistryReader {
@@ -42,6 +36,7 @@
 	 * postOperationClass="com.ibm.etools....PostDeleteOperation"> </operationExtension>
 	 */
 
+	@Override
 	public boolean readElement(IConfigurationElement element) {
 		if (!element.getName().equals(ELEMENT_J2EEOPEXT))
 			return false;
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/OperationStatus.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/OperationStatus.java
index d90a4c8..22bf0f3 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/OperationStatus.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/OperationStatus.java
@@ -39,6 +39,7 @@
 	/**
 	 * Overridden to expose as public instead of protected
 	 */
+	@Override
 	public void setCode(int code) {
 		super.setCode(code);
 	}
@@ -46,6 +47,7 @@
 	/**
 	 * Overridden to expose as public instead of protected
 	 */
+	@Override
 	public void setException(Throwable exception) {
 		super.setException(exception);
 	}
@@ -53,6 +55,7 @@
 	/**
 	 * Overridden to expose as public instead of protected
 	 */
+	@Override
 	public void setMessage(String message) {
 		super.setMessage(message);
 	}
@@ -60,10 +63,12 @@
 	/**
 	 * Overridden to expose as public instead of protected
 	 */
+	@Override
 	public void setSeverity(int severity) {
 		super.setSeverity(severity);
 	}
 
+	@Override
 	public void add(IStatus status) {
 		int newSev = status.getSeverity();
 		if (newSev > getSeverity()) {
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ProjectCreationDataModelProviderNew.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ProjectCreationDataModelProviderNew.java
index 3823ed7..8796f68 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ProjectCreationDataModelProviderNew.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ProjectCreationDataModelProviderNew.java
@@ -32,14 +32,17 @@
 
 public class ProjectCreationDataModelProviderNew extends AbstractDataModelProvider implements IProjectCreationPropertiesNew {
 
+	@Override
 	public IDataModelOperation getDefaultOperation() {
 		return new ProjectCreationOperationNew(model);
 	}
 
+	@Override
 	public void init() {
 		super.init();
 	}
 
+	@Override
 	public Set getPropertyNames() {
 		Set propertyNames = super.getPropertyNames();
 		propertyNames.add(PROJECT);
@@ -54,6 +57,7 @@
 		return propertyNames;
 	}
 
+	@Override
 	public Object getDefaultProperty(String propertyName) {
 		if (propertyName.equals(PROJECT_LOCATION)) {
 			if (getBooleanProperty(USE_DEFAULT_LOCATION)) {
@@ -81,6 +85,7 @@
 		return path.toOSString();
 	}
 
+	@Override
 	public boolean propertySet(String propertyName, Object propertyValue) {
 		if (propertyName.equals(PROJECT_LOCATION) || propertyName.equals(DEFAULT_LOCATION) || propertyName.equals(PROJECT_DESCRIPTION)) {
 			throw new RuntimeException();
@@ -117,6 +122,7 @@
 		return (null != projectName && projectName.length() > 0) ? ResourcesPlugin.getWorkspace().getRoot().getProject(projectName) : null;
 	}
 
+	@Override
 	public IStatus validate(String propertyName) {
 		if (propertyName.equals(PROJECT_NAME)) {
 			String name = model.getStringProperty(PROJECT_NAME);
@@ -176,6 +182,9 @@
 			return status;
 		if (projectName.endsWith(" ")) //$NON-NLS-1$
 			return WTPCommonPlugin.createErrorStatus(WTPResourceHandler.getString("41")); //$NON-NLS-1$
+		//special FRAGMENT_SEPARATOR char in org.eclipse.emf.common.util.URI
+		if (projectName.indexOf('#') != -1) 
+			return WTPCommonPlugin.createErrorStatus(WTPResourceHandler.getString("8")); //$NON-NLS-1$
 		return OK_STATUS;
 	}
 
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ProjectCreationOperationNew.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ProjectCreationOperationNew.java
index d837cfe..a1ba7bb 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ProjectCreationOperationNew.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/operations/ProjectCreationOperationNew.java
@@ -25,9 +25,9 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 
 public class ProjectCreationOperationNew extends AbstractDataModelOperation implements IProjectCreationPropertiesNew {
 
@@ -35,6 +35,7 @@
 		super(dataModel);
 	}
 
+	@Override
 	public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
 		try {
 			IProgressMonitor subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN);
@@ -56,7 +57,7 @@
 				project.setDescription(desc, monitor);
 			}
 		} catch (CoreException e) {
-			Logger.getLogger().logError(e);
+			WTPCommonPlugin.logError(e);
 		} finally {
 			monitor.done();
 		}
@@ -65,10 +66,12 @@
 		return OK_STATUS;
 	}
 
+	@Override
 	public boolean canUndo() {
 		return false;
 	}
 
+	@Override
 	public boolean canRedo() {
 		return false;
 	}
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/plugin/WTPCommonMessages.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/plugin/WTPCommonMessages.java
index 8fade80..2d80a79 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/plugin/WTPCommonMessages.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/plugin/WTPCommonMessages.java
@@ -50,4 +50,6 @@
 	public static final String WEBCONTENTFOLDER_EMPTY = "40"; //$NON-NLS-1$
 	public static final String PROJECT_EXISTS_SAMENAME_ERROR = "43"; //$NON-NLS-1$
 	public static final String RUNTIME_NONE = "44"; //$NON-NLS-1$
+	public static final String EAR_WILL_BE_CREATED = "45"; //$NON-NLS-1$
+	public static final String SAME_MODULE_AND_EAR_NAME_DIFFERENT_CASE = "46"; //$NON-NLS-1$
 }
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/plugin/WTPCommonPlugin.java b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/plugin/WTPCommonPlugin.java
index 994c720..e3fc87d 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/plugin/WTPCommonPlugin.java
+++ b/plugins/org.eclipse.wst.common.frameworks/src/org/eclipse/wst/common/frameworks/internal/plugin/WTPCommonPlugin.java
@@ -8,12 +8,6 @@
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*
- * Created on Oct 29, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
 package org.eclipse.wst.common.frameworks.internal.plugin;
 
 import java.text.MessageFormat;
@@ -25,13 +19,10 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.wst.common.frameworks.internal.WTPPlugin;
+import org.eclipse.core.runtime.Platform;
+import java.lang.Throwable;
+import org.eclipse.core.runtime.CoreException;
 
-/**
- * @author jsholl
- * 
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
 public class WTPCommonPlugin extends WTPPlugin {
 
 	public static final String PLUGIN_ID = "org.eclipse.wst.common.frameworks"; //$NON-NLS-1$
@@ -138,7 +129,28 @@
 	 * 
 	 * @see org.eclipse.wst.common.frameworks.internal.WTPPlugin#getPluginID()
 	 */
+	@Override
 	public String getPluginID() {
 		return PLUGIN_ID;
 	}
+
+	public static IStatus createStatus(int severity, String message, Throwable exception) {
+		return new Status(severity, PLUGIN_ID, message, exception);
+	}
+
+	public static IStatus createStatus(int severity, String message) {
+		return createStatus(severity, message, null);
+	}
+
+	public static void logError(Throwable exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, exception.getMessage(), exception));
+	}
+
+	public static void logError(CoreException exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( exception.getStatus() );
+	}
+
+	public static void logError(String message) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, message));
+	}
 }
diff --git a/plugins/org.eclipse.wst.common.frameworks/src/wtp_common.properties b/plugins/org.eclipse.wst.common.frameworks/src/wtp_common.properties
index 3af3db7..18ee3fe 100644
--- a/plugins/org.eclipse.wst.common.frameworks/src/wtp_common.properties
+++ b/plugins/org.eclipse.wst.common.frameworks/src/wtp_common.properties
@@ -52,3 +52,5 @@
 42=Resource already exists with a different case.
 43=A project already exists with this name.
 44=<None>
+45=EAR project {0} does not exist. It will be created.
+46=The EAR project name, "{0}", can not be the same as the project name with a different case.
diff --git a/plugins/org.eclipse.wst.common.infopop/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.infopop/META-INF/MANIFEST.MF
index 603bfb0..9d5c8ce 100644
--- a/plugins/org.eclipse.wst.common.infopop/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.infopop/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
 Bundle-SymbolicName: org.eclipse.wst.common.infopop; singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.300.qualifier
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: plugin
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.wst.common.infopop/about.html b/plugins/org.eclipse.wst.common.infopop/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.infopop/about.html
+++ b/plugins/org.eclipse.wst.common.infopop/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.infopop/plugin.properties b/plugins/org.eclipse.wst.common.infopop/plugin.properties
index 74f0260..b21e8ec 100644
--- a/plugins/org.eclipse.wst.common.infopop/plugin.properties
+++ b/plugins/org.eclipse.wst.common.infopop/plugin.properties
@@ -1,3 +1,3 @@
 # properties file for org.eclipse.wst.common.infopop
 Bundle-Name.0 = Common WST infopops
-Bundle-Vendor.0 = Eclipse.org
\ No newline at end of file
+Bundle-Vendor.0 = Eclipse Web Tools Platform
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/.classpath b/plugins/org.eclipse.wst.common.modulecore.ui/.classpath
new file mode 100644
index 0000000..64c5e31
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/.project b/plugins/org.eclipse.wst.common.modulecore.ui/.project
new file mode 100644
index 0000000..4977ea7
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.wst.common.modulecore.ui</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.modulecore.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..44d82f6
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,74 @@
+#Fri Sep 11 17:13:08 PDT 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=ignore
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.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=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
+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=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
+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=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
+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=error
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=ignore
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.modulecore.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5cd07dc
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-Vendor: %provider
+Bundle-SymbolicName: org.eclipse.wst.common.modulecore.ui; singleton:=true
+Bundle-Version: 1.0.101.qualifier
+Bundle-Localization: plugin
+Bundle-Activator: org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin
+Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.wst.common.modulecore;bundle-version="[1.2.101,2.0.0)",
+ org.eclipse.wst.common.frameworks;bundle-version="[1.1.300,2.0.0)",
+ org.eclipse.wst.common.project.facet.core;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.jem.util;bundle-version="[2.0.200,3.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.wst.server.core;bundle-version="[1.1.202,2.0.0)",
+ org.eclipse.core.expressions;bundle-version="[3.4.200,4.0.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.wst.common.componentcore.internal.impl;x-internal:=true,
+ org.eclipse.wst.common.componentcore.ui;x-internal:=true,
+ org.eclipse.wst.common.componentcore.ui.internal.propertypage;x-internal:=true,
+ org.eclipse.wst.common.componentcore.ui.internal.propertypage.verifier;x-internal:=true,
+ org.eclipse.wst.common.componentcore.ui.internal.taskwizard;x-internal:=true,
+ org.eclipse.wst.common.componentcore.ui.propertypage;x-internal:=true
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/about.html b/plugins/org.eclipse.wst.common.modulecore.ui/about.html
new file mode 100644
index 0000000..b6ed5b0
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/about.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<HTML>
+
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+
+<BODY lang="EN-US">
+
+<H3>About This Content</H3>
+
+<P>August, 2009</P>
+
+<H3>License</H3>
+
+<P>The Eclipse Foundation makes available all content in this plug-in 
+("Content"). Unless otherwise indicated below, the Content is provided to you 
+under the terms and conditions of the Eclipse Public License Version 1.0 
+("EPL"). A copy of the EPL is available at
+<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
+For purposes of the EPL, "Program" will mean the Content.</P>
+
+<P>If you did not receive this Content directly from the Eclipse Foundation, the 
+Content is being redistributed by another party ("Redistributor") and different 
+terms and conditions may apply to your use of any object code in the Content. 
+Check the Redistributor’s license that was provided with the Content. If no such 
+license exists, contact the Redistributor. Unless otherwise indicated below, the 
+terms and conditions of the EPL still apply to any source code in the Content 
+and such source code may be obtained at
+<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/build.properties b/plugins/org.eclipse.wst.common.modulecore.ui/build.properties
new file mode 100644
index 0000000..ef0787e
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/build.properties
@@ -0,0 +1,19 @@
+###############################################################################
+# Copyright (c) 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               .,\
+               icons/,\
+               META-INF/,\
+               about.html,\
+               plugin.properties
+src.includes = schema/
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/icons/assembly-banner.png b/plugins/org.eclipse.wst.common.modulecore.ui/icons/assembly-banner.png
new file mode 100644
index 0000000..6628af8
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/icons/assembly-banner.png
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/icons/folder.gif b/plugins/org.eclipse.wst.common.modulecore.ui/icons/folder.gif
new file mode 100644
index 0000000..c91b267
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/icons/folder.gif
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/icons/jar_obj.gif b/plugins/org.eclipse.wst.common.modulecore.ui/icons/jar_obj.gif
new file mode 100644
index 0000000..ec315d5
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/icons/jar_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/icons/prj_obj.gif b/plugins/org.eclipse.wst.common.modulecore.ui/icons/prj_obj.gif
new file mode 100644
index 0000000..a4ea580
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/icons/prj_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/plugin.properties b/plugins/org.eclipse.wst.common.modulecore.ui/plugin.properties
new file mode 100644
index 0000000..a963071
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/plugin.properties
@@ -0,0 +1,15 @@
+###############################################################################
+# Copyright (c) 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+provider=Eclipse.org
+Bundle-Name.0 = Modulecore UI Plug-in
+Module_assembly.name = Deployment Assembly
+Project=Project
+Folder_Mapping=Folder
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/plugin.xml b/plugins/org.eclipse.wst.common.modulecore.ui/plugin.xml
new file mode 100644
index 0000000..21c635e
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/plugin.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+   <extension-point id="moduleDependencyPropertyPage" name="moduleDependencyPropertyPage" schema="schema/moduleDependencyPropertyPage.exsd"/>
+   <extension-point id="referenceWizardFragment" name="referenceWizardFragment" schema="schema/referenceWizardFragment.exsd"/>
+   <extension-point id="virtualComponentLabelProvider" name="virtualComponentLabelProvider" schema="schema/virtualComponentLabelProvider.exsd"/>
+   <extension-point id="deploymentAssemblyVerifier" name="Deployment Assembly Verifier" schema="schema/deploymentAssemblyVerifier.exsd"/>
+   <extension-point id="resourceMappingFilter" name="resourceMappingFilter" schema="schema/resourceMappingFilter.exsd"/>
+   <!-- =========== DeploymentAssemblyPage ============ -->
+   <extension
+   		point="org.eclipse.ui.propertyPages">
+ 	<page
+      		name="%Module_assembly.name"
+            class="org.eclipse.wst.common.componentcore.ui.propertypage.ModuleAssemblyRootPage"
+            id="org.eclipse.wst.common.componentcore.ui.DeploymentAssemblyPage">
+           <enabledWhen>
+				<adapt
+					type="org.eclipse.core.resources.IProject">
+					<test
+						property="org.eclipse.core.resources.projectNature"
+          				value="org.eclipse.wst.common.modulecore.ModuleCoreNature"/>
+				</adapt>
+         </enabledWhen>          
+      </page>
+      </extension>
+
+
+    <extension
+          point="org.eclipse.wst.common.modulecore.ui.referenceWizardFragment">
+       <referenceFragment
+             class="org.eclipse.wst.common.componentcore.ui.internal.propertypage.ProjectReferenceWizardFragment"
+             icon="icons/prj_obj.gif"
+             id="org.eclipse.wst.common.componentcore.ui.newProjectReference"
+             name="%Project">
+       </referenceFragment>
+       <referenceFragment
+             class="org.eclipse.wst.common.componentcore.ui.internal.propertypage.FolderMappingWizardFragment"
+             icon="icons/folder.gif"
+             id="org.eclipse.wst.common.componentcore.ui.resourceMappingReference"
+             name="%Folder_Mapping">
+       </referenceFragment>
+    </extension>
+    
+    <extension
+        point="org.eclipse.wst.common.modulecore.ui.resourceMappingFilter">
+        <resourceMapping 
+              source-path="\.settings">            
+        </resourceMapping>
+    </extension>
+    
+</plugin>
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/schema/deploymentAssemblyVerifier.exsd b/plugins/org.eclipse.wst.common.modulecore.ui/schema/deploymentAssemblyVerifier.exsd
new file mode 100644
index 0000000..36e2203
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/schema/deploymentAssemblyVerifier.exsd
@@ -0,0 +1,115 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.modulecore.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.modulecore.ui" id="DeploymentAssemblyVerifier" name="Deployment Assembly Verifier"/>
+      </appInfo>
+      <documentation>
+         The extension point gives the ability to extend deployment assembly validation during the creation of resource and dependency mappings. Registration of the verifier is based on component type and server target.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="verifier"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  a fully qualified identifier of the target extension point
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  an optional identifier of the extension instance
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  an optional name of the extension instance
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="verifier">
+      <complexType>
+         <sequence>
+            <element ref="runtime" minOccurs="1" maxOccurs="unbounded"/>
+            <element ref="component"/>
+         </sequence>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the qualified name of the class to be used as the verifier
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="AbstractDeploymentAssemblyVerifier:"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="runtime">
+      <complexType>
+         <attribute name="runtime_server_id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the runtime server id for this verifier
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="component">
+      <complexType>
+         <attribute name="component_type" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the supported component type for this verifier(uses facet id)
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
+      </documentation>
+   </annotation>
+
+
+
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2010 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/schema/moduleDependencyPropertyPage.exsd b/plugins/org.eclipse.wst.common.modulecore.ui/schema/moduleDependencyPropertyPage.exsd
new file mode 100644
index 0000000..7562a68
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/schema/moduleDependencyPropertyPage.exsd
@@ -0,0 +1,108 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.componentcore.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.wst.common.componentcore.ui" id="moduleDependencyPropertyPage" name="moduleDependencyPropertyPage"/>
+      </appinfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence minOccurs="1" maxOccurs="unbounded">
+            <element ref="dependencyPage"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="dependencyPage">
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.wst.common.componentcore.ui.propertypage.IDependencyPageProvider"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/schema/referenceWizardFragment.exsd b/plugins/org.eclipse.wst.common.modulecore.ui/schema/referenceWizardFragment.exsd
new file mode 100644
index 0000000..e320384
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/schema/referenceWizardFragment.exsd
@@ -0,0 +1,138 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.componentcore.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.wst.common.componentcore.ui" id="referenceWizardFragment" name="referenceWizardFragment"/>
+      </appinfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element internal="true" />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence minOccurs="1" maxOccurs="unbounded">
+            <element ref="referenceFragment"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="referenceFragment">
+      <complexType>
+         <sequence minOccurs="1" maxOccurs="unbounded">
+            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
+         </sequence>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The name will be displayed in the UI, inside the viewer
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="icon" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="resource"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.componentcore.ui.internal.taskwizard.WizardFragment:"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+         <attribute name="hidden" type="boolean">
+            <annotation>
+               <documentation>
+                  True if this reference type should be hidden and NOT exposed as a possible reference for all virtual components, false if it will be hidden and added manually to relevant components&apos; reference wizards.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/schema/resourceMappingFilter.exsd b/plugins/org.eclipse.wst.common.modulecore.ui/schema/resourceMappingFilter.exsd
new file mode 100644
index 0000000..38b775a
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/schema/resourceMappingFilter.exsd
@@ -0,0 +1,97 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.componentcore.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.wst.common.componentcore.ui" id="resourceMappingFilter" name="resourceMappingFilter"/>
+      </appinfo>
+      <documentation>
+         This extension point is to be used to specify any folder that should not be displayed or allowed to be added as resource mapping using the &apos;Deployment Assembly&apos; properties page
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element internal="true" />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence minOccurs="1" maxOccurs="unbounded">
+            <element ref="resourceMapping" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  an optional identifier of the extension instance
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  an optional name of the extension instance
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="resourceMapping">
+      <complexType>
+         <attribute name="source-path" type="string" use="required">
+            <annotation>
+               <documentation>
+                  Project relative source path that should be filtered out represented as regular expression. (i.e. source-path=&quot;\.settings&quot; would filter out the &apos;.settings&apos; folder and its contents; Since it expects a relative path filtering source-path=&quot;/\.settings&quot; would not filter out the &apos;.settings&apos; folder)
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         WTP 3.2.2
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         &lt;extension 
+ point=&quot;org.eclipse.wst.common.modulecore.ui.resourceMappingFilter&quot;&gt;
+  &lt;resourceMapping
+   source-path=&quot;\.settings&quot;&gt;
+  &lt;/resourceMapping&gt;
+&lt;/extension&gt;
+      </documentation>
+   </annotation>
+
+
+
+   <annotation>
+      <appinfo>
+         <meta.section type="copyright"/>
+      </appinfo>
+      <documentation>
+         Copyright (c) 2010 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/schema/virtualComponentLabelProvider.exsd b/plugins/org.eclipse.wst.common.modulecore.ui/schema/virtualComponentLabelProvider.exsd
new file mode 100644
index 0000000..07d87a8
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/schema/virtualComponentLabelProvider.exsd
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.modulecore.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.modulecore.ui" id="virtualComponentLabelProvider" name="virtualComponentLabelProvider"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
+      <complexType>
+         <sequence minOccurs="1" maxOccurs="unbounded">
+            <element ref="provider"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="provider">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.wst.common.componentcore.ui.internal.propertypage.IVirtualComponentLabelProvider"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="weight" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiinfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/internal/impl/TaskModel.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/internal/impl/TaskModel.java
new file mode 100644
index 0000000..de61006
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/internal/impl/TaskModel.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+/**
+ * A task model represents a model that can be shared between multiple
+ * tasks in a common workflow.
+ * <p>
+ * The task model contains information about the overall task flow and allows
+ * tasks to store and retrieve data. Its usage allows multiple tasks to be
+ * chained together and share data from the output of one task to the input
+ * of another.
+ * </p>
+ * 
+ * @since 1.0
+ */
+public class TaskModel {
+
+	private Map<String, Object> map = new HashMap<String, Object>();
+
+	/**
+	 * Returns the object in the task model with the given id.
+	 * <p>
+	 * The id can be any of the predefined ids within TaskModel, or
+	 * any other key to retrieve task-specific data.
+	 * </p>
+	 * 
+	 * @param id an id for the object
+	 * @return the object with the given id, or <code>null</code>
+	 *    if no object could be found with that id
+	 */
+	public Object getObject(String id) {
+		try {
+			return map.get(id);
+		} catch (Exception e) {
+			return null;
+		}
+	}
+
+	/**
+	 * Put an object into the task model with the given id.
+	 * <p>
+	 * The id can be any of the predefined ids within TaskModel, or
+	 * any other key to store task-specific data. 
+	 * </p>
+	 * 
+	 * @param id the id to associate the object with
+	 * @param obj an object, or <code>null</code> to reset (clear) the id
+	 */
+	public void putObject(String id, Object obj) {
+		map.put(id, obj);
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/IModuleCoreUIContextIds.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/IModuleCoreUIContextIds.java
new file mode 100644
index 0000000..f526c66
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/IModuleCoreUIContextIds.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui;
+
+/**
+ * @author: Aidyl Kareh
+ */
+public interface IModuleCoreUIContextIds {
+	//	 New references wizards
+	public static final String DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_ADD_NEW_REFERENCE_P1 = ModuleCoreUIPlugin.PLUGIN_ID + ".DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_ADD_NEW_REFERENCE_P1"; //$NON-NLS-1$
+	public static final String DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_ADD_NEW_PROJECT_REFERENCE_P1 = ModuleCoreUIPlugin.PLUGIN_ID + ".DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_ADD_NEW_PROJECT_REFERENCE_P1"; //$NON-NLS-1$
+	public static final String DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_ADD_NEW_FOLDER_MAPPING_P1 = ModuleCoreUIPlugin.PLUGIN_ID + ".DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_ADD_NEW_FOLDER_MAPPING_P1"; //$NON-NLS-1$
+	public static final String DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_DEPLOYMENT_ASSEMBLY_TAB = ModuleCoreUIPlugin.PLUGIN_ID + ".DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_DEPLOYMENT_ASSEMBLY_TAB"; //$NON-NLS-1$
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/Messages.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/Messages.java
new file mode 100644
index 0000000..7281d5c
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/Messages.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *     
+ * API in these packages is provisional in this release
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+	private static final String BUNDLE_NAME = "org.eclipse.wst.common.componentcore.ui.messages"; //$NON-NLS-1$
+	public static String ModuleAssemblyRootPageDescription;
+	public static String ErrorCheckingFacets;
+	public static String ErrorNotVirtualComponent;
+	public static String DeploymentAssemblyVerifierHelper_0;
+	public static String DeployPathColumn;
+	public static String SourceColumn;
+	public static String InternalLibJarWarning;
+	public static String AddFolder;
+	public static String AddFolderElipses;
+	public static String AddFolderMappings;
+	public static String AddEllipsis;
+	public static String EditEllipsis;
+	public static String RemoveSelected;
+	public static String JarTitle;
+	public static String JarDescription;
+	public static String ExternalJarTitle;
+	public static String ExternalJarDescription;
+	public static String Browse;
+	public static String NewReferenceTitle;
+	public static String NewReferenceDescription;
+	public static String NewReferenceWizard;
+	public static String ProjectReferenceTitle;
+	public static String ProjectReferenceDescription;
+	public static String VariableReferenceTitle;
+	public static String VariableReferenceDescription;
+	public static String WizardError;
+	public static String ProjectConversionError;
+	public static String ExistingFolderError;
+	public static String Revert;
+	public static String ErrorEntryNotFound;
+	
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+
+	private Messages() {
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/ModuleCoreUIPlugin.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/ModuleCoreUIPlugin.java
new file mode 100644
index 0000000..2734514
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/ModuleCoreUIPlugin.java
@@ -0,0 +1,174 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    
+ * API in these packages is provisional in this release
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class ModuleCoreUIPlugin extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.wst.common.modulecore.ui"; //$NON-NLS-1$
+	
+	public static final String[] ICON_DIRS = new String[]{"icons/full/obj16", //$NON-NLS-1$
+		"icons/full/cview16", //$NON-NLS-1$
+		"icons/full/ctool16", //$NON-NLS-1$
+		"icons/full/clcl16", //$NON-NLS-1$
+		"icons/full/ovr16", //$NON-NLS-1$
+		"icons/full/extra", //$NON-NLS-1$
+		"icons/full/wizban", //$NON-NLS-1$
+		"icons", //$NON-NLS-1$
+		""}; //$NON-NLS-1$
+
+	// The shared instance
+	private static ModuleCoreUIPlugin plugin;
+	/**
+	 * The constructor for this plugin
+	 */
+	public ModuleCoreUIPlugin() {
+		super();
+	}
+
+	/**
+	 * Returns the singleton instance of this plugin.
+	 *
+	 * @return org.eclipse.wst.server.ui.internal.plugin.ServerUIPlugin
+	 */
+	public static ModuleCoreUIPlugin getInstance() {
+		return plugin;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Get a .gif from the image registry.
+	 */
+	public Image getImage(String key) {
+		ImageRegistry imageRegistry = getImageRegistry();
+		Image image = imageRegistry.get(key);
+		if (image == null || image.isDisposed()) {
+			ImageDescriptor descriptor = getImageDescriptor(key);
+			if (descriptor != null) {
+				image = descriptor.createImage();
+				imageRegistry.put(key, image);
+			}
+		}
+		return image;
+	}
+
+	/**
+	 * This gets a .gif from the icons folder.
+	 */
+	public ImageDescriptor getImageDescriptor(String key) {
+		ImageDescriptor imageDescriptor = null;
+		URL gifImageURL = getImageURL(key,getBundle());
+		if (gifImageURL != null)
+			imageDescriptor = ImageDescriptor.createFromURL(gifImageURL);
+		return imageDescriptor;
+	}
+
+	/**
+	 * This gets a .gif from the icons folder.
+	 */
+	public URL getImageURL(String key, Bundle bundle) {
+		String gif = "/" + key + ".gif"; //$NON-NLS-1$ //$NON-NLS-2$
+		IPath path = null;
+		for (int i = 0; i < ICON_DIRS.length; i++) {
+			path = new Path(ICON_DIRS[i]).append(gif);
+			if (Platform.find(bundle,path) == null)
+				continue;
+			try {
+				return new URL( bundle.getEntry("/"), path.toString()); //$NON-NLS-1$ 
+			} catch (MalformedURLException exception) {
+				logError(exception);
+				continue;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static ModuleCoreUIPlugin getDefault() {
+		return plugin;
+	}
+
+	public static void log(Exception e) {
+		log(e.getMessage(), e);
+	}
+	
+	public static void log(String message, Exception e) {
+		IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, message, e);
+		getDefault().getLog().log(status);
+	}
+	public static IStatus createStatus(int severity, int aCode,
+			String aMessage, Throwable exception) {
+		return new Status(severity, PLUGIN_ID, aCode,
+				aMessage != null ? aMessage : "No message.", exception); //$NON-NLS-1$
+	}
+	public static IStatus createErrorStatus(int aCode, String aMessage,
+			Throwable exception) {
+		return createStatus(IStatus.ERROR, aCode, aMessage, exception);
+	}
+
+	public static IStatus createStatus(int severity, String message, Throwable exception) {
+		return new Status(severity, PLUGIN_ID, message, exception);
+	}
+
+	public static IStatus createStatus(int severity, String message) {
+		return createStatus(severity, message, null);
+	}
+	public static void logError(Throwable exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, exception.getMessage(), exception));
+	}
+
+	public static void logError(CoreException exception) {
+		Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( exception.getStatus() );
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/Trace.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/Trace.java
new file mode 100644
index 0000000..941d375
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/Trace.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *     
+ * API in these packages is provisional in this release
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+/**
+ * Helper class to route trace output.
+ */
+public class Trace {
+	public static final byte CONFIG = 0;
+	public static final byte INFO = 1;
+	public static final byte WARNING = 2;
+	public static final byte SEVERE = 3;
+	public static final byte FINEST = 4;
+	public static final byte FINER = 5;
+	public static final byte PERFORMANCE = 6;
+	public static final byte EXTENSION_POINT = 7;
+
+	private static final String[] levelNames = new String[] {
+		"CONFIG ", "INFO   ", "WARNING", "SEVERE ", "FINER  ", "FINEST ", "PERF   ", "EXTENSION"};
+
+	private static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy HH:mm.ss.SSS");
+
+	private static Set<String> logged = new HashSet<String>();
+
+	/**
+	 * Trace constructor comment.
+	 */
+	private Trace() {
+		super();
+	}
+
+	/**
+	 * Trace the given text.
+	 *
+	 * @param level a trace level
+	 * @param s a message
+	 */
+	public static void trace(byte level, String s) {
+		trace(level, s, null);
+	}
+
+	/**
+	 * Trace the given message and exception.
+	 *
+	 * @param level a trace level
+	 * @param s a message
+	 * @param t a throwable
+	 */
+	public static void trace(byte level, String s, Throwable t) {
+		if (s == null)
+			return;
+		
+		if (level == SEVERE) {
+			if (!logged.contains(s)) {
+				ModuleCoreUIPlugin.getInstance().getLog().log(
+						new Status(IStatus.ERROR, 
+								ModuleCoreUIPlugin.PLUGIN_ID, s, t));
+				logged.add(s);
+			}
+		}
+		
+		if (!ModuleCoreUIPlugin.getInstance().isDebugging())
+			return;
+		
+		StringBuffer sb = new StringBuffer(ModuleCoreUIPlugin.PLUGIN_ID);
+		sb.append(" ");
+		sb.append(levelNames[level]);
+		sb.append(" ");
+		sb.append(sdf.format(new Date()));
+		sb.append(" ");
+		sb.append(s);
+		System.out.println(sb.toString());
+		if (t != null)
+			t.printStackTrace();
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/AddFolderDialog.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/AddFolderDialog.java
new file mode 100644
index 0000000..2c93a37
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/AddFolderDialog.java
@@ -0,0 +1,151 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.common.componentcore.ui.Messages;
+
+@Deprecated
+public class AddFolderDialog extends TitleAreaDialog {
+	private IProject project;
+	private TreeViewer viewer;
+	private IContainer selected = null;
+	public AddFolderDialog(Shell parentShell, IProject project) {
+		super(parentShell);        
+        setShellStyle( getShellStyle() | SWT.RESIZE );
+		this.project = project;
+	}
+
+	protected void configureShell(Shell shell) {
+		super.configureShell(shell);
+		
+		shell.setBounds(shell.getLocation().x, shell.getLocation().y, 400,300);
+		
+	}
+	
+	protected Control createDialogArea(Composite parent) {
+		Composite c = (Composite)super.createDialogArea(parent);
+		parent.getShell().setText(Messages.AddFolder);
+		setTitle(Messages.AddFolder);
+	    setMessage(Messages.AddFolderMappings);
+	    //setTitleImage(  );
+		this.viewer = new TreeViewer(c, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+		viewer.setContentProvider(getContentProvider());
+		viewer.setLabelProvider(getLabelProvider());
+		viewer.addFilter(getFilter());
+		viewer.setInput(project);
+		viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
+		viewer.addSelectionChangedListener(getListener());
+		return c;
+	}
+	
+	protected ISelectionChangedListener getListener() {
+		return new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
+				Object first = sel.getFirstElement();
+				if( first instanceof IContainer) 
+					selected = (IContainer)first;
+			}
+		};
+	}
+	
+	public IContainer getSelected() {
+		return selected;
+	}
+	
+	protected ViewerFilter getFilter() {
+		return new ViewerFilter() {
+			public boolean select(Viewer viewer, Object parentElement,
+					Object element) {
+				return element instanceof IContainer;
+			}
+		};
+	}
+	
+	protected ITreeContentProvider getContentProvider() {
+		return new ITreeContentProvider() {
+			
+			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+			}
+			
+			public void dispose() {
+			}
+			
+			public Object[] getElements(Object inputElement) {
+				try {
+					return project.members();
+				} catch( CoreException ce ) {
+					return new Object[]{};
+				}
+			}
+			
+			public boolean hasChildren(Object element) {
+				if( element instanceof IContainer) {
+					try {
+						return ((IContainer)element).members().length > 0;
+					} catch( CoreException ce ) {
+					}
+				}
+				return false;
+			}
+			
+			public Object getParent(Object element) {
+				if( element instanceof IResource)
+					return ((IResource)element).getParent();
+				return null;
+			}
+			
+			public Object[] getChildren(Object parentElement) {
+				if( parentElement instanceof IContainer) {
+					try {
+						return ((IContainer)parentElement).members();
+					} catch( CoreException ce ) {
+					}
+				}
+				return new Object[]{};
+			}
+		};
+	}
+
+	protected LabelProvider getLabelProvider() {
+		return new LabelProvider() {
+			public Image getImage(Object element) {
+				return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
+			}
+			public String getText(Object element) {
+				if( element instanceof IResource)
+					return ((IResource)element).getName();
+				return element.toString();
+			}
+		};
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/ComponentDependencyContentProvider.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/ComponentDependencyContentProvider.java
new file mode 100644
index 0000000..d262603
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/ComponentDependencyContentProvider.java
@@ -0,0 +1,171 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.viewers.DecoratingLabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.propertypage.AddModuleDependenciesPropertiesPage;
+import org.eclipse.wst.common.componentcore.ui.propertypage.AddModuleDependenciesPropertiesPage.ComponentResourceProxy;
+
+
+/*
+ *  The only valid elements this content provider (should) provide
+ *  are IProject or IVirtualComponent objects. The runtime paths portion is 
+ *  shared with the preference page itself where they can both modify the data. 
+ * 
+ * This provider no longer "meddles" in to the content as it used to, 
+ * but rather serves as only a view of it. 
+ */
+public class ComponentDependencyContentProvider extends LabelProvider implements IStructuredContentProvider, ITableLabelProvider, ITreeContentProvider {
+	
+	final static String PATH_SEPARATOR = String.valueOf(IPath.SEPARATOR);
+	
+	private IVirtualComponent component;
+	private ArrayList<IVirtualReference> runtimePaths;
+	private ArrayList<ComponentResourceProxy> resourceMappings;
+	private DecoratingLabelProvider decProvider = new DecoratingLabelProvider(
+	                new WorkbenchLabelProvider(), PlatformUI.getWorkbench().
+	                 getDecoratorManager().getLabelDecorator());
+	private IVirtualComponentLabelProvider[] delegates;
+	public ComponentDependencyContentProvider(AddModuleDependenciesPropertiesPage addModuleDependenciesPropertiesPage) {
+		super();
+		decProvider.addListener(addModuleDependenciesPropertiesPage);
+		delegates = DependencyPageExtensionManager.loadDelegates();
+	}
+
+	public void setRuntimePaths(ArrayList<IVirtualReference> runtimePaths) {
+		this.runtimePaths = runtimePaths;
+	}
+
+	public void setResourceMappings(ArrayList<ComponentResourceProxy> mappings) {
+		this.resourceMappings = mappings;
+	}
+	
+	public Object[] getElements(Object inputElement) {
+		Object[] empty = new Object[0];
+		if( !(inputElement instanceof IWorkspaceRoot))
+			return empty;
+		ArrayList<Object> list = new ArrayList<Object>();
+		list.addAll(resourceMappings);
+		list.addAll(runtimePaths);
+		return list.toArray();
+	}
+	
+	public Image getColumnImage(Object element, int columnIndex) {
+		if( element instanceof ComponentResourceProxy) {
+			return ModuleCoreUIPlugin.getInstance().getImage("folder");
+		}
+		if (element instanceof IVirtualReference) {
+			if( columnIndex == AddModuleDependenciesPropertiesPage.SOURCE_COLUMN ){
+				return handleSourceImage(((IVirtualReference)element).getReferencedComponent());
+			} else if(columnIndex == AddModuleDependenciesPropertiesPage.DEPLOY_COLUMN){
+				return ModuleCoreUIPlugin.getInstance().getImage("jar_obj");
+			}
+		} 
+		if (element instanceof IProject){
+			return decProvider.getImage(element);
+		}
+		return null;
+	}
+
+	public String getColumnText(Object element, int columnIndex) {
+		if( element instanceof ComponentResourceProxy) {
+			if( columnIndex == AddModuleDependenciesPropertiesPage.SOURCE_COLUMN ) { 
+				return ((ComponentResourceProxy)element).source.toString();
+			} else if( columnIndex == AddModuleDependenciesPropertiesPage.DEPLOY_COLUMN ) {
+				if(((ComponentResourceProxy)element).runtimePath.isRoot())
+					return ((ComponentResourceProxy)element).runtimePath.toString();
+				else
+					return ((ComponentResourceProxy)element).runtimePath.makeRelative().toString();
+			}
+		}
+		if( element instanceof IVirtualReference) {
+			if (columnIndex == AddModuleDependenciesPropertiesPage.SOURCE_COLUMN) {
+				return handleSourceText(((IVirtualReference)element).getReferencedComponent());
+			} else if (columnIndex == AddModuleDependenciesPropertiesPage.DEPLOY_COLUMN) {
+				return new Path(AddModuleDependenciesPropertiesPage.getSafeRuntimePath((IVirtualReference)element)).makeRelative().toString();
+			} 
+		}
+		return null;
+	}
+
+	
+	private String handleSourceText(IVirtualComponent component) {
+		if( delegates != null ) {
+			for( int i = 0; i < delegates.length; i++ )
+				if( delegates[i].canHandle(component))
+					return delegates[i].getSourceText(component);
+		}
+		
+		// default impl
+		if( component.isBinary() ) {
+			IPath p = (IPath)component.getAdapter(IPath.class);			
+			return p == null ? component.getName() : p.toString();
+		}
+		return component.getProject().getName();
+	}
+
+	private Image handleSourceImage(IVirtualComponent component) {
+		if( delegates != null ) {
+			for( int i = 0; i < delegates.length; i++ )
+				if( delegates[i].canHandle(component))
+					return delegates[i].getSourceImage(component);
+		}
+		
+		// default impl
+		if(component.isBinary())
+			return ModuleCoreUIPlugin.getInstance().getImage("jar_obj");
+		else return decProvider.getImage(component.getProject());
+	}
+	
+	
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void setComponent(IVirtualComponent component) {
+		this.component = component;
+	}
+
+	public IVirtualComponent getComponent(){
+		return component;
+	}
+
+	public Object[] getChildren(Object parentElement) {
+		return null;
+	}
+
+	public Object getParent(Object element) {
+		return null;
+	}
+
+	public boolean hasChildren(Object element) {
+		return false;
+	}
+	
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/DependencyPageExtensionManager.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/DependencyPageExtensionManager.java
new file mode 100644
index 0000000..c05df3d
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/DependencyPageExtensionManager.java
@@ -0,0 +1,277 @@
+/******************************************************************************
+ * Copyright (c) 2010 Red Hat and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - added support for enablement expressions
+ ******************************************************************************/
+
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.expressions.EvaluationContext;
+import org.eclipse.core.expressions.EvaluationResult;
+import org.eclipse.core.expressions.Expression;
+import org.eclipse.core.expressions.ExpressionConverter;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.WizardFragment;
+import org.eclipse.wst.common.componentcore.ui.propertypage.IDependencyPageProvider;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+
+public class DependencyPageExtensionManager {
+	private static DependencyPageExtensionManager manager = null;
+	public static DependencyPageExtensionManager getManager() {
+		if( manager == null )
+			manager = new DependencyPageExtensionManager();
+		return manager;
+	}
+	
+	private HashMap<String, IDependencyPageProvider> providers = null;
+	
+	public IDependencyPageProvider getProvider(IFacetedProject project) {
+		if( providers == null )
+			loadProviders();
+		Iterator<IDependencyPageProvider> i = providers.values().iterator();
+		IDependencyPageProvider temp;
+		while(i.hasNext()) {
+			temp = i.next();
+			if( temp.canHandle(project))
+				return temp;
+		}
+		return null;
+	}
+	
+	private void loadProviders() {
+		HashMap<String, IDependencyPageProvider> temp = new HashMap<String, IDependencyPageProvider>();
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		IConfigurationElement[] cf = registry.getConfigurationElementsFor(
+				ModuleCoreUIPlugin.PLUGIN_ID, "moduleDependencyPropertyPage"); //$NON-NLS-1$
+		for( int i = 0; i < cf.length; i++ ) {
+			try {
+				temp.put(cf[i].getAttribute("id"),  //$NON-NLS-1$
+					(IDependencyPageProvider)cf[i].createExecutableExtension("class"));  //$NON-NLS-1$
+			} catch( CoreException ce ) 
+			{
+				ModuleCoreUIPlugin.log( ce );
+			}
+		}
+		providers = temp;
+	}
+	
+	public WizardFragment[] loadAllReferenceWizardFragments() {
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		IConfigurationElement[] cf = registry.getConfigurationElementsFor(
+				ModuleCoreUIPlugin.PLUGIN_ID, "referenceWizardFragment"); //$NON-NLS-1$
+		ArrayList<WizardFragment> list = new ArrayList<WizardFragment>();
+		for( int i = 0; i < cf.length; i++ ) {
+			try {
+				list.add((WizardFragment)cf[i].createExecutableExtension("class"));
+			} catch( CoreException ce) 
+			{
+				ModuleCoreUIPlugin.log( ce );
+			}
+		}
+		return list.toArray(new WizardFragment[list.size()]);
+	}
+	
+	public WizardFragment loadReferenceWizardFragment(String id) {
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		IConfigurationElement[] cf = registry.getConfigurationElementsFor(
+				ModuleCoreUIPlugin.PLUGIN_ID, "referenceWizardFragment"); //$NON-NLS-1$
+		for( int i = 0; i < cf.length; i++ ) {
+			if( cf[i].getAttribute("id").equals(id)) //$NON-NLS-1$
+				try {
+					return (WizardFragment)cf[i].createExecutableExtension("class"); //$NON-NLS-1$
+				} catch( CoreException ce) 
+				{
+					ModuleCoreUIPlugin.log( ce );
+				}
+		}
+		return null;
+	}
+	
+	public List<ReferenceExtension> getExposedReferenceExtensions() 
+	{
+		final List<ReferenceExtension> list = new ArrayList<ReferenceExtension>();
+		final Set<String> hidden = new HashSet<String>();
+		
+        for( ReferenceExtension ext : getAllReferenceExtensions() )
+        {
+            if( ext.isHidden() )
+            {
+				hidden.add( ext.getId() );
+			}
+		}
+		
+        for( ReferenceExtension ext : getAllReferenceExtensions() )
+        {
+            if( ! ext.isHidden() && ! hidden.contains( ext.getId() ) )
+            {
+                list.add( ext );
+            }
+		}
+		
+		return list;
+	}
+	
+	public List<ReferenceExtension> getAllReferenceExtensions() 
+	{
+		final ArrayList<ReferenceExtension> list = new ArrayList<ReferenceExtension>();
+		final IExtensionRegistry registry = Platform.getExtensionRegistry();
+		
+		for( IConfigurationElement cf : registry.getConfigurationElementsFor( ModuleCoreUIPlugin.PLUGIN_ID, "referenceWizardFragment" ) )
+		{
+			list.add( new ReferenceExtension( cf ) );
+		}
+
+		return list;
+	}
+	
+	public ReferenceExtension findReferenceExtension(String id) {
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		IConfigurationElement[] cf = registry.getConfigurationElementsFor(
+				ModuleCoreUIPlugin.PLUGIN_ID, "referenceWizardFragment"); //$NON-NLS-1$
+		ArrayList<ReferenceExtension> list = new ArrayList<ReferenceExtension>();
+		for( int i = 0; i < cf.length; i++ ) {
+			if(cf[i].getAttribute("id").equals(id)) //$NON-NLS-1$
+				return new ReferenceExtension(cf[i]);
+		}
+		return null;
+	}
+	
+	public class ReferenceExtension {
+		private IConfigurationElement element;
+		private String id, name, imageLoc;
+		private Image image;
+		private boolean hidden;
+		private Expression enablementExpression;
+		
+		public ReferenceExtension(IConfigurationElement element) 
+		{
+			this.element = element;
+			this.id = element.getAttribute("id"); //$NON-NLS-1$
+			this.name = element.getAttribute("name"); //$NON-NLS-1$
+			this.imageLoc = element.getAttribute("icon"); //$NON-NLS-1$
+			this.hidden = Boolean.parseBoolean(element.getAttribute("hidden")); //$NON-NLS-1$
+			
+			for( IConfigurationElement child : element.getChildren( "enablement" ) ) //$NON-NLS-1$
+			{
+	            try
+	            {
+	                this.enablementExpression = ExpressionConverter.getDefault().perform( child );
+	            }
+	            catch( CoreException e )
+	            {
+	            	ModuleCoreUIPlugin.log( e );
+	            }
+			}
+		}
+		
+		public String getId() { return this.id;}
+		public String getName() { return this.name; }
+		public boolean isHidden() { return this.hidden; }
+		
+		public boolean isApplicable( final IProject project )
+		{
+			if( this.enablementExpression != null )
+			{
+		        final EvaluationContext evalContext = new EvaluationContext( null, project );
+		        evalContext.setAllowPluginActivation( true );
+		        
+	            try
+	            {
+	                final EvaluationResult evalResult = this.enablementExpression.evaluate( evalContext );
+	                
+	                if( evalResult == EvaluationResult.FALSE )
+	                {
+	                    return false;
+	                }
+	            }
+	            catch( CoreException e )
+	            {
+	            	ModuleCoreUIPlugin.log( e );
+	            }
+			}
+			
+			return true;
+		}
+		
+		public Image getImage() { 
+			if( image == null ) {
+				if( imageLoc != null && element.getContributor().getName() != null) {
+					ImageDescriptor desc = AbstractUIPlugin.imageDescriptorFromPlugin(element.getContributor().getName(), imageLoc);
+					image = desc.createImage();
+				}
+			}
+			return image;
+		}
+		public void disposeImage() {
+			if( image != null ) {
+				image.dispose();
+				image = null;
+			}
+		}
+	}
+	
+	public static IVirtualComponentLabelProvider[] loadDelegates() {
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		IConfigurationElement[] cf = registry.getConfigurationElementsFor(
+				ModuleCoreUIPlugin.PLUGIN_ID, "virtualComponentLabelProvider"); //$NON-NLS-1$
+		List<IConfigurationElement> list = Arrays.asList(cf);
+		Comparator c = new Comparator<IConfigurationElement>() {
+			public int compare(IConfigurationElement o1,
+					IConfigurationElement o2) {
+				String o1String, o2String;
+				int o1int, o2int;
+				o1String=o1.getAttribute("weight");
+				o2String=o2.getAttribute("weight");
+				try {
+					o1int = Integer.parseInt(o1String);
+				} catch(NumberFormatException nfe ) {
+					o1int = 0;
+				}
+				try {
+					o2int = Integer.parseInt(o2String);
+				} catch(NumberFormatException nfe ) {
+					o2int = 0;
+				}
+				return o1int-o2int;
+			}
+		};
+		Collections.sort(list, c);
+		ArrayList<IVirtualComponentLabelProvider> retList = new ArrayList<IVirtualComponentLabelProvider>();
+		Iterator<IConfigurationElement> i = list.iterator();
+		while(i.hasNext()) {
+			try {
+				IConfigurationElement el = i.next();
+				String className = el.getAttribute("class");
+				retList.add((IVirtualComponentLabelProvider)el.createExecutableExtension("class"));
+			} catch( CoreException ce) {
+				ModuleCoreUIPlugin.log( ce );
+			}
+		}
+		return retList.toArray(new IVirtualComponentLabelProvider[retList.size()]);
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/FolderMappingWizardFragment.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/FolderMappingWizardFragment.java
new file mode 100644
index 0000000..e9b1306
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/FolderMappingWizardFragment.java
@@ -0,0 +1,215 @@
+/******************************************************************************
+ * Copyright (c) 2010 Red Hat and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - misc. UI cleanup
+ ******************************************************************************/
+
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage;
+
+
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.dialogs.IMessageProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
+import org.eclipse.wst.common.componentcore.ui.IModuleCoreUIContextIds;
+import org.eclipse.wst.common.componentcore.ui.Messages;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.IWizardHandle;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.WizardFragment;
+import org.eclipse.wst.common.componentcore.ui.propertypage.AddModuleDependenciesPropertiesPage.ComponentResourceProxy;
+import org.eclipse.wst.common.componentcore.ui.propertypage.IReferenceWizardConstants;
+
+public class FolderMappingWizardFragment extends WizardFragment {
+	private IProject project;
+	private TreeViewer viewer;
+	private IContainer selected = null;
+	protected IWizardHandle handle;
+
+	boolean isComplete = false;
+
+	public boolean isComplete() {
+		return isComplete;
+	}
+	
+	public boolean hasComposite() {
+		return true;
+	}
+
+	public Composite createComposite(Composite parent, IWizardHandle handle) {
+		this.handle = handle;
+		handle.setTitle(Messages.AddFolder);
+		handle.setDescription(Messages.AddFolderMappings);
+		handle.setImageDescriptor(IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/newfolder_wiz.png"));
+		project = (IProject)getTaskModel().getObject(IReferenceWizardConstants.PROJECT);		
+		Composite c = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		c.setLayout(layout);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IModuleCoreUIContextIds.DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_ADD_NEW_FOLDER_MAPPING_P1);
+		this.viewer = new TreeViewer(c, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+		viewer.setContentProvider(getContentProvider());
+		viewer.setLabelProvider(getLabelProvider());
+		viewer.addFilter(getFilter());
+		viewer.setInput(project);
+		viewer.addSelectionChangedListener(getListener());
+		GridData data = new GridData(GridData.FILL_BOTH);
+		data.widthHint = 390;
+		data.heightHint = 185;
+		viewer.getTree().setLayoutData(data);
+		return c;
+	}
+	
+	protected ISelectionChangedListener getListener() {
+		return new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
+				Object first = sel.getFirstElement();
+				if( first instanceof IContainer) {
+					selected = (IContainer)first;
+					String errorMessage=validateFolder();
+					if (errorMessage !=  null)
+						handle.setMessage(errorMessage,IMessageProvider.ERROR);
+					else
+						handle.setMessage(Messages.AddFolderMappings, IMessageProvider.NONE);
+					handle.update();
+				}
+			}
+		};
+	}
+	
+	protected String validateFolder() {
+		IContainer c = getSelected();
+		IPath p = c.getProjectRelativePath().makeAbsolute();					
+		ArrayList<Object> currentRefs = (ArrayList<Object>)getTaskModel().getObject(IReferenceWizardConstants.ALL_DIRECTIVES);
+		if (!currentRefs.isEmpty())
+			for (int j = 0; j < currentRefs.size(); j++) 
+			{
+				Object ref = currentRefs.get(j);
+				if (ref instanceof ComponentResourceProxy)
+				{					
+					ComponentResourceProxy folder = (ComponentResourceProxy) ref;
+					if (p.equals(folder.source)){						
+						isComplete=false;				
+						return NLS.bind(Messages.ExistingFolderError, folder.source); 						
+					}
+				}							
+			}	
+		isComplete = true;
+		return null;
+	}
+	
+	public IContainer getSelected() {
+		return selected;
+	}
+	
+	protected ViewerFilter getFilter() {
+		return new ViewerFilter() {			
+			public boolean select(Viewer viewer, Object parentElement,
+					Object element) {
+				if(element instanceof IContainer) {
+					IContainer container = (IContainer) element;
+					IPath path = container.getProjectRelativePath();
+					if(!ResourceMappingFilterExtensionRegistry.shouldFilter(path)){
+						return true;
+					}
+				}
+				return false;
+			}
+		};
+	}
+	
+	protected ITreeContentProvider getContentProvider() {
+		return new ITreeContentProvider() {
+			
+			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+			}
+			
+			public void dispose() {
+			}
+			
+			public Object[] getElements(Object inputElement) {
+				try {
+					return project.members();
+				} catch( CoreException ce ) {
+					return new Object[]{};
+				}
+			}
+			
+			public boolean hasChildren(Object element) {
+				if( element instanceof IContainer) {
+					try {
+						return ((IContainer)element).members().length > 0;
+					} catch( CoreException ce ) {
+					}
+				}
+				return false;
+			}
+			
+			public Object getParent(Object element) {
+				if( element instanceof IResource)
+					return ((IResource)element).getParent();
+				return null;
+			}
+			
+			public Object[] getChildren(Object parentElement) {
+				if( parentElement instanceof IContainer) {
+					try {
+						return ((IContainer)parentElement).members();
+					} catch( CoreException ce ) {
+					}
+				}
+				return new Object[]{};
+			}
+		};
+	}
+
+	protected LabelProvider getLabelProvider() {
+		return new LabelProvider() {
+			public Image getImage(Object element) {
+				return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
+			}
+			public String getText(Object element) {
+				if( element instanceof IResource)
+					return ((IResource)element).getName();
+				return element.toString();
+			}
+		};
+	}
+
+
+	public void performFinish(IProgressMonitor monitor) throws CoreException {
+		IContainer c = getSelected();
+		if( c != null ) {
+			IPath p = c.getProjectRelativePath().makeAbsolute();
+			ComponentResourceProxy proxy = new ComponentResourceProxy(p, new Path("/")); //$NON-NLS-1$
+			getTaskModel().putObject(IReferenceWizardConstants.FOLDER_MAPPING, proxy);
+		}
+	}	
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/IReferenceEditor.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/IReferenceEditor.java
new file mode 100644
index 0000000..eb00ab3
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/IReferenceEditor.java
@@ -0,0 +1,31 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage;
+
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+
+/**
+ * WizardFragments that are providing reference wizard extensions
+ * may also implement IReferenceEditor to show that this particular
+ * fragment may be able to edit components it has created. 
+ */
+public interface IReferenceEditor {
+	
+	/**
+	 * The wizard fragment that implements this interface 
+	 * and is able to edit the provided reference is expected 
+	 * to cache this reference at the time canEdit(etc) is called
+	 * 
+	 * @param vc
+	 * @return
+	 */
+	public boolean canEdit(IVirtualReference reference);
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/IVirtualComponentLabelProvider.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/IVirtualComponentLabelProvider.java
new file mode 100644
index 0000000..6007c03
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/IVirtualComponentLabelProvider.java
@@ -0,0 +1,43 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage;
+
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+
+public interface IVirtualComponentLabelProvider {
+	/**
+	 * Return whether this label provider can provide
+	 * UI elements for this component
+	 * @param component
+	 * @return
+	 */
+	public boolean canHandle(IVirtualComponent component);
+	
+	/**
+	 * Return a string representation for this component
+	 * @param component
+	 * @return
+	 */
+	public String getSourceText(IVirtualComponent component);
+	
+	/**
+	 * Return an image representing this component
+	 * @param component
+	 * @return
+	 */
+	public Image getSourceImage(IVirtualComponent component);
+	
+	/**
+	 * Clean up any images you created
+	 */
+	public void dispose();
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/NewReferenceRootWizardFragment.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/NewReferenceRootWizardFragment.java
new file mode 100644
index 0000000..676fce5
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/NewReferenceRootWizardFragment.java
@@ -0,0 +1,184 @@
+/******************************************************************************
+ * Copyright (c) 2010 Red Hat and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - misc. UI cleanup
+ ******************************************************************************/
+
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.IModuleCoreUIContextIds;
+import org.eclipse.wst.common.componentcore.ui.Messages;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.DependencyPageExtensionManager.ReferenceExtension;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.IWizardHandle;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.WizardFragment;
+
+public class NewReferenceRootWizardFragment extends WizardFragment {
+	protected Map<String, WizardFragment> fragmentMap = 
+		new HashMap<String, WizardFragment>();
+	private IWizardHandle wizard;
+	private TreeViewer viewer;
+	private List<ReferenceExtension> extensions = null;
+	public NewReferenceRootWizardFragment(List<ReferenceExtension> extensions) {
+		this.extensions = extensions;
+		if( this.extensions.size() == 0 )
+			setComplete(false);
+	}
+	
+	public boolean hasComposite() {
+		return true;
+	}
+
+	public Composite createComposite(Composite parent, final IWizardHandle wizard) {
+		this.wizard = wizard;
+		wizard.setTitle(Messages.NewReferenceTitle);
+		wizard.setDescription(Messages.NewReferenceDescription);
+		wizard.setImageDescriptor( AbstractUIPlugin.imageDescriptorFromPlugin( ModuleCoreUIPlugin.PLUGIN_ID, "icons/assembly-banner.png" ) );
+		Composite c = new Composite(parent, SWT.NONE);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IModuleCoreUIContextIds.DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_ADD_NEW_REFERENCE_P1);
+		c.setLayout(new GridLayout());
+		viewer = new TreeViewer(c, SWT.SINGLE | SWT.BORDER);
+		viewer.getTree().setLayoutData(new GridData( GridData.FILL_BOTH ));
+		viewer.setLabelProvider(getLabelProvider());
+		viewer.setContentProvider(getContentProvider());
+		viewer.setComparator( new ViewerComparator() );
+		viewer.setInput(ResourcesPlugin.getWorkspace());
+		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				viewerSelectionChanged();
+			}
+		});
+		viewer.addDoubleClickListener(new IDoubleClickListener() {
+			public void doubleClick(DoubleClickEvent event) {
+				advanceToNextPageOrFinish();
+			}
+		});
+		return c;
+	}
+
+	protected void viewerSelectionChanged() {
+		wizard.update();
+	}
+	
+	protected WizardFragment getWizardFragment(String extensionPointID) {
+		try {
+			WizardFragment fragment = fragmentMap.get(extensionPointID);
+			if (fragment != null)
+				return fragment;
+		} catch (Exception e) {
+			// ignore
+		}
+		
+		WizardFragment fragment = DependencyPageExtensionManager.getManager().loadReferenceWizardFragment(extensionPointID);
+		if (fragment != null)
+			fragmentMap.put(extensionPointID, fragment);
+		return fragment;
+	}
+
+	public List getChildFragments() {
+		List<WizardFragment> listImpl = new ArrayList<WizardFragment>();
+		createChildFragments(listImpl);
+		return listImpl;
+	}
+
+	protected void createChildFragments(List<WizardFragment> list) {
+		// Instantiate and add the fragment for the current ID
+		if( viewer != null ) {
+			IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
+			ReferenceExtension selected = (ReferenceExtension)sel.getFirstElement();
+			if( selected != null ) {
+				WizardFragment child = getWizardFragment(selected.getId());
+				if( child != null )
+					list.add(child);
+			}
+		}
+	}
+
+	public boolean isComplete() {
+		return true;
+	}
+
+	
+	private LabelProvider labelProvider = null;
+	private ITreeContentProvider contentProvider = null;
+	protected LabelProvider getLabelProvider() {
+		if( labelProvider == null ) {
+			labelProvider = new LabelProvider() {
+				public Image getImage(Object element) {
+					if( element instanceof ReferenceExtension)
+						return ((ReferenceExtension)element).getImage();
+					return null;
+				}
+				public String getText(Object element) {
+					if( element instanceof ReferenceExtension)
+						return ((ReferenceExtension)element).getName();
+					return element == null ? "" : element.toString();//$NON-NLS-1$
+				}
+			   public void dispose() {
+			    	super.dispose();
+			    	if( extensions != null ) {
+			    		for( ReferenceExtension ex : extensions )
+			    		{
+			    			ex.disposeImage();
+			    		}
+			    	}
+			    }
+			};
+		}
+		return labelProvider;
+	}
+	
+	protected ITreeContentProvider getContentProvider() {
+		if( contentProvider == null ) {
+			contentProvider = new ITreeContentProvider() {
+				public Object[] getElements(Object inputElement) {
+					return extensions.toArray();
+				}
+				public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+				}
+				public void dispose() {
+				}
+				public boolean hasChildren(Object element) {
+					return false;
+				}
+				public Object getParent(Object element) {
+					return null;
+				}
+				public Object[] getChildren(Object parentElement) {
+					return null;
+				}
+			};
+		}
+		return contentProvider;
+	}
+	
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/NewReferenceWizard.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/NewReferenceWizard.java
new file mode 100644
index 0000000..1a96473
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/NewReferenceWizard.java
@@ -0,0 +1,69 @@
+/******************************************************************************
+ * Copyright (c) 2010 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - misc. UI cleanup
+ ******************************************************************************/
+
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.Messages;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.DependencyPageExtensionManager.ReferenceExtension;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.TaskWizard;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.WizardFragment;
+import org.eclipse.wst.common.componentcore.ui.propertypage.IReferenceWizardConstants;
+
+public class NewReferenceWizard extends TaskWizard implements IReferenceWizardConstants {
+	private static final Object REFERENCE_FAMILY = new Object();
+	public NewReferenceWizard(List<ReferenceExtension> extensions) {
+		super(Messages.NewReferenceWizard, new RootWizardFragment(extensions));
+		setFinishJobFamily(REFERENCE_FAMILY);
+		getRootFragment().setTaskModel(getTaskModel());
+	}
+	protected static class RootWizardFragment extends WizardFragment {
+		private List<ReferenceExtension> extensions = null;
+		public RootWizardFragment(List<ReferenceExtension> extensions) {
+			this.extensions = extensions;
+		}
+
+		protected void createChildFragments(List<WizardFragment> list) {
+			IVirtualReference origRef = (IVirtualReference)getTaskModel().getObject(ORIGINAL_REFERENCE);
+			if( origRef == null )
+				list.add(new NewReferenceRootWizardFragment(extensions));
+			else {
+				WizardFragment fragment = getFirstEditingFragment(origRef);
+				if( fragment != null )
+					list.add(fragment);
+			}
+			if( list.size() == 0 )
+				setComplete(false);
+		}
+	}
+
+	public static WizardFragment getFirstEditingFragment(IVirtualReference reference) {
+		WizardFragment[] frags = DependencyPageExtensionManager.getManager().loadAllReferenceWizardFragments();
+		for( int i = 0; i < frags.length; i++ ) {
+			if( frags[i] instanceof IReferenceEditor ) {
+				if( ((IReferenceEditor)frags[i]).canEdit(reference)) {
+					// accept first one
+					return frags[i];
+				}
+			}
+		}
+		return null;
+	}
+	
+	public void init(IWorkbench newWorkbench, IStructuredSelection newSelection) {
+		// do nothing
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/ProjectReferenceWizardFragment.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/ProjectReferenceWizardFragment.java
new file mode 100644
index 0000000..ff38a4d
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/ProjectReferenceWizardFragment.java
@@ -0,0 +1,230 @@
+/******************************************************************************
+ * Copyright (c) 2010 Red Hat and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - misc. UI cleanup
+ ******************************************************************************/
+
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.ModuleCoreNature;
+import org.eclipse.wst.common.componentcore.internal.IModuleHandler;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualReference;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.IModuleCoreUIContextIds;
+import org.eclipse.wst.common.componentcore.ui.Messages;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.IWizardHandle;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.TaskWizardPage;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.WizardFragment;
+import org.eclipse.wst.common.componentcore.ui.propertypage.IReferenceWizardConstants;
+import org.eclipse.wst.common.componentcore.ui.propertypage.IReferenceWizardConstants.ProjectConverterOperationProvider;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+
+public class ProjectReferenceWizardFragment extends WizardFragment {
+	protected LabelProvider labelProvider = null;
+	protected ITreeContentProvider contentProvider = null;
+	protected TreeViewer viewer;
+	protected IProject[] selected;
+	
+	public ProjectReferenceWizardFragment() {
+		super();
+		setComplete(false);
+	}
+	public boolean hasComposite() {
+		return true;
+	}
+
+	public Composite createComposite(Composite parent, IWizardHandle handle) {
+		handle.setTitle(Messages.ProjectReferenceTitle);
+		handle.setDescription(Messages.ProjectReferenceDescription);
+		handle.setImageDescriptor(IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/newprj_wiz.png"));
+		
+		Composite c = new Composite(parent, SWT.NONE);
+		c.setLayout(new GridLayout());
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IModuleCoreUIContextIds.DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_ADD_NEW_PROJECT_REFERENCE_P1);
+		viewer = new TreeViewer(c, SWT.MULTI | SWT.BORDER);
+		viewer.setContentProvider(getContentProvider());
+		viewer.setLabelProvider(getLabelProvider());
+		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				selChanged();
+			}
+		});
+		viewer.addDoubleClickListener(new IDoubleClickListener() {
+			public void doubleClick(DoubleClickEvent event) {
+				advanceToNextPageOrFinish();
+			}
+		});
+		viewer.setInput(ResourcesPlugin.getWorkspace());
+		GridData data = new GridData(GridData.FILL_BOTH);
+		data.widthHint = 390;
+		data.heightHint = 185;
+		viewer.getTree().setLayoutData(data);
+		return c;
+	}
+	
+	protected void selChanged() {
+		if( viewer != null ) {
+			IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
+			if( sel != null ) {
+				List selectionList = sel.toList();
+				selected = (IProject[])selectionList.toArray(new IProject[selectionList.size()]);
+				if (selected.length != 0) setComplete(true);
+				else setComplete(false);
+			} else setComplete(false);
+		}
+		((TaskWizardPage)getPage()).update();
+	}
+	
+	public void performFinish(IProgressMonitor monitor) throws CoreException {
+		VirtualReference[] refs = new VirtualReference[selected.length];
+		String runtimeLoc = (String) getTaskModel().getObject(IReferenceWizardConstants.DEFAULT_LIBRARY_LOCATION);
+		ProjectConverterOperationProvider converter = (ProjectConverterOperationProvider)getTaskModel().getObject(IReferenceWizardConstants.PROJECT_CONVERTER_OPERATION_PROVIDER);
+		runtimeLoc = runtimeLoc != null ? runtimeLoc : "/"; //$NON-NLS-1$
+		for (int i = 0; i < selected.length; i++) {
+			IProject proj = selected[i];
+			
+			if( !ModuleCoreNature.isFlexibleProject(proj)) {
+				convertProject(selected[i], converter, monitor);
+			}
+			String path = null;
+			refs[i] = new VirtualReference(
+					(IVirtualComponent)getTaskModel().getObject(IReferenceWizardConstants.ROOT_COMPONENT), 
+					ComponentCore.createComponent(proj, false));
+			refs[i].setArchiveName(new Path(getArchiveName(proj, refs[i].getReferencedComponent())).lastSegment());
+			refs[i].setRuntimePath(new Path(runtimeLoc).makeAbsolute());
+		}
+		getTaskModel().putObject(IReferenceWizardConstants.FINAL_REFERENCE, refs);
+	}
+
+	protected void convertProject(IProject proj, ProjectConverterOperationProvider converter, IProgressMonitor monitor) {
+		if( converter != null ) {
+			IDataModelOperation operation = converter.getConversionOperation(proj);
+			if( operation != null ) {
+				try {
+					operation.execute(monitor, null);
+					return;
+				} catch( ExecutionException ee ) {
+					ModuleCoreUIPlugin.log(NLS.bind(Messages.ProjectConversionError, proj.getName()), ee);
+				}
+			}
+		} 
+		try {
+			if( !ModuleCoreNature.isFlexibleProject(proj)) {
+				ModuleCoreNature.addModuleCoreNatureIfNecessary(proj, monitor);
+				ProjectFacetsManager.create(proj, true, monitor);
+			}
+		} catch( CoreException ce) {
+			ModuleCoreUIPlugin.log(NLS.bind(Messages.ProjectConversionError, proj.getName()), ce);
+		}
+	}
+	
+	protected String getArchiveName(IProject proj, IVirtualComponent comp) {
+		return getModuleHandler().getArchiveName(proj,comp);
+	}
+
+	
+	protected IModuleHandler getModuleHandler() {
+		return (IModuleHandler)getTaskModel().getObject(IReferenceWizardConstants.MODULEHANDLER);
+	}
+
+	protected LabelProvider getLabelProvider() {
+		if( labelProvider == null ) {
+			labelProvider = new LabelProvider() {
+				public Image getImage(Object element) {
+					return PlatformUI.getWorkbench().getSharedImages().getImage(IDE.SharedImages.IMG_OBJ_PROJECT);
+				}
+				public String getText(Object element) {
+					if( element instanceof IProject )
+						return ((IProject)element).getName();
+					return element == null ? "" : element.toString();//$NON-NLS-1$
+				}
+			};
+		}
+		return labelProvider;
+	}
+	
+	protected ITreeContentProvider getContentProvider() {
+		if( contentProvider == null ) {
+			contentProvider = new ITreeContentProvider() {
+				public Object[] getElements(Object inputElement) {
+					IProject root = (IProject)getTaskModel().getObject(IReferenceWizardConstants.PROJECT);
+					IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+					ArrayList<IVirtualReference> currentRefs = (ArrayList<IVirtualReference>)getTaskModel().getObject(IReferenceWizardConstants.CURRENT_REFS);
+					ArrayList<IProject> availableList = getAvailableProjects(projects,currentRefs);
+					IVirtualComponent comp = (IVirtualComponent)getTaskModel().getObject(IReferenceWizardConstants.ROOT_COMPONENT);
+					List filtered = getModuleHandler().getFilteredProjectListForAdd(comp, availableList);
+					return filtered.toArray(new IProject[filtered.size()]);
+				}
+				private ArrayList<IProject> getAvailableProjects(IProject[] projects, ArrayList<IVirtualReference> currentRefs) {
+					if (currentRefs.isEmpty())
+						return new ArrayList<IProject>(Arrays.asList(projects));
+					ArrayList availProjects = new ArrayList();
+					for (int i = 0; i < projects.length; i++) {
+						IProject proj = projects[i];
+						boolean matches = false;
+						for (int j = 0; j < currentRefs.size() && !matches; j++) {
+							IVirtualReference ref = currentRefs.get(j);
+							if ((ref.getReferencedComponent().getProject().equals(proj)) || availProjects.contains(proj))
+								matches = true;
+						}
+						if( !matches )
+							availProjects.add(proj);
+					}
+					return availProjects;
+				}
+				public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+				}
+				public void dispose() {
+				}
+				public boolean hasChildren(Object element) {
+					return false;
+				}
+				public Object getParent(Object element) {
+					return null;
+				}
+				public Object[] getChildren(Object parentElement) {
+					return null;
+				}
+			};
+		}
+		return contentProvider;
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/ResourceMappingFilterExtensionRegistry.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/ResourceMappingFilterExtensionRegistry.java
new file mode 100644
index 0000000..9f4c316
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/ResourceMappingFilterExtensionRegistry.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.core.util.RegistryReader;
+
+public class ResourceMappingFilterExtensionRegistry extends RegistryReader {
+	
+	static final String EXTENSION_NAME = "resourceMappingFilter"; //$NON-NLS-1$
+	static final String RESOURCE_MAPPING = "resourceMapping"; //$NON-NLS-1$
+	static final String SOURCE_PATH = "source-path"; //$NON-NLS-1$	
+	private static ResourceMappingFilterExtensionRegistry instance = null;
+	private static HashMap<String, Pattern> resourceMappingFilters = null;
+	
+	
+	public ResourceMappingFilterExtensionRegistry() {
+		super(ModuleCoreUIPlugin.PLUGIN_ID, EXTENSION_NAME);
+	}
+	
+	public static ResourceMappingFilterExtensionRegistry getInstance() {
+		if( instance == null ) {
+			instance = new ResourceMappingFilterExtensionRegistry();
+			instance.readRegistry();
+		}
+		return instance;
+	}
+
+	@Override
+	public boolean readElement(IConfigurationElement element) {
+		if (!element.getName().equals(RESOURCE_MAPPING))
+			return false;
+		String sourcePath = element.getAttribute(SOURCE_PATH);
+		if(sourcePath != null)
+			addResourceMappingFilter(sourcePath);
+		return true;
+	}
+
+
+	private static void addResourceMappingFilter(String filterRegExp) {
+		if(resourceMappingFilters == null)
+			resourceMappingFilters = new HashMap<String, Pattern>();
+		if(filterRegExp != null) {
+			try {
+				Pattern pattern = Pattern.compile(filterRegExp);
+				resourceMappingFilters.put(filterRegExp, pattern);
+			} catch(PatternSyntaxException e) {
+				ModuleCoreUIPlugin.logError(e);
+			}
+		}
+	}
+	
+	
+	
+	public static boolean shouldFilter(IPath path) {
+		ResourceMappingFilterExtensionRegistry.getInstance();
+		if(path != null) {
+			String relativePath = path.makeRelative().toString();
+			for(Iterator iterator = resourceMappingFilters.values().iterator(); iterator.hasNext();) {
+				Pattern pattern = (Pattern) iterator.next();
+				Matcher matcher = pattern.matcher(relativePath);
+				if (matcher.matches()) {
+					return true;
+				} else {
+					Pattern childrenPattern = Pattern.compile(pattern.pattern()+"/.*"); //$NON-NLS-1$
+					matcher = childrenPattern.matcher(relativePath);
+					if (matcher.matches()) {
+						return true;
+					} 
+				}
+			}
+		}
+		return false;
+	}
+	
+	public static boolean shouldFilter(String path) {
+		if(path != null) {
+			return shouldFilter(new Path(path));
+		}
+		return false;
+	}
+	
+	public static String[] getResourceMappingFiltersRegularExpressions() {
+		return resourceMappingFilters.keySet().toArray(new String[resourceMappingFilters.keySet().size()]);
+	}
+	
+	public static Pattern[] getResourceMappingFiltersRelativePatterns() {
+		return resourceMappingFilters.values().toArray(new Pattern[resourceMappingFilters.values().size()]);
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/AbstractDeploymentAssemblyVerifier.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/AbstractDeploymentAssemblyVerifier.java
new file mode 100644
index 0000000..7cc4832
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/AbstractDeploymentAssemblyVerifier.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage.verifier;
+
+import org.eclipse.core.runtime.IStatus;
+
+/**
+ * All extenders of AbstractDeploymentAssemblyVerifier must implement the verify methods to perform any verification on the deployment assembly wizard page
+ *
+ */
+public abstract class AbstractDeploymentAssemblyVerifier implements IDeploymentAssemblyVerifier {
+
+	public abstract IStatus verify(DeploymentAssemblyVerifierData data);
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/DefaultDeploymentAssemblyVerifier.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/DefaultDeploymentAssemblyVerifier.java
new file mode 100644
index 0000000..1a158ee
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/DefaultDeploymentAssemblyVerifier.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage.verifier;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.common.componentcore.ui.Messages;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.ResourceMappingFilterExtensionRegistry;
+import org.eclipse.wst.common.componentcore.ui.propertypage.AddModuleDependenciesPropertiesPage.ComponentResourceProxy;
+
+/**
+ * This class does basic validation of the deployment assembly. It validates that 
+ * references to other components like projects and archives exists. It also validates that
+ * folder mappings exists in the project.  
+ * 
+ */
+
+public class DefaultDeploymentAssemblyVerifier extends AbstractDeploymentAssemblyVerifier {
+
+	@Override
+	public IStatus verify(DeploymentAssemblyVerifierData data) {
+		IStatus status = validateResourceMappings(data, null);
+		return validateMissingReferences(data, status);
+	}
+	
+	
+	protected IStatus validateResourceMappings(DeploymentAssemblyVerifierData data, IStatus existingStatus){
+		IStatus status = existingStatus!=null?existingStatus:Status.OK_STATUS;
+		ArrayList<ComponentResourceProxy> mappings = data.getResourceMappings();
+		if (mappings == null)
+			return status;		
+		int severity = Status.ERROR;
+		String msg = null;
+		IProject project = data.getComponent().getProject();
+		for (ComponentResourceProxy mapping:mappings){
+			if (ResourceMappingFilterExtensionRegistry.shouldFilter(mapping.source))
+				continue;  // Do not validate filtered entries
+			if (!project.exists(mapping.source)){
+				msg = NLS.bind(Messages.ErrorEntryNotFound, mapping.source); 
+				status = appendStatusMessage(status, msg, severity);
+			}
+		}
+		return status;
+		
+	}
+	
+	protected IStatus validateMissingReferences(DeploymentAssemblyVerifierData data, IStatus existingStatus) {
+		IStatus status = existingStatus!=null?existingStatus:Status.OK_STATUS;
+		ArrayList<IVirtualReference> references = data.getCurrentReferences();
+		if (references == null){
+			return status;
+		}
+		int severity = Status.ERROR;
+		String msg = null;
+		for (IVirtualReference reference:references){
+			if (!reference.getReferencedComponent().exists()){
+				String name;
+				if( reference.getReferencedComponent().isBinary() ) {
+					IVirtualComponent vc = reference.getReferencedComponent();
+					IPath p = (IPath)vc.getAdapter(IPath.class);
+					name= p == null ? vc.getName() : p.toString();
+				}
+				else {
+					name = reference.getReferencedComponent().getProject().getName();
+				}
+				msg = NLS.bind(Messages.ErrorEntryNotFound, name); 
+				status = appendStatusMessage(status, msg, severity);
+			}
+		}
+		return status;		
+	}
+	
+	private IStatus appendStatusMessage(IStatus existingStatus, String message, int severity) {
+        MultiStatus multiStatus;
+        IStatus newStatus = new Status(severity, ModuleCoreUIPlugin.PLUGIN_ID, message);
+		int newSeverity = severity;
+		if(existingStatus.getSeverity() > severity)
+			newSeverity = existingStatus.getSeverity();
+        if(existingStatus instanceof MultiStatus){
+            multiStatus = (MultiStatus)existingStatus;
+            multiStatus.merge(newStatus);
+        } else {
+        	if(!existingStatus.isMultiStatus() && existingStatus.isOK()) {
+        		return newStatus;
+        	}
+            IStatus [] children = new IStatus [] {existingStatus, newStatus};
+            multiStatus = new MultiStatus(ModuleCoreUIPlugin.PLUGIN_ID, newSeverity, children, null, null);
+        }
+        return multiStatus;
+    }
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/DeploymentAssemblyVerifierData.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/DeploymentAssemblyVerifierData.java
new file mode 100644
index 0000000..c183835
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/DeploymentAssemblyVerifierData.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage.verifier;
+
+import java.util.ArrayList;
+
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.propertypage.AddModuleDependenciesPropertiesPage.ComponentResourceProxy;
+import org.eclipse.wst.server.core.IRuntime;
+
+public class DeploymentAssemblyVerifierData {
+	
+	public DeploymentAssemblyVerifierData(IVirtualComponent component, IRuntime runtime, ArrayList<IVirtualReference> currentReferences,
+			ArrayList<ComponentResourceProxy> resourceMappings, boolean resourceMappingsChanged) {
+		super();
+		this.component = component;
+		this.runtime = runtime;
+		this.currentReferences = currentReferences;
+		this.resourceMappings = resourceMappings;
+		this.resourceMappingsChanged = resourceMappingsChanged;
+	}
+	private IVirtualComponent component;
+	private IRuntime runtime;
+	private ArrayList<IVirtualReference> currentReferences;
+	private ArrayList<ComponentResourceProxy> resourceMappings;
+	private boolean resourceMappingsChanged;
+	public IVirtualComponent getComponent() {
+		return component;
+	}
+	public void setComponent(IVirtualComponent component) {
+		this.component = component;
+	}
+	public IRuntime getRuntime() {
+		return runtime;
+	}
+	public void setRuntime(IRuntime runtime) {
+		this.runtime = runtime;
+	}
+	public ArrayList<IVirtualReference> getCurrentReferences() {
+		return currentReferences;
+	}
+	public void setCurrentReferences(ArrayList<IVirtualReference> currentReferences) {
+		this.currentReferences = currentReferences;
+	}
+	public ArrayList<ComponentResourceProxy> getResourceMappings() {
+		return resourceMappings;
+	}
+	public void setResourceMappings(ArrayList<ComponentResourceProxy> resourceMappings) {
+		this.resourceMappings = resourceMappings;
+	}
+	public boolean isResourceMappingsChanged() {
+		return resourceMappingsChanged;
+	}
+	public void setResourceMappingsChanged(boolean resourceMappingsChanged) {
+		this.resourceMappingsChanged = resourceMappingsChanged;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/DeploymentAssemblyVerifierHelper.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/DeploymentAssemblyVerifierHelper.java
new file mode 100644
index 0000000..aa1b6cd
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/DeploymentAssemblyVerifierHelper.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage.verifier;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.Messages;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.propertypage.AddModuleDependenciesPropertiesPage.ComponentResourceProxy;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.server.core.IRuntime;
+
+public class DeploymentAssemblyVerifierHelper {
+	
+	
+	/**
+	 * This method will use the facet framework to find all registered verifiers based on installed facets and runtimes.
+	 * All the verifiers will have an opportunity to verify and return status on the proposed component mappings
+	 * @param component
+	 * @param runtime
+	 * @param resourceMappingsChanged 
+	 * @param resourceMappings 
+	 * @param currentReferences 
+	 * @return IStatus
+	 */
+	public static IStatus verify(IVirtualComponent component,IRuntime runtime, ArrayList<IVirtualReference> currentReferences, ArrayList<ComponentResourceProxy> resourceMappings, boolean resourceMappingsChanged) {
+		IProject project = component.getProject();
+		
+		List verifiers = collectAllVerifiers(project,runtime);
+		if (verifiers.isEmpty()) return Status.OK_STATUS;
+		MultiStatus masterStatus = new MultiStatus(ModuleCoreUIPlugin.PLUGIN_ID, IStatus.OK, Messages.DeploymentAssemblyVerifierHelper_0,null); 
+		
+		for (int i = 0; i < verifiers.size(); i++) {
+			if (!(verifiers.get(i) instanceof IConfigurationElement))
+				continue;
+			IDeploymentAssemblyVerifier verifier = null;
+			try {
+				verifier = (IDeploymentAssemblyVerifier) ((IConfigurationElement) verifiers.get(i)).createExecutableExtension(VerifierRegistryReader.VERIFIER_CLASS);
+				DeploymentAssemblyVerifierData data = new DeploymentAssemblyVerifierData(component, runtime,currentReferences,resourceMappings,resourceMappingsChanged);
+				IStatus verifyStatus = verifier.verify(data);
+				if(verifyStatus != null && verifyStatus.isMultiStatus()) {
+					masterStatus.addAll(verifyStatus);
+				} else {
+					masterStatus.add(verifyStatus);
+				}
+			} catch (Exception e) {
+				ModuleCoreUIPlugin.log(e);
+				continue;
+			}
+			
+		}
+		return masterStatus;
+	}
+
+	/**
+	 * @param project
+	 * @param runtime
+	 * @return all verifiers by iterating through projects installed facets, and querying the registry
+	 */
+	public static List collectAllVerifiers(IProject project, IRuntime runtime) {
+		IFacetedProject fProj = null;
+		try {
+			fProj = ProjectFacetsManager.create(project);
+		} catch (CoreException e) {
+			ModuleCoreUIPlugin.log(e);
+			return Collections.EMPTY_LIST;
+		}
+		Set<IProjectFacetVersion> facets = fProj.getProjectFacets();
+		List verifiers = new ArrayList();
+		for (Iterator iterator = facets.iterator(); iterator.hasNext();) {
+			IProjectFacetVersion facet = (IProjectFacetVersion)iterator.next();
+			verifiers.addAll(VerifierRegistry.instance().getVerifierExtensions(facet.getProjectFacet().getId(), runtime));	
+		}
+		return verifiers;
+	}
+	
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/IDeploymentAssemblyVerifier.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/IDeploymentAssemblyVerifier.java
new file mode 100644
index 0000000..a3576b9
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/IDeploymentAssemblyVerifier.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage.verifier;
+
+import org.eclipse.core.runtime.IStatus;
+
+/**
+ * This interface is used to allow verifications from extending plugins registered by runtime targets and component type
+ * This interface in NOT meant to be implemented, but instead extend the abstract class AbstractDeploymentAssemblyVerifier
+ *
+ */
+public interface IDeploymentAssemblyVerifier {
+	/**
+	 * Validate the current state of the component resource and reference mappings
+	 * 
+	 * @param data - All of the relevant dialog properties/values is sent via a DeploymentAssemblyVerifierData object
+	 * @return IStatus indicating OK, Warning , or Error.  Warning text will display in the wizard dialog, but not prevent completion. 
+	 * Error status will prevent completion
+	 */
+	IStatus verify(DeploymentAssemblyVerifierData data);
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/VerifierRegistry.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/VerifierRegistry.java
new file mode 100644
index 0000000..ba74ba0
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/VerifierRegistry.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage.verifier;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.wst.server.core.IRuntime;
+
+public class VerifierRegistry {
+	/**
+	 *  
+	 */
+	private static VerifierRegistry INSTANCE;
+	private HashMap assemblyVerifierExtensions = new HashMap();
+
+	public VerifierRegistry() {
+		super();
+	}
+
+	/**
+	 * @param verifier
+	 * @param serverTargets
+	 * @param components
+	 */
+	protected void register(IConfigurationElement verifier, List serverTargets, List components) {
+		HashMap targetVerifiers;
+		for (Iterator iter = components.iterator(); iter.hasNext();) {
+			String compID = (String) iter.next();
+			for (Iterator iterator = serverTargets.iterator(); iterator.hasNext();) {
+				String runtimeID = (String) iterator.next();
+				targetVerifiers = getVerifierExtensions(compID);
+				getTargetVerifiers(targetVerifiers, runtimeID).add(verifier);
+			}
+		}
+	}
+
+	private List getVerifiers(String compID, String serverTarget) {
+		HashMap targetVerifiers = getVerifierExtensions(compID);
+		return getTargetVerifiers(targetVerifiers, serverTarget);
+	}
+
+	protected static VerifierRegistry instance() {
+		if (INSTANCE == null) {
+			INSTANCE = new VerifierRegistry();
+			readRegistry();
+		}
+		return INSTANCE;
+	}
+
+	/**
+	 *  
+	 */
+	private static void readRegistry() {
+		VerifierRegistryReader reader = new VerifierRegistryReader();
+		reader.readRegistry();
+	}
+
+	/**
+	 * @param targetVerifiers
+	 * @param serverTarget
+	 */
+	private List getTargetVerifiers(HashMap targetVerifiers, String serverTarget) {
+		if (targetVerifiers.get(serverTarget) == null)
+			targetVerifiers.put(serverTarget, new ArrayList());
+		return (List) targetVerifiers.get(serverTarget);
+	}
+
+	/**
+	 * @param compID
+	 * @return
+	 */
+	private HashMap getVerifierExtensions(String compID) {
+		if (getVerifierExtensions().get(compID) == null)
+			getVerifierExtensions().put(compID, new HashMap());
+		return (HashMap) getVerifierExtensions().get(compID);
+	}
+
+	/**
+	 * @return Returns the verifierExtensions.
+	 */
+	private HashMap getVerifierExtensions() {
+		return assemblyVerifierExtensions;
+	}
+
+	/**
+	 * @param facetTypeID
+	 * @param runtime
+	 * @return List of IConfigurationElements representing instances of IDeploymentAssemblyVerifier
+	 */
+	public List getVerifierExtensions(String facetTypeID, IRuntime runtime) {
+		// Identifier used by verifiers that will run for any runtime
+		String allRuntimes = "org.eclipse.wst.common.modulecore.ui.deploymentAssemblyVerifier.anyruntime"; //$NON-NLS-1$
+		String runtimeID = null;
+		if (runtime == null)
+			runtimeID = "None"; //$NON-NLS-1$
+		else
+			runtimeID = runtime.getRuntimeType().getId();
+		// Get the verifiers specific for the target runtime
+		List verifiers = getVerifiers(facetTypeID, runtimeID);		
+		if (verifiers == null)
+			verifiers = Collections.EMPTY_LIST;
+		// Get the verifiers for any runtime
+		List genericVerifiers = getVerifiers(facetTypeID, allRuntimes);
+		if (genericVerifiers == null)
+			genericVerifiers = Collections.EMPTY_LIST;
+		// Merge both verifiers into one list and return
+		List result = new ArrayList(verifiers);
+		result.addAll(genericVerifiers);
+		return result;
+	}
+
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/VerifierRegistryReader.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/VerifierRegistryReader.java
new file mode 100644
index 0000000..0a454d3
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/verifier/VerifierRegistryReader.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.common.componentcore.ui.internal.propertypage.verifier;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.core.util.RegistryReader;
+
+
+public class VerifierRegistryReader extends RegistryReader {
+	/**
+	 * @param registry
+	 * @param plugin
+	 * @param extensionPoint
+	 */
+	static final String ASSEMBLY_VERIFIER_EXTENSION_POINT = "deploymentAssemblyVerifier"; //$NON-NLS-1$
+	static final String TARGET_SERVER_RUNTIME_ID = "runtime_server_id"; //$NON-NLS-1$
+	static final String RUNTIME = "runtime"; //$NON-NLS-1$
+	static final String VERIFIER = "verifier"; //$NON-NLS-1$
+	public static final String VERIFIER_CLASS = "class"; //$NON-NLS-1$
+	static final String COMPONENT_TYPE_ID = "component_type"; //$NON-NLS-1$
+	static final String COMPONENT = "component"; //$NON-NLS-1$
+
+	public VerifierRegistryReader() {
+		super(ModuleCoreUIPlugin.PLUGIN_ID, ASSEMBLY_VERIFIER_EXTENSION_POINT);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.frameworks.internal.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+	 */
+	@Override
+	public boolean readElement(IConfigurationElement element) {
+		if (!element.getName().equals(VERIFIER))
+			return false;
+		List runtimeList = new ArrayList();
+		List comps = new ArrayList();
+		IConfigurationElement[] runtimes = element.getChildren(RUNTIME);
+		for (int i = 0; i < runtimes.length; i++) {
+			IConfigurationElement runtime = runtimes[i];
+			String serverTarget = runtime.getAttribute(TARGET_SERVER_RUNTIME_ID);
+			runtimeList.add(serverTarget);
+		}
+		IConfigurationElement[] components = element.getChildren(COMPONENT);
+		for (int i = 0; i < components.length; i++) {
+			IConfigurationElement component = components[i];
+			String compType = component.getAttribute(COMPONENT_TYPE_ID);
+			comps.add(compType);
+		}
+
+		String deployer = element.getAttribute(VERIFIER_CLASS);
+		if (deployer != null) {
+			VerifierRegistry.instance().register(element, runtimeList, comps);
+			return true;
+		}
+		return false;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/IWizardHandle.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/IWizardHandle.java
new file mode 100644
index 0000000..58f763d
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/IWizardHandle.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.taskwizard;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.dialogs.IMessageProvider;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.resource.ImageDescriptor;
+/**
+ * A wizard handle.
+ * 
+ * @since 1.0
+ */
+public interface IWizardHandle extends IMessageProvider {
+	/**
+	 * Updates the wizard error messages and buttons.
+	 */
+	public void update();
+
+	/**
+	 * Sets the title of this wizard page.
+	 *  
+	 * @param title the title of the wizard page
+	 */
+	public void setTitle(String title);
+
+	/**
+	 * The page's description.
+	 * 
+	 * @param desc the page's description
+	 */
+	public void setDescription(String desc);
+
+	/**
+	 * The page's image descriptor.
+	 * 
+	 * @param image the page's image descriptor
+	 */
+	public void setImageDescriptor(ImageDescriptor image);
+
+	/**
+	 * Set an error or warning message.
+	 * 
+	 * @param newMessage the new message
+	 * @param newType the new type, from IStatus
+	 */
+	public void setMessage(String newMessage, int newType);
+
+	/**
+	 * Execute a runnable within the context of the wizard. This will typically
+	 * disable the wizard while the runnable is running, and provide a progress
+	 * monitor for the user.  
+	 * 
+	 * @param fork true if a separate thread should be used
+	 * @param cancelable true if it should be cancelable
+	 * @param runnable the runnable
+	 * @throws InterruptedException thrown if it is interrupted
+	 * @throws InvocationTargetException thrown if there is an error
+	 */
+	public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InterruptedException, InvocationTargetException;
+	
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/TaskWizard.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/TaskWizard.java
new file mode 100644
index 0000000..78a2410
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/TaskWizard.java
@@ -0,0 +1,587 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.taskwizard;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.jface.wizard.IWizardContainer;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.wst.common.componentcore.internal.impl.TaskModel;
+import org.eclipse.wst.common.componentcore.ui.Messages;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.Trace;
+
+
+
+/**
+ * A wizard used to execute tasks.
+ */
+public class TaskWizard implements IWizard {
+	private static final byte FINISH = 2;
+	private static final byte CANCEL = 3;
+
+	private List<IWizardPage> pages;
+	private boolean addingPages;
+	private Map<WizardFragment, TaskWizardPage> fragmentData = new HashMap<WizardFragment, TaskWizardPage>();
+	protected TaskModel taskModel;
+	
+	private IWizardContainer container = null;
+	
+	private boolean needsProgressMonitor = false;
+	
+	private boolean forcePreviousAndNextButtons = false;
+
+	private boolean isHelpAvailable = false;
+	
+	private Image defaultImage = null;
+	
+	private RGB titleBarColor = null;
+
+	private String windowTitle = null;
+	
+	private IDialogSettings dialogSettings = null;
+	
+	private WizardFragment rootFragment;
+	private WizardFragment currentFragment;
+	private Object finishFamily;
+	
+	/**
+	 * Create a new TaskWizard with the given title and root fragment.
+	 * 
+	 * @param title a title
+	 * @param rootFragment a root fragment
+	 */
+	public TaskWizard(String title, WizardFragment rootFragment) {
+		this(title, rootFragment, null);
+		setWindowTitle(title);
+	}
+
+	/**
+	 * Create a new TaskWizard with the given title, root fragment, and task model.
+	 * 
+	 * @param title a title
+	 * @param rootFragment a root fragment
+	 * @param taskModel a task model
+	 */
+	public TaskWizard(String title, WizardFragment rootFragment, TaskModel taskModel) {
+		super();
+		if (title != null)
+			setWindowTitle(title);
+		this.rootFragment = rootFragment;
+		this.taskModel = taskModel;
+		if (taskModel == null)
+			this.taskModel = new TaskModel();
+		
+		setNeedsProgressMonitor(true);
+		setForcePreviousAndNextButtons(true);
+	}
+
+	public void setTaskModel(TaskModel taskModel) {
+		this.taskModel = taskModel;
+	}
+	
+	public TaskModel getTaskModel() {
+		return taskModel;
+	}
+
+	public void setRootFragment(WizardFragment rootFragment) {
+		this.rootFragment = rootFragment;
+	}
+	
+	public WizardFragment getRootFragment() {
+		return rootFragment;
+	}
+
+	/**
+	 * Cancel the client selection.
+	 *
+	 * @return boolean
+	 */
+	public boolean performCancel() {
+		final List list = getAllWizardFragments();
+		IRunnableWithProgress runnable = new IRunnableWithProgress() {
+			public void run(IProgressMonitor monitor) throws InvocationTargetException {
+				try {
+					Iterator iterator = list.iterator();
+					while (iterator.hasNext())
+						executeTask((WizardFragment) iterator.next(), CANCEL, monitor);
+				} catch (CoreException ce) {
+					throw new InvocationTargetException(ce);
+				}
+			}
+		};
+		
+		Throwable t = null;
+		try {
+			if (getContainer() != null)
+				getContainer().run(true, true, runnable);
+			else
+				runnable.run(new NullProgressMonitor());
+			return true;
+		} catch (InvocationTargetException te) {
+			t = te.getCause();
+		} catch (Exception e) {
+			t = e;
+		}
+		Trace.trace(Trace.SEVERE, "Error cancelling task wizard", t);
+		handleThrowable(t);
+		return false;
+		
+	}
+
+	public boolean performFinish() {
+		if (currentFragment != null)
+			currentFragment.exit();
+		
+		final WizardFragment cFragment = currentFragment;
+
+		final List list = getAllWizardFragments();
+		IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
+			public void run(IProgressMonitor monitor) throws CoreException {
+				// enter & exit the remaining pages
+				int index = list.indexOf(cFragment);
+				while (index > 0 && index < list.size() - 1) {
+					final WizardFragment fragment = (WizardFragment) list.get(++index);
+					try {
+						Display.getDefault().syncExec(new Runnable() {
+							public void run() {
+								fragment.enter();
+								fragment.exit();
+							}
+						});
+					} catch (Exception e) {
+						Trace.trace(Trace.WARNING, "Could not enter/exit page", e);
+					}
+				}
+				
+				if (useJob()) {
+					class FinishWizardJob extends Job {
+						public FinishWizardJob() {
+							super(getJobTitle());
+						}
+						
+						public boolean belongsTo(Object family) {
+							return (getFinishJobFamily() == null && family == null ) 
+							|| (getFinishJobFamily() != null && getFinishJobFamily().equals(family));
+						}
+
+						public IStatus run(IProgressMonitor monitor2) {
+							try {
+								Iterator iterator = list.iterator();
+								while (iterator.hasNext())
+									executeTask((WizardFragment) iterator.next(), FINISH, monitor2);
+							} catch (CoreException ce) {
+								Trace.trace(Trace.SEVERE, "Error finishing wizard job", ce);
+								return new Status(IStatus.ERROR, ModuleCoreUIPlugin.PLUGIN_ID, 0, ce.getLocalizedMessage(), null);
+							}
+							return Status.OK_STATUS;
+						}
+					}
+					
+					FinishWizardJob job = new FinishWizardJob();
+					job.setUser(true);
+					job.schedule();
+				} else {
+					Iterator iterator = list.iterator();
+					while (iterator.hasNext())
+						executeTask((WizardFragment) iterator.next(), FINISH, monitor);
+				}
+			}
+		};
+		
+		Throwable t = null;
+		try {
+			if (getContainer() != null)
+				getContainer().run(true, true, new WorkspaceRunnableAdapter(runnable));
+			else
+				runnable.run(new NullProgressMonitor());
+			return true;
+		} catch (InvocationTargetException te) {
+			Trace.trace(Trace.SEVERE, "Error finishing task wizard", te);
+			t = te.getCause();
+		} catch (Exception e) {
+			Trace.trace(Trace.SEVERE, "Error finishing task wizard 2", e);
+			t = e;
+		}
+		
+		// TODO: show better error dialog, e.g. when Tomcat config is corrupt while doing Add/Remove
+		// it currently displays the error message twice
+		Trace.trace(Trace.WARNING, "Error completing wizard", t);
+		handleThrowable(t);
+		
+		return false;
+	}
+	
+	public Object getFinishJobFamily() {
+		return finishFamily;
+	}
+	
+	public void setFinishJobFamily(Object o) {
+		this.finishFamily = o;
+	}
+	
+	public void addPage(IWizardPage page) {
+		pages.add(page);
+		page.setWizard(this);
+	}
+	
+	protected void executeTask(WizardFragment fragment, byte type, IProgressMonitor monitor) throws CoreException {
+		if (fragment == null)
+			return;
+		
+		if (type == FINISH)
+			fragment.performFinish(monitor);
+		else if (type == CANCEL)
+			fragment.performCancel(monitor);
+	}
+	
+	protected WizardFragment getCurrentWizardFragment() {
+		return currentFragment;
+	}
+	
+	protected void switchWizardFragment(WizardFragment newFragment) {
+		List list = getAllWizardFragments();
+		int oldIndex = list.indexOf(currentFragment);
+		int newIndex = list.indexOf(newFragment);
+		if (oldIndex == newIndex)
+			return;
+		
+		//safeExecuteTask(currentFragment, DEPARTURE);
+		if (currentFragment != null)
+			currentFragment.exit();
+		
+		if (oldIndex < newIndex)
+			oldIndex ++;
+		else
+			oldIndex --;
+		
+		while (oldIndex != newIndex) {
+			WizardFragment fragment = (WizardFragment) list.get(oldIndex);
+			//safeExecuteTask(fragment, ARRIVAL);
+			//safeExecuteTask(fragment, DEPARTURE);
+			fragment.enter();
+			fragment.exit();
+			if (oldIndex < newIndex)
+				oldIndex ++;
+			else
+				oldIndex --;
+		}
+		
+		currentFragment = newFragment;
+		//safeExecuteTask(currentFragment, ARRIVAL);
+		currentFragment.enter();
+	}
+	
+	private List<WizardFragment> getAllWizardFragments() {
+		List<WizardFragment> list = new ArrayList<WizardFragment>();
+		list.add(rootFragment);
+		addSubWizardFragments(rootFragment, list);
+		
+		Iterator iterator = list.iterator();
+		while (iterator.hasNext()) {
+			WizardFragment fragment = (WizardFragment) iterator.next();
+			if (!taskModel.equals(fragment.getTaskModel()))
+				fragment.setTaskModel(taskModel);
+		}
+		return list;
+	}
+
+	private void addSubWizardFragments(WizardFragment fragment, List<WizardFragment> list) {
+		Iterator iterator = fragment.getChildFragments().iterator();
+		while (iterator.hasNext()) {
+			WizardFragment child = (WizardFragment) iterator.next();
+			list.add(child);
+			addSubWizardFragments(child, list);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#addPages()
+	 */
+	public void addPages() {
+		if (addingPages)
+			return;
+		
+		try {
+			addingPages = true;
+			pages = new ArrayList<IWizardPage>();
+			Iterator<WizardFragment> iterator = getAllWizardFragments().iterator();
+			while (iterator.hasNext()) {
+				WizardFragment fragment = iterator.next();
+				TaskWizardPage page = getFragmentData(fragment);
+				if (fragment.hasComposite()) {
+					if (page != null)
+						addPage(page);
+					else {
+						TaskWizardPage page2 = new TaskWizardPage(fragment);
+						fragmentData.put(fragment, page2);
+						addPage(page2);
+					}
+				}
+			}
+		} catch (Exception e) {
+			Trace.trace(Trace.SEVERE, "Error adding fragments to wizard", e);
+		} finally {
+			addingPages = false;
+		}
+	}
+
+	/*private static void updateWizardPages() {
+		try {
+			current.updatePages();
+			current.getContainer().updateButtons();
+		} catch (Exception e) {
+			Trace.trace(Trace.SEVERE, "Error updating wizard pages", e);
+		}
+	}*/
+
+	private TaskWizardPage getFragmentData(WizardFragment fragment) {
+		try {
+			TaskWizardPage page = fragmentData.get(fragment);
+			if (page != null)
+				return page;
+		} catch (Exception e) {
+			Trace.trace(Trace.SEVERE, "Error getting fragment data", e);
+		}
+		
+		return null;
+	}
+
+	protected void updatePages() {
+		addPages();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#canFinish()
+	 */
+	public boolean canFinish() {
+		// Default implementation is to check if all pages are complete.
+		for (int i= 0; i < pages.size(); i++) {
+			if (!(pages.get(i)).isPageComplete())
+				return false;
+		}
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#createPageControls(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createPageControls(Composite pageContainer) {
+		// the default behavior is to create all the pages controls
+		for (int i = 0; i < pages.size(); i++){
+			IWizardPage page = pages.get(i);
+			page.createControl(pageContainer);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#dispose()
+	 */
+	public void dispose() {
+		// notify pages
+		for (int i = 0; i < pages.size(); i++) {
+			pages.get(i).dispose();
+		}
+
+		// dispose of image
+		if (defaultImage != null) {
+			defaultImage.dispose();
+			defaultImage = null;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getContainer()
+	 */
+	public IWizardContainer getContainer() {
+		return container;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getDefaultPageImage()
+	 */
+	public Image getDefaultPageImage() {
+		return defaultImage;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getDialogSettings()
+	 */
+	public IDialogSettings getDialogSettings() {
+		return dialogSettings;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getNextPage(org.eclipse.jface.wizard.IWizardPage)
+	 */
+	public IWizardPage getNextPage(IWizardPage page) {
+		int index = pages.indexOf(page);
+		if (index == pages.size() - 1 || index == -1)
+			// last page or page not found
+			return null;
+		
+		return pages.get(index + 1);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getPage(java.lang.String)
+	 */
+	public IWizardPage getPage(String name) {
+		for (int i= 0; i < pages.size(); i++) {
+			IWizardPage page = pages.get(i);
+			String pageName = page.getName();
+			if (pageName.equals(name))
+				return page;
+		}
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getPageCount()
+	 */
+	public int getPageCount() {
+		return pages.size();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getPages()
+	 */
+	public IWizardPage[] getPages() {
+		return pages.toArray(new IWizardPage[pages.size()]);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getPreviousPage(org.eclipse.jface.wizard.IWizardPage)
+	 */
+	public IWizardPage getPreviousPage(IWizardPage page) {
+		int index = pages.indexOf(page);
+		if (index == 0 || index == -1)
+			// first page or page not found
+			return null;
+		return pages.get(index - 1);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getStartingPage()
+	 */
+	public IWizardPage getStartingPage() {
+		if (pages.size() == 0)
+			return null;
+		
+		return pages.get(0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getTitleBarColor()
+	 */
+	public RGB getTitleBarColor() {
+		return titleBarColor;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#getWindowTitle()
+	 */
+	public String getWindowTitle() {
+		return windowTitle;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#isHelpAvailable()
+	 */
+	public boolean isHelpAvailable() {
+		return isHelpAvailable;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#needsPreviousAndNextButtons()
+	 */
+	public boolean needsPreviousAndNextButtons() {
+		return forcePreviousAndNextButtons || pages.size() > 1;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#needsProgressMonitor()
+	 */
+	public boolean needsProgressMonitor() {
+		return needsProgressMonitor;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.IWizard#setContainer(org.eclipse.jface.wizard.IWizardContainer)
+	 */
+	public void setContainer(IWizardContainer wizardContainer) {
+		this.container = wizardContainer;
+	}
+	
+	public void setDialogSettings(IDialogSettings settings) {
+		dialogSettings = settings;
+	}
+	
+	public void setNeedsProgressMonitor(boolean b) {
+		needsProgressMonitor = b;
+	}
+	
+	public void setForcePreviousAndNextButtons(boolean b) {
+		forcePreviousAndNextButtons = b;
+	}
+	
+	public void setWindowTitle(String title) {
+		windowTitle = title;
+	}
+
+	protected boolean useJob() {
+		return false;
+	}
+
+	protected String getJobTitle() {
+		return getWindowTitle();
+	}
+	
+	private void handleThrowable(final Throwable t) {
+		Display display = Display.getCurrent();
+		if (display == null)
+			display = Display.getDefault();
+		final Shell shell = display.getActiveShell();
+		final String message = t.getLocalizedMessage();
+		final IStatus status = (t instanceof CoreException) ? ((CoreException)t).getStatus() : null;
+		
+		Display.getDefault().asyncExec(new Runnable() {
+			public void run() {
+				if( status == null )
+					MessageDialog.openError(shell, Messages.WizardError, message);
+				else
+					ErrorDialog.openError(shell, Messages.WizardError, message, status);
+			}
+		});
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/TaskWizardPage.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/TaskWizardPage.java
new file mode 100644
index 0000000..ded4661
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/TaskWizardPage.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.taskwizard;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.dialogs.IMessageProvider;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.wizard.IWizardContainer;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.wst.common.componentcore.ui.Trace;
+
+/**
+ * A task wizard page.
+ */
+public class TaskWizardPage extends WizardPage implements IWizardHandle {
+	protected WizardFragment fragment;
+
+	protected boolean isCreated = false;
+
+	public TaskWizardPage(WizardFragment fragment) {
+		super(fragment.toString());
+		this.fragment = fragment;
+	}
+
+	public void createControl(Composite parentComp) {
+		Composite comp = null;
+		try {
+			fragment.setPage(this);
+			comp = fragment.createComposite(parentComp, this);
+		} catch (Exception e) {
+			Trace.trace(Trace.WARNING, "Could not create wizard page composite", e);
+		}
+		if (comp == null) {
+			comp = new Composite(parentComp, SWT.NONE);
+			comp.setLayout(new FillLayout(SWT.VERTICAL));
+			Label label = new Label(comp, SWT.NONE);
+			label.setText("Internal error");
+		}
+		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+		data.widthHint = convertHorizontalDLUsToPixels(150);
+		comp.setLayoutData(data);
+		setControl(comp);
+		
+		isCreated = true;
+		update();
+	}
+
+	public boolean isPageComplete() {
+		try {
+			if (!fragment.isComplete())
+				return false;
+		} catch (Exception e) {
+			return false;
+		}
+		return true;
+	}
+
+	public boolean canFlipToNextPage() {
+		if (getNextPage() == null)
+			return false;
+		try {
+			if (!fragment.isComplete())
+				return false;
+		} catch (Exception e) {
+			return false;
+		}
+		return true;
+	}
+
+	public void setVisible(boolean visible) {
+		super.setVisible(visible);
+		
+		if (visible) {
+			TaskWizard wizard = (TaskWizard) getWizard();
+			wizard.switchWizardFragment(fragment);
+			
+			if (getContainer().getCurrentPage() != null)
+				getContainer().updateButtons();
+		}
+	}
+
+	public void setMessage(String message, int type) {
+		if (type == IMessageProvider.ERROR && "".equals(message)) {
+			message = null;
+		}
+		super.setMessage(message, type);
+		WizardFragment frag = ((TaskWizard) getWizard()).getCurrentWizardFragment();
+		if (!fragment.equals(frag))
+			return;
+		getContainer().updateButtons();
+	}
+
+	public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InterruptedException, InvocationTargetException {
+		getWizard().getContainer().run(fork, cancelable, runnable);
+	}
+
+	public void update() {
+		if (!isCreated)
+			return;
+		
+		final IWizardContainer container = getContainer();
+		getShell().getDisplay().syncExec(new Runnable() {
+			public void run() {
+				fragment.updateChildFragments();
+				((TaskWizard) getWizard()).updatePages();
+				
+				if (container.getCurrentPage() != null)
+					container.updateButtons();
+			}
+		});
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/WizardFragment.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/WizardFragment.java
new file mode 100644
index 0000000..e7c9635
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/WizardFragment.java
@@ -0,0 +1,244 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.taskwizard;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.wst.common.componentcore.internal.impl.TaskModel;
+
+/**
+ * A wizard fragment is a node within a wizard that provides a completely
+ * extendable wizard flow by supporting a flexible tree structure for the
+ * pages. As the user walks pages through the wizard, they are actually
+ * traversing the nodes of a tree, and each node can add or remove children
+ * at any time.
+ * 
+ * Each node may be non-UI (useful for injecting behaviour into the tree)
+ * or contain a single wizard page (@see hasComposite() and
+ * createComposite(Composite, IWizardHandle)). The node may also have
+ * children (@see getChildFragments(), which should be updated or refreshed
+ * whenever the updateChildFragments() method is called by another node to
+ * let this node know that it's state may have changed.
+ * 
+ * This implementation uses a createChildFragments() method to allow the
+ * fragment to add it's children into the tree. Note that this method may
+ * be called multiple times as the tree is updated and it must return the
+ * same instance of any children that have previously been returned.
+ * 
+ * @since 1.0
+ */
+public abstract class WizardFragment {
+	private TaskWizardPage page;
+	private TaskModel taskModel;
+	private boolean isComplete = true;
+	private List<WizardFragment> listImpl;
+
+	/**
+	 * Returns <code>true</code> if this fragment has an associated UI,
+	 * and <code>false</code> otherwise.
+	 * 
+	 * @return true if the fragment has a composite
+	 */
+	public boolean hasComposite() {
+		return false;
+	}
+
+	/**
+	 * Creates the composite associated with this fragment.
+	 * This method is only called when hasComposite() returns true.
+	 * 
+	 * @param parent a parent composite
+	 * @param handle a wizard handle
+	 * @return the created composite
+	 */
+	public Composite createComposite(Composite parent, IWizardHandle handle) {
+		return null;
+	}
+
+	/**
+	 * Sets the wizard task model.
+	 * <p>
+	 * A task model is shared by all fragments in the wizard and is used to share
+	 * data. It contains information about the overall task flow and allows
+	 * fragments to store and retrieve data. Its usage allows multiple fragments
+	 * to be chained together and share data from the output of one fragment to
+	 * the input of another.
+	 * </p>
+	 * 
+	 * @param taskModel the task model
+	 * @see #getTaskModel()
+	 */
+	public void setTaskModel(TaskModel taskModel) {
+		this.taskModel = taskModel;
+	}
+
+	/**
+	 * Returns the wizard task model.
+	 * 
+	 * @return the task model
+	 * @see #setTaskModel(TaskModel)
+	 */
+	public TaskModel getTaskModel() {
+		return taskModel;
+	}
+	
+	public void setPage(TaskWizardPage page) {
+		this.page = page;
+	}
+	
+	public IWizardPage getPage() {
+		return page;
+	}
+
+	/**
+	 * Called when the wizard that this fragment belongs to has traversed
+	 * into this wizard fragment. It is called to give the fragment the
+	 * opportunity to initialize any values shown in the composite or
+	 * update the task model.
+	 * <p>
+	 * When finish is pressed, the current fragment is exit()ed, and then
+	 * performFinish() is called on all of the fragments in the tree.
+	 * enter() and exit() are not called on the remaining fragments.
+	 * </p>
+	 */
+	public void enter() {
+		// do nothing
+	}
+
+	/**
+	 * Called when the wizard that this fragment belongs to has traversed
+	 * out of this wizard fragment. It is called to give the fragment the
+	 * opportunity to save any values entered into the composite or
+	 * update the task model.
+	 * <p>
+	 * When finish is pressed, the current fragment is exit()ed, and then
+	 * performFinish() is called on all of the fragments in the tree.
+	 * enter() and exit() are not called on the remaining fragments. 
+	 * </p>
+	 */
+	public void exit() {
+		// do nothing
+	}
+
+	/**
+	 * Called when the wizard that this fragment belongs to is finished.
+	 * After exit()ing the current page, all fragment's performFinish()
+	 * methods are called in order.
+	 * <p>
+	 * This method is not called on the UI thread and must not access the
+	 * composite. Not only might the user never have accessed the fragment's
+	 * composite, but this method may be called asynchronously on a job
+	 * once the wizard has closed.
+	 * </p>
+	 * 
+	 * @param monitor a progress monitor, or <code>null</code> if progress
+	 *    reporting and cancellation are not desired
+	 * @throws CoreException if something goes wrong
+	 */
+	public void performFinish(IProgressMonitor monitor) throws CoreException {
+		// do nothing
+	}
+
+	/**
+	 * Called when the wizard that this fragment belongs to is canceled.
+	 * After exit()ing the current page, all fragment's performCancel()
+	 * methods are called in order.
+	 * <p>
+	 * This method is not called on the UI thread and must not access the
+	 * composite. Not only might the user never have accessed the fragment's
+	 * composite, but this method may be called asynchronously on a job
+	 * once the wizard has closed.
+	 * </p>
+	 * 
+	 * @param monitor a progress monitor, or <code>null</code> if progress
+	 *    reporting and cancellation are not desired
+	 * @throws CoreException if something goes wrong
+	 */
+	public void performCancel(IProgressMonitor monitor) throws CoreException {
+		// do nothing
+	}
+
+	/**
+	 * Returns the child fragments. Child fragments come directly after this fragment
+	 * in the wizard flow.
+	 * 
+	 * @return a list of child fragments
+	 */
+	public List getChildFragments() {
+		if (listImpl == null) {
+			listImpl = new ArrayList<WizardFragment>();
+			createChildFragments(listImpl);
+		}
+		return listImpl;
+	}
+
+	/**
+	 * Called to give the fragment a chance to update it's child fragments in
+	 * response to other changes within the wizard or task model.
+	 */
+	public void updateChildFragments() {
+		listImpl = null;
+	}
+
+	/**
+	 * This method is called by the implementation of getChildFragments() to
+	 * allow this fragment to add it's children. This method must cache and
+	 * return the same instance of any child fragment created. If new
+	 * instances are created each time the wizard is updated, the enablement
+	 * state and the flow of the wizard will be incorrect. 
+	 * 
+	 * @param list a list to add the child fragments to
+	 */
+	protected void createChildFragments(List<WizardFragment> list) {
+		// do nothing
+	}
+
+	/**
+	 * Returns true if this fragment is complete (can finish). If it is
+	 * complete the user will be allowed to go to the next fragment or
+	 * finish the wizard. If the fragment is not complete, the Next button
+	 * will be disabled. If the fragment is complete but another fragment
+	 * is not complete, the Finish button will not be enabled.
+	 * 
+	 * @return <code>true</code> if the fragment is complete, and
+	 *    <code>false</code> otherwise
+	 */
+	public boolean isComplete() {
+		return isComplete;
+	}
+
+	/**
+	 * Set the isComplete state.
+	 * 
+	 * @param complete <code>true</code> if the fragment is complete, and
+	 *    <code>false</code> otherwise
+	 */
+	protected void setComplete(boolean complete) {
+		this.isComplete = complete;
+	}
+	
+    public void advanceToNextPageOrFinish() {
+		if (getPage().canFlipToNextPage()) {
+			getPage().getWizard().getContainer().showPage(getPage().getNextPage());
+		} else if(getPage().getWizard().canFinish()) {
+			if (getPage().getWizard().performFinish()) {
+				((WizardDialog)getPage().getWizard().getContainer()).close();
+			}
+		}
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/WorkspaceRunnableAdapter.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/WorkspaceRunnableAdapter.java
new file mode 100644
index 0000000..4447e53
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/internal/taskwizard/WorkspaceRunnableAdapter.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.internal.taskwizard;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+/**
+ * IRunnableWithProgressAdapter to allow it to run an IWorkspaceRunnable.
+ */
+public class WorkspaceRunnableAdapter implements IRunnableWithProgress {
+	private IWorkspaceRunnable workspaceRunnable;
+	
+	public WorkspaceRunnableAdapter(IWorkspaceRunnable runnable) {
+		workspaceRunnable = runnable;
+	}
+
+	/*
+	 * @see IRunnableWithProgress#run(IProgressMonitor)
+	 */
+	public void run(IProgressMonitor monitor) throws InvocationTargetException {
+		try {
+			ResourcesPlugin.getWorkspace().run(workspaceRunnable, monitor);
+		} catch (CoreException e) {
+			throw new InvocationTargetException(e);
+		}
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/messages.properties b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/messages.properties
new file mode 100644
index 0000000..5083668
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/messages.properties
@@ -0,0 +1,30 @@
+ModuleAssemblyRootPageDescription=Define packaging structure for this project.
+ErrorCheckingFacets=Error Checking Project Facets
+ErrorNotVirtualComponent=The given project is not a virtual component project
+DeploymentAssemblyVerifierHelper_0=Verifying Component
+DeployPathColumn=Deploy Path
+SourceColumn=Source
+InternalLibJarWarning=This library has been added to the project by using the project tree or the file system. If you want to move / remove it, use the same approach.
+AddFolder=Folder
+AddFolderElipses=Add Folder...
+AddFolderMappings=Select a project folder to include in the deployment assembly.
+AddEllipsis=A&dd...
+EditEllipsis=&Edit...
+RemoveSelected=&Remove
+ExternalJarTitle=Add an External Jar Reference
+ExternalJarDescription=Here you can reference a filesystem Jar\nThis is not a suggested use-case, but is here for backwards compatability.
+JarTitle=Add a Jar Reference
+JarDescription="Here you can reference a workspace Jar\nThis is not a suggested use-case, but is here for backwards compatability.
+Browse=Browse...
+NewReferenceTitle=Select Directive Type
+NewReferenceDescription=Add a new assembly directive.
+NewReferenceWizard=New Assembly Directive
+ProjectReferenceTitle=Projects
+ProjectReferenceDescription=Select projects to include in the deployment assembly.
+VariableReferenceTitle=Add a Variable Reference
+VariableReferenceDescription="Here you can reference a variable which maps to a single jar.\nThis is not a suggested use-case, but is here for backwards compatability.
+WizardError=Wizard Error
+ProjectConversionError=Error converting project {0} into a flexible project
+ExistingFolderError= Folder "{0}" already exists.
+Revert=Re&vert
+ErrorEntryNotFound=Cannot find entry: "{0}".
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/AbstractIModuleDependenciesControl.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/AbstractIModuleDependenciesControl.java
new file mode 100644
index 0000000..05845d4
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/AbstractIModuleDependenciesControl.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.propertypage;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+
+public abstract class AbstractIModuleDependenciesControl implements IModuleDependenciesControl {
+
+	/**
+	 * Returns any error/warning messages that are associated with the current content of the page  
+	 * @param parent Parent Composite.
+	 * @return IStatus with all the error/warning messages associated with the page
+	 */
+	public IStatus validate() {
+		return Status.OK_STATUS;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/AddModuleDependenciesPropertiesPage.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/AddModuleDependenciesPropertiesPage.java
new file mode 100644
index 0000000..1300350
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/AddModuleDependenciesPropertiesPage.java
@@ -0,0 +1,1319 @@
+/******************************************************************************
+ * Copyright (c) 2010, 2011 Red Hat and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - misc. UI cleanup
+ *    Roberto Sanchez (IBM) - Handle tags in mappings
+ *    
+ * API in these packages is provisional in this release
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.propertypage;
+
+import java.io.File;
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ColumnViewerEditor;
+import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
+import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.ICellModifier;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.TreeViewerEditor;
+import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.datamodel.properties.IAddReferenceDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.ComponentResource;
+import org.eclipse.wst.common.componentcore.internal.DefaultModuleHandler;
+import org.eclipse.wst.common.componentcore.internal.DependencyType;
+import org.eclipse.wst.common.componentcore.internal.IModuleHandler;
+import org.eclipse.wst.common.componentcore.internal.StructureEdit;
+import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
+import org.eclipse.wst.common.componentcore.internal.impl.TaskModel;
+import org.eclipse.wst.common.componentcore.internal.operation.AddReferenceDataModelProvider;
+import org.eclipse.wst.common.componentcore.internal.operation.RemoveReferenceDataModelProvider;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualReference;
+import org.eclipse.wst.common.componentcore.internal.util.VirtualReferenceUtilities;
+import org.eclipse.wst.common.componentcore.resources.ITaggedVirtualResource;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.componentcore.ui.IModuleCoreUIContextIds;
+import org.eclipse.wst.common.componentcore.ui.Messages;
+import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.ComponentDependencyContentProvider;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.DependencyPageExtensionManager;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.DependencyPageExtensionManager.ReferenceExtension;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.NewReferenceWizard;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.ResourceMappingFilterExtensionRegistry;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.verifier.DeploymentAssemblyVerifierHelper;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.TaskWizard;
+import org.eclipse.wst.common.componentcore.ui.internal.taskwizard.WizardFragment;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.internal.facets.FacetUtil;
+ 
+public class AddModuleDependenciesPropertiesPage extends AbstractIModuleDependenciesControl implements Listener,
+		ILabelProviderListener {
+
+	
+	public static final int SOURCE_COLUMN = 0;
+	public static final int DEPLOY_COLUMN = 1;
+	protected static final String SOURCE_PROPERTY = new Integer(SOURCE_COLUMN).toString();
+	protected static final String DEPLOY_PATH_PROPERTY = new Integer(DEPLOY_COLUMN).toString();
+	
+	protected final String PATH_SEPARATOR = String.valueOf(IPath.SEPARATOR);
+	private boolean hasInitialized = false;
+	protected final IProject project;
+	protected final IRuntime runtime;
+	protected final ModuleAssemblyRootPage propPage;
+	protected IVirtualComponent rootComponent = null;
+	protected Text componentNameText;
+	protected TreeViewer availableComponentsViewer;
+	
+	protected Button addMappingButton, addReferenceButton, editReferenceButton, removeButton;
+	protected Composite buttonColumn;
+	protected static final IStatus OK_STATUS = IDataModelProvider.OK_STATUS;
+	//protected Listener tableListener;
+	protected Listener labelListener;
+
+	protected ArrayList<IVirtualReference> originalReferences = new ArrayList<IVirtualReference>();
+	protected ArrayList<IVirtualReference> currentReferences = new ArrayList<IVirtualReference>();
+
+	// A single list of wb-resource mappings. If there's any change, 
+	// all old will be removed and new ones added
+	protected ArrayList<ComponentResourceProxy> resourceMappings = new ArrayList<ComponentResourceProxy>();
+	protected ArrayList<ComponentResourceProxy> hiddenMappings = new ArrayList<ComponentResourceProxy>();
+	
+	// keeps track if a change has occurred in wb-resource mappings
+	protected boolean resourceMappingsChanged = false;
+	
+	protected IModuleHandler moduleHandler;
+	
+	public static String getSafeRuntimePath(IVirtualReference ref) {
+		String archiveName = ref.getDependencyType() == DependencyType.CONSUMES ? null : ref.getArchiveName();
+		String val = null;
+		if(archiveName != null) {
+			IPath runtimePath = new Path(archiveName);
+			if(runtimePath.segmentCount() > 1) {
+				val = archiveName;
+			} else {
+				val = ref.getRuntimePath().append(archiveName).toString();
+			}
+		} else {
+			val = ref.getRuntimePath().toString();
+		}
+		if( val == null ) val = "/";
+		return val;
+	}
+
+	public static void setRuntimePathSafe(IVirtualReference ref, String newPath) {
+		if( ref.getDependencyType() == IVirtualReference.DEPENDENCY_TYPE_CONSUMES)
+			ref.setRuntimePath(new Path(newPath == null ? "/" : newPath.trim()).makeRelative().makeAbsolute());
+		else {
+			IPath path2 = new Path(newPath == null ? "/" : newPath.trim()).makeRelative().makeAbsolute();
+			ref.setRuntimePath(path2.segmentCount() > 1 ? path2.removeLastSegments(1) : new Path("/"));
+			if(path2.segmentCount() > 0) {
+				ref.setArchiveName(path2.lastSegment());
+			} else if(ref.getReferencedComponent() instanceof VirtualArchiveComponent && ((VirtualArchiveComponent)ref.getReferencedComponent()).getArchiveType().equals(VirtualArchiveComponent.VARARCHIVETYPE) ) {
+				File diskFile = (java.io.File)ref.getReferencedComponent().getAdapter(java.io.File.class);
+				IPath filePath = null;
+				if (diskFile.exists()) {
+					filePath = new Path(diskFile.getAbsolutePath());
+					ref.setArchiveName(filePath.lastSegment());
+				}
+			} else {
+				ref.setArchiveName(VirtualReferenceUtilities.INSTANCE.getDefaultArchiveName(ref));
+			}
+		}
+	}
+	
+	/**
+	 * Constructor for AddModulestoEARPropertiesControl.
+	 */
+	public AddModuleDependenciesPropertiesPage(final IProject project,
+			final ModuleAssemblyRootPage page) {
+		this.project = project;
+		this.propPage = page;
+		this.runtime = setRuntime();
+		rootComponent = ComponentCore.createComponent(project);
+	}
+
+	private IRuntime setRuntime() {
+		IRuntime aRuntime = null;
+		try {
+			aRuntime = getServerRuntime(project);
+		}
+		catch (CoreException e) {
+			ModuleCoreUIPlugin.log(e);
+		}
+		return aRuntime;
+	}
+
+	/*
+	 * UI Creation Methods
+	 */
+
+	public Composite createContents(final Composite parent) {
+		Composite composite = new Composite(parent, SWT.NONE);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IModuleCoreUIContextIds.DEPLOYMENT_ASSEMBLY_PREFERENCE_PAGE_DEPLOYMENT_ASSEMBLY_TAB);
+		GridLayout layout = new GridLayout();
+		layout.marginWidth = 0;
+		layout.marginWidth = 0;
+		composite.setLayout(layout);
+		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+		createDescriptionComposite(composite);
+		createListGroup(composite);
+		refresh();
+		Dialog.applyDialogFont(parent);
+		return composite;
+	}
+	
+	protected void createDescriptionComposite(Composite parent){
+		ModuleAssemblyRootPage.createDescriptionComposite(parent, getModuleAssemblyRootPageDescription());
+	}
+
+	protected String getModuleAssemblyRootPageDescription() {
+		return Messages.ModuleAssemblyRootPageDescription;
+	}
+
+	protected void createListGroup(Composite parent) {
+		Composite listGroup = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 1;
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		listGroup.setLayout(layout);
+		listGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+		createTableComposite(listGroup);
+	}
+
+	protected void createTableComposite(Composite parent) {
+		Composite composite = new Composite(parent, SWT.NONE);
+		GridData gData = new GridData(GridData.FILL_BOTH);
+		composite.setLayoutData(gData);
+		fillTableComposite(composite);
+	}
+
+	public void fillTableComposite(Composite parent) {
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 2;
+		layout.marginHeight = 0;
+		layout.marginWidth = 0;
+		parent.setLayout(layout);
+		parent.setLayoutData(new GridData(GridData.FILL_BOTH));
+		createTable(parent);
+		createButtonColumn(parent);
+	}
+
+	protected void createButtonColumn(Composite parent) {
+		buttonColumn = createButtonColumnComposite(parent);
+		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END);
+		buttonColumn.setLayoutData(data);
+		createPushButtons();
+	}
+
+	protected void createPushButtons() {
+		addReferenceButton = createPushButton(Messages.AddEllipsis);
+		editReferenceButton = createPushButton(Messages.EditEllipsis);
+		removeButton = createPushButton(Messages.RemoveSelected);
+	}
+
+	protected Button createPushButton(String label) {
+		Button aButton = new Button(buttonColumn, SWT.PUSH);
+		aButton.setText(label);
+		aButton.addListener(SWT.Selection, this);
+		GridDataFactory.defaultsFor( aButton ).applyTo( aButton );
+		return aButton;
+	}
+
+	public Composite createButtonColumnComposite(Composite parent) {
+		Composite aButtonColumn = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 1;
+		layout.marginHeight = 0;
+		layout.marginWidth = 0;
+		aButtonColumn.setLayout(layout);
+		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
+				| GridData.VERTICAL_ALIGN_BEGINNING);
+		aButtonColumn.setLayoutData(data);
+		return aButtonColumn;
+	}
+
+	public Group createGroup(Composite parent) {
+		return new Group(parent, SWT.NULL);
+	}
+
+	protected void createTable(Composite parent) {
+		if (rootComponent != null) {
+			availableComponentsViewer = createAvailableComponentsViewer(parent);
+			GridData gd = new GridData( GridData.FILL_BOTH );
+			availableComponentsViewer.getTree().setLayoutData(gd);
+
+			ComponentDependencyContentProvider provider = createProvider();
+			provider.setComponent(rootComponent);
+			provider.setRuntimePaths(currentReferences);
+			provider.setResourceMappings(resourceMappings);
+			availableComponentsViewer.setContentProvider(provider);
+			//availableComponentsViewer.setLabelProvider(new DecoratingLabelProvider(
+	        //        new WorkbenchLabelProvider(), PlatformUI.getWorkbench().
+	        //         getDecoratorManager().getLabelDecorator()));
+			availableComponentsViewer.setLabelProvider(provider);
+			addTableListeners();
+		}
+	}
+
+	/**
+	 * Subclasses should over-ride this and extend the class
+	 */
+	protected ComponentDependencyContentProvider createProvider() {
+		return new ComponentDependencyContentProvider(this);
+	}
+
+	/*
+	 * Listeners of various events
+	 */
+
+	protected void addTableListeners() {
+		addHoverHelpListeners();
+		addDoubleClickListener();
+		addSelectionListener();
+	}
+
+	protected void addHoverHelpListeners() {
+		final Tree tree = availableComponentsViewer.getTree();
+		createLabelListener(tree);
+//		createTableListener(table);
+//		table.addListener(SWT.Dispose, tableListener);
+//		table.addListener(SWT.KeyDown, tableListener);
+//		table.addListener(SWT.MouseMove, tableListener);
+//		table.addListener(SWT.MouseHover, tableListener);
+	}
+
+	protected void createLabelListener(final Tree tree) {
+		labelListener = new Listener() {
+			public void handleEvent(Event event) {
+				Label label = (Label) event.widget;
+				Shell shell = label.getShell();
+				switch (event.type) {
+				case SWT.MouseDown:
+					Event e = new Event();
+					e.item = (TreeItem) label.getData("_TreeItem"); //$NON-NLS-1$
+					tree.setSelection(new TreeItem[] { (TreeItem) e.item });
+					tree.notifyListeners(SWT.Selection, e);
+					shell.dispose();
+					tree.setFocus();
+					break;
+				case SWT.MouseExit:
+					shell.dispose();
+					break;
+				}
+			}
+		};
+	}
+
+//	protected void createTableListener(final Table table) {
+//		tableListener = new Listener() {
+//			Shell tip = null;
+//			Label label = null;
+//
+//			public void handleEvent(Event event) {
+//				switch (event.type) {
+//				case SWT.Dispose:
+//				case SWT.KeyDown:
+//				case SWT.MouseMove: {
+//					if (tip == null)
+//						break;
+//					tip.dispose();
+//					tip = null;
+//					label = null;
+//					break;
+//				}
+//				case SWT.MouseHover: {
+//					TreeItem item = table.getItem(new Point(event.x, event.y));
+//					if (item != null && item.getData() != null && !canEdit(item.getData())) {
+//						if (tip != null && !tip.isDisposed())
+//							tip.dispose();
+//						tip = new Shell(PlatformUI.getWorkbench()
+//								.getActiveWorkbenchWindow().getShell(),
+//								SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL);
+//						tip.setBackground(Display.getDefault().getSystemColor(
+//								SWT.COLOR_INFO_BACKGROUND));
+//						FillLayout layout = new FillLayout();
+//						layout.marginWidth = 2;
+//						tip.setLayout(layout);
+//						label = new Label(tip, SWT.WRAP);
+//						label.setForeground(Display.getDefault()
+//								.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
+//						label.setBackground(Display.getDefault()
+//								.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
+//						label.setData("_TreeItem", item); //$NON-NLS-1$
+//						label.setText( Messages.InternalLibJarWarning);
+//						label.addListener(SWT.MouseExit, labelListener);
+//						label.addListener(SWT.MouseDown, labelListener);
+//						Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+//						Rectangle rect = item.getBounds(0);
+//						Point pt = table.toDisplay(rect.x, rect.y);
+//						tip.setBounds(pt.x, pt.y - size.y, size.x, size.y);
+//						tip.setVisible(true);
+//					}
+//				}
+//				}
+//			}
+//		};
+//	}
+
+//	protected boolean canEdit(Object data) {
+//		if( data == null ) return false;
+//		if( !(data instanceof VirtualArchiveComponent)) return true;
+//		
+//		VirtualArchiveComponent d2 = (VirtualArchiveComponent)data;
+//		boolean sameProject = d2.getWorkspaceRelativePath() != null
+//			&& d2.getWorkspaceRelativePath().segment(0)
+//				.equals(rootComponent.getProject().getName());
+//		return !(sameProject && isPhysicallyAdded(d2));
+//	}
+	
+	protected void addDoubleClickListener() {
+		availableComponentsViewer.setColumnProperties(new String[] { 
+				SOURCE_PROPERTY, DEPLOY_PATH_PROPERTY });
+		
+		CellEditor[] editors = new CellEditor[] {
+				new TextCellEditor(),
+				new TextCellEditor(availableComponentsViewer.getTree())};
+		availableComponentsViewer.setCellEditors(editors);
+		availableComponentsViewer
+				.setCellModifier(getRuntimePathCellModifier());
+	}
+
+	protected RuntimePathCellModifier getRuntimePathCellModifier() {
+		return new RuntimePathCellModifier();
+	}
+
+	protected void addSelectionListener() {
+		availableComponentsViewer.addSelectionChangedListener(
+				new ISelectionChangedListener(){
+					public void selectionChanged(SelectionChangedEvent event) {
+						viewerSelectionChanged();
+					}
+				});
+	}
+	
+	protected void viewerSelectionChanged() {
+		editReferenceButton.setEnabled(hasEditWizardPage(getSelectedObject()));
+		removeButton.setEnabled(canRemove(getSelectedObject()));
+	}
+
+	protected boolean canRemove(Object selectedObject) {
+		return selectedObject != null;
+	}
+	
+	protected boolean hasEditWizardPage(Object o) {
+		if( o == null || !(o instanceof IVirtualReference)) 
+			return false;
+		WizardFragment wf = NewReferenceWizard.getFirstEditingFragment((IVirtualReference)o);
+		return wf != null;
+	}
+
+	protected Object getSelectedObject() {
+		IStructuredSelection sel = (IStructuredSelection)availableComponentsViewer.getSelection();
+		return sel.getFirstElement();
+	}
+	
+	protected class RuntimePathCellModifier implements ICellModifier {
+
+		public boolean canModify(Object element, String property) {
+			if( property.equals(DEPLOY_PATH_PROPERTY)) {
+				if( element instanceof IVirtualReference && !((IVirtualReference)element).isDerived())
+					return true;
+				if( element instanceof ComponentResourceProxy )
+					return true; 
+			}
+			return false;
+		}
+
+		public Object getValue(Object element, String property) {
+			if( element instanceof IVirtualReference ) {
+				return new Path(getSafeRuntimePath((IVirtualReference)element)).makeRelative().toString();
+			} else if( element instanceof ComponentResourceProxy) {
+				if(((ComponentResourceProxy)element).runtimePath.isRoot())
+					return ((ComponentResourceProxy)element).runtimePath.toString();
+				else
+					return ((ComponentResourceProxy)element).runtimePath.makeRelative().toString();
+			}
+			return new Path("/"); //$NON-NLS-1$
+		}
+
+		public void modify(Object element, String property, Object value) {
+			if (property.equals(DEPLOY_PATH_PROPERTY)) {
+				TreeItem item = (TreeItem) element;
+				TreeItem[] components = availableComponentsViewer.getTree().getItems();
+				int tableIndex = -1;
+				for(int i=0; i < components.length; i++) {
+					if(components[i] == item) {
+						tableIndex = i;
+						break;
+					}
+				}
+				if( item.getData() instanceof IVirtualReference) {
+					setRuntimePathSafe((IVirtualReference)item.getData(), (String) value);
+					if(tableIndex >= 0) {
+						IPath deployPath = ((IVirtualReference)item.getData()).getRuntimePath();
+						if( ((IVirtualReference)item.getData()).getDependencyType() == IVirtualReference.DEPENDENCY_TYPE_USES ) 
+							deployPath = deployPath.append(((IVirtualReference)item.getData()).getArchiveName());
+						components[tableIndex].setText(AddModuleDependenciesPropertiesPage.DEPLOY_COLUMN, deployPath.makeRelative().toString());
+					}
+				} else if( item.getData() instanceof ComponentResourceProxy) {
+					ComponentResourceProxy c = ((ComponentResourceProxy)item.getData());
+					c.runtimePath = new Path((String)value).makeAbsolute();
+					String runtimePath;
+					if(c.runtimePath.isRoot())
+						runtimePath = c.runtimePath.toString();
+					else
+						runtimePath = c.runtimePath.makeRelative().toString();
+					resourceMappingsChanged = true;
+					if(tableIndex >= 0)
+						components[tableIndex].setText(AddModuleDependenciesPropertiesPage.DEPLOY_COLUMN, runtimePath);
+				}
+				verify();
+			}
+		}
+
+	}
+
+	public void handleEvent(Event event) {
+		if( event.widget == addReferenceButton) 
+			handleAddReferenceButton();
+		else if( event.widget == editReferenceButton) 
+			handleEditReferenceButton();
+		else if( event.widget == removeButton ) 
+			handleRemoveSelectedButton();
+	}
+	
+	protected void handleAddReferenceButton() {
+		showReferenceWizard(false);
+	}
+	
+	protected void handleEditReferenceButton() {
+		showReferenceWizard(true);
+	}
+	
+	protected void filterReferenceTypes(List<ReferenceExtension> defaults) 
+	{
+	}
+	
+	protected void showReferenceWizard( final boolean editing ) 
+	{
+		final List<ReferenceExtension> extensions = 
+			DependencyPageExtensionManager.getManager().getExposedReferenceExtensions();
+		
+		for( Iterator<ReferenceExtension> itr = extensions.iterator(); itr.hasNext(); )
+		{
+			final ReferenceExtension extension = itr.next();
+			
+			if( ! extension.isApplicable( this.project ) )
+			{
+				itr.remove();
+			}
+		}
+		
+		filterReferenceTypes( extensions );
+		
+		NewReferenceWizard wizard = new NewReferenceWizard(extensions);
+		
+		// fill the task model
+		wizard.getTaskModel().putObject(IReferenceWizardConstants.PROJECT, project);
+		wizard.getTaskModel().putObject(IReferenceWizardConstants.ROOT_COMPONENT, rootComponent);
+		wizard.getTaskModel().putObject(IReferenceWizardConstants.MODULEHANDLER, getModuleHandler());
+		wizard.getTaskModel().putObject(IReferenceWizardConstants.CURRENT_REFS, currentReferences);
+		
+		final List<Object> directives = new ArrayList<Object>();
+		
+		for( TreeItem item : this.availableComponentsViewer.getTree().getItems() )
+		{
+			directives.add( item.getData() );
+		}
+		
+		wizard.getTaskModel().putObject(IReferenceWizardConstants.ALL_DIRECTIVES, directives);
+		
+		setCustomReferenceWizardProperties(wizard.getTaskModel());
+
+		IVirtualReference selected = null;
+		if( editing ) {
+			Object o = ((IStructuredSelection)availableComponentsViewer.getSelection()).getFirstElement();
+			if( o instanceof IVirtualReference ) {
+				selected = (IVirtualReference)o;
+				wizard.getTaskModel().putObject(IReferenceWizardConstants.ORIGINAL_REFERENCE, selected);
+			} 
+		}
+		
+		WizardDialog wd = new WizardDialog(addReferenceButton.getShell(), wizard);
+		if( wd.open() != Window.CANCEL) {
+			if( editing && selected != null) {
+				// remove old
+				currentReferences.remove(selected);
+			}
+			
+			handleAddDirective( wizard );
+			refresh();
+		}
+	}
+	
+	/*
+	 * Clients can override this to set custom properties
+	 */
+	protected void setCustomReferenceWizardProperties(TaskModel model) {
+		// do nothing
+	}
+	
+	protected void handleAddDirective( final TaskWizard wizard )
+	{
+		final Object folderMapping = wizard.getTaskModel().getObject(IReferenceWizardConstants.FOLDER_MAPPING);
+		
+		if( folderMapping != null && folderMapping instanceof ComponentResourceProxy ) 
+		{
+			ComponentResourceProxy proxy = (ComponentResourceProxy) folderMapping;
+			resourceMappings.add(proxy);
+			resourceMappingsChanged = true;
+		}
+		else
+		{
+			Object reference = wizard.getTaskModel().getObject(IReferenceWizardConstants.FINAL_REFERENCE);
+			
+			if( reference != null ) 
+			{
+				IVirtualReference[] referenceArray = reference instanceof IVirtualReference ? 
+						new IVirtualReference[] { (IVirtualReference)reference } : 
+							(IVirtualReference[])reference;
+				currentReferences.addAll(Arrays.asList(referenceArray));
+			}
+		}
+	}
+	
+	/**
+	 * Subclasses are encouraged to override this method if 
+	 * they have some specific place (webinf/lib etc) where certain
+	 * types of references should default to. 
+	 * 
+	 * If the subclass does not understand or know about the 
+	 * this component type, or if it has no customizations to perform,
+	 * it should return the provided wizardPath unchanged
+	 * 
+	 * @param addedComp The component being added as a reference
+	 * @param addedPath The path that the wizard suggests as the path
+	 * @return The runtime path that should be added to the properties page
+	 */
+	protected String getRuntimePath(IVirtualComponent addedComp, String wizardPath) {
+		return wizardPath;
+	}
+	
+	protected void handleRemoveSelectedButton() {
+		ISelection sel = availableComponentsViewer.getSelection();
+		if( sel instanceof IStructuredSelection ) {
+			IStructuredSelection sel2 = (IStructuredSelection)sel;
+			Object[] selectedStuff = sel2.toArray();
+			for( int i = 0; i < selectedStuff.length; i++) {
+				Object o = selectedStuff[i];
+				remove(o);
+			}
+			refresh();
+		}
+	}
+
+	protected void remove(Object selectedItem){
+		if( selectedItem instanceof IVirtualReference)
+			currentReferences.remove(selectedItem);
+		else if( selectedItem instanceof ComponentResourceProxy) {
+			resourceMappings.remove(selectedItem);
+			resourceMappingsChanged = true;
+		}
+	}
+	
+	/**
+	 * Provides two possible sorts for each column based on the text labels.
+	 * Clicking on the column will toggle forwards/backwards sorting
+	 * @author jsholl
+	 */
+	private static class TreeViewerTableColumnSortToggler {
+		private int sortDirection = 0;
+		private int sortColumn = 0;
+		private TreeViewer treeViewer;
+		
+		private TreeViewerTableColumnSortToggler(TreeViewer treeViewer){
+			this.treeViewer = treeViewer;
+		}
+		
+		private void toggleSort(int column){
+			if(sortColumn == column){
+				//cycle through sort options
+				switch(sortDirection){
+				case SWT.NONE:
+					sortDirection = SWT.UP;
+					break;
+				case SWT.UP:
+					sortDirection = SWT.DOWN;
+					break;
+				case SWT.DOWN:
+					sortDirection = SWT.UP;
+					break;
+				}
+			} else {
+				//clicked on a different column reset cycle
+				sortColumn = column;
+				sortDirection = SWT.UP;
+			}
+			
+			ViewerComparator comparator = getViewerComparator(column, sortDirection);
+			treeViewer.setComparator(comparator);
+			
+			Tree tree = treeViewer.getTree();
+			TreeColumn sortColumn = treeViewer.getTree().getColumn(column);
+			tree.setSortColumn(sortColumn);
+			tree.setSortDirection(sortDirection);
+		}
+		
+		private ViewerComparator getViewerComparator(final int columnIndex, final int sortDirection) {
+			if(sortDirection == SWT.NONE){
+				return null;
+			}
+			return new ViewerComparator() {
+				Collator collator = Collator.getInstance();
+				public int compare(Viewer viewerLocal, Object e1, Object e2) {
+					IBaseLabelProvider baseLabelProvider = treeViewer.getLabelProvider();
+					if(baseLabelProvider instanceof ITableLabelProvider){
+						ITableLabelProvider tableLabelProvider = (ITableLabelProvider)baseLabelProvider;
+						String text1 = tableLabelProvider.getColumnText(e1, columnIndex);
+						if(text1 != null){
+							String text2 = tableLabelProvider.getColumnText(e2, columnIndex);
+							int comp = collator.compare(text1, text2);
+							if(sortDirection == SWT.DOWN){
+								comp = -comp;
+							}
+							return comp;
+						}
+					}
+					return 0;
+				}
+			};
+		}
+	};
+	
+	public TreeViewer createAvailableComponentsViewer(Composite parent) {
+		int flags = SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI;
+
+		Tree tree = new Tree(parent, flags);
+		TreeViewer tempViewer = new TreeViewer(tree);
+		final TreeViewerTableColumnSortToggler sortController = new TreeViewerTableColumnSortToggler(tempViewer);
+		
+		TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(tempViewer,new FocusCellOwnerDrawHighlighter(tempViewer));
+		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tempViewer) {
+			private final int SPACE = 32;
+			protected boolean isEditorActivationEvent(
+					ColumnViewerEditorActivationEvent event) {
+				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
+						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
+						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SPACE)
+						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
+			}
+		};
+		
+		TreeViewerEditor.create(tempViewer, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
+				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
+				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
+
+		// set up table layout
+		TableLayout tableLayout = new org.eclipse.jface.viewers.TableLayout();
+		tableLayout.addColumnData(new ColumnWeightData(400, true));
+		tableLayout.addColumnData(new ColumnWeightData(500, true));
+		tree.setLayout(tableLayout);
+		tree.setHeaderVisible(true);
+		tree.setLinesVisible(true);
+		tempViewer.setSorter(null);
+
+		TreeColumn projectColumn = new TreeColumn(tree, SWT.NONE, SOURCE_COLUMN);
+		projectColumn.setText(Messages.SourceColumn);
+		projectColumn.setResizable(true);
+		projectColumn.addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				sortController.toggleSort(0);
+			}
+			public void widgetDefaultSelected(SelectionEvent e) {
+				//do nothing
+			}
+		});
+
+		TreeColumn bndColumn = new TreeColumn(tree, SWT.NONE, DEPLOY_COLUMN);
+		bndColumn.setText(Messages.DeployPathColumn);
+		bndColumn.setResizable(true);
+		bndColumn.addSelectionListener(new SelectionListener() {
+			public void widgetSelected(SelectionEvent e) {
+				sortController.toggleSort(1);
+			}
+			public void widgetDefaultSelected(SelectionEvent e) {
+				//do nothing
+			}
+		});
+		
+		tableLayout.layout(tree, true);
+		sortController.toggleSort(0);
+		return tempViewer;
+
+	}
+
+	/**
+	 * This should only be called on changes, such as adding a project
+	 * reference, adding a lib reference etc.
+	 * 
+	 * It will reset the input, manually re-add missing elements, and do other
+	 * tasks
+	 */
+	public void refresh() {
+		resetTableUI();
+		if (!hasInitialized) {
+			initialize();
+			resetTableUI();
+		}
+		verify();
+
+	}
+
+	protected void verify() {
+		propPage.refreshProblemsView();
+	}
+	
+	public IStatus validate() {
+		ArrayList<ComponentResourceProxy> allMappings = new ArrayList<ComponentResourceProxy>();
+		allMappings.addAll(resourceMappings);
+		allMappings.addAll(hiddenMappings);
+		
+		return DeploymentAssemblyVerifierHelper.verify(rootComponent, runtime, currentReferences, allMappings,resourceMappingsChanged);
+	}
+	
+	protected void setErrorMessage(IStatus status) {
+		// Clear the messages
+		propPage.setErrorMessage(null);
+		propPage.setMessage(null);
+		if(status != null) {
+			if (status.isMultiStatus()) {
+				MultiStatus multi = (MultiStatus)status;
+				if (!multi.isOK()) {
+					propPage.setMessage(getMessage(multi), multi.getSeverity());
+					if (multi.getSeverity() == IStatus.ERROR) {
+						propPage.setErrorMessage(getMessage(multi));
+						propPage.setValid(false);
+					}
+					else 
+						propPage.setValid(true);
+				} else propPage.setValid(true);
+			} else if (status.isOK()) propPage.setValid(true);
+			propPage.getContainer().updateMessage();
+		}
+	}
+
+	private String getMessage(MultiStatus multi) {
+		//Append Messages
+		StringBuffer message = new StringBuffer();
+		
+		for (int i = 0; i < multi.getChildren().length; i++) {
+			IStatus status = multi.getChildren()[i];
+			if (!status.isOK() && status.getMessage() != null) {
+				message.append(status.getMessage());
+				message.append(" "); //$NON-NLS-1$
+			}
+		}
+		return message.toString();
+	}
+
+	protected void resetTableUI() {
+		IWorkspaceRoot input = ResourcesPlugin.getWorkspace().getRoot();
+		availableComponentsViewer.setInput(input);
+		GridData data = new GridData(GridData.FILL_BOTH);
+		int numlines = Math.min(10, availableComponentsViewer.getTree()
+				.getItemCount());
+		data.heightHint = availableComponentsViewer.getTree().getItemHeight()
+				* numlines;
+		availableComponentsViewer.getTree().setLayoutData(data);
+		GridData btndata = new GridData(GridData.HORIZONTAL_ALIGN_FILL
+				| GridData.VERTICAL_ALIGN_BEGINNING);
+		buttonColumn.setLayoutData(btndata);
+	}
+
+	protected void initialize() {
+		Map<String, Object> options = new HashMap<String, Object>();
+		options.put(IVirtualComponent.REQUESTED_REFERENCE_TYPE, IVirtualComponent.DISPLAYABLE_REFERENCES_ALL);
+		IVirtualReference[] refs = rootComponent.getReferences(options);
+		IVirtualComponent comp;
+		originalReferences.addAll(Arrays.asList(refs));
+		currentReferences.addAll(Arrays.asList(cloneReferences(refs)));
+
+		ComponentResource[] allMappings = findAllExposedMappings();
+		for( int i = 0; i < allMappings.length; i++ ) {
+			resourceMappings.add(new ComponentResourceProxy(
+					allMappings[i].getSourcePath(), allMappings[i].getRuntimePath(), allMappings[i].getTag()
+			));
+		}
+		ComponentResource[] onlyHiddenMappings = findOnlyHiddenMappings();
+		for( int i = 0; i < onlyHiddenMappings.length; i++ ) {
+			hiddenMappings.add(new ComponentResourceProxy(
+					onlyHiddenMappings[i].getSourcePath(), onlyHiddenMappings[i].getRuntimePath(), onlyHiddenMappings[i].getTag()
+			));
+		}
+		if(editReferenceButton != null)
+			editReferenceButton.setEnabled(false);
+		if(removeButton != null)
+			removeButton.setEnabled(false);
+		hasInitialized = true;
+	}
+
+	private IRuntime getServerRuntime(IProject project2) throws CoreException {
+		if (project == null)
+			return null;
+		IFacetedProject facetedProject = ProjectFacetsManager.create(project);
+		if (facetedProject == null)
+			return null;
+		org.eclipse.wst.common.project.facet.core.runtime.IRuntime runtime = facetedProject.getRuntime();
+		if (runtime == null)
+			return null;
+		return FacetUtil.getRuntime(runtime);
+	}
+
+	protected IVirtualReference[] cloneReferences(IVirtualReference[] refs) {
+		IVirtualReference[] result = new IVirtualReference[refs.length];
+		VirtualReference temp;
+		for( int i = 0; i < result.length; i++ ) {
+			temp = new VirtualReference(refs[i].getEnclosingComponent(), refs[i].getReferencedComponent());
+			temp.setDependencyType(refs[i].getDependencyType());
+			temp.setDerived(refs[i].isDerived());
+			temp.setArchiveName(refs[i].getArchiveName());
+			temp.setRuntimePath(refs[i].getRuntimePath());
+			result[i] = temp;
+		}
+		return result;
+	}
+	
+	protected ComponentResource[] findAllMappings() {
+		StructureEdit structureEdit = null;
+		try {
+			structureEdit = StructureEdit.getStructureEditForRead(project);
+			WorkbenchComponent component = structureEdit.getComponent();
+			Object[] arr = component.getResources().toArray();
+			ComponentResource[] result = new ComponentResource[arr.length];
+			for( int i = 0; i < arr.length; i++ )
+				result[i] = (ComponentResource)arr[i];
+			return result;
+		} catch (NullPointerException e) {
+			ModuleCoreUIPlugin.logError(e);
+		} finally {
+			if(structureEdit != null)
+				structureEdit.dispose();
+		}
+		return new ComponentResource[]{};
+	}
+	
+	protected ComponentResource[] findAllExposedMappings() {
+		StructureEdit structureEdit = null;
+		try {
+			structureEdit = StructureEdit.getStructureEditForRead(project);
+			WorkbenchComponent component = structureEdit.getComponent();
+			Object[] arr = component.getResources().toArray();
+			ArrayList <ComponentResource> result = new ArrayList<ComponentResource>();
+			for( int i = 0; i < arr.length; i++ ) {
+				ComponentResource resource = (ComponentResource)arr[i];
+				if(!ResourceMappingFilterExtensionRegistry.shouldFilter(resource.getSourcePath())) {
+					result.add((ComponentResource)arr[i]);
+				}
+			}
+			return result.toArray(new ComponentResource[result.size()]);
+		} catch (NullPointerException e) {
+			ModuleCoreUIPlugin.logError(e);
+		} finally {
+			if(structureEdit != null)
+				structureEdit.dispose();
+		}
+		return new ComponentResource[]{};
+	}
+	
+	protected ComponentResource[] findOnlyHiddenMappings() {
+		StructureEdit structureEdit = null;
+		try {
+			structureEdit = StructureEdit.getStructureEditForRead(project);
+			WorkbenchComponent component = structureEdit.getComponent();
+			Object[] arr = component.getResources().toArray();
+			ArrayList <ComponentResource> result = new ArrayList<ComponentResource>();
+			for( int i = 0; i < arr.length; i++ ) {
+				ComponentResource resource = (ComponentResource)arr[i];
+				if(ResourceMappingFilterExtensionRegistry.shouldFilter(resource.getSourcePath())) {
+					result.add((ComponentResource)arr[i]);
+				}
+			}
+			return result.toArray(new ComponentResource[result.size()]);
+		} catch (NullPointerException e) {
+			ModuleCoreUIPlugin.logError(e);
+		} finally {
+			if(structureEdit != null)
+				structureEdit.dispose();
+		}
+		return new ComponentResource[]{};
+	}
+	
+	public static class ComponentResourceProxy {
+		public IPath source, runtimePath;
+		public String tag;
+		public ComponentResourceProxy(IPath source, IPath runtimePath) {
+			this(source, runtimePath, null);
+		}
+		public ComponentResourceProxy(IPath source, IPath runtimePath, String tag) {
+			this.source = source;
+			this.runtimePath = runtimePath;
+			this.tag = tag;
+		}
+	}
+	
+	/*
+	 * Clean-up methods are below. These include performCancel, performDefaults,
+	 * performOK, and any other methods that are called *only* by this one.
+	 */
+	public void setVisible(boolean visible) {
+	}
+
+	public void performDefaults() {
+		currentReferences.clear();
+		IVirtualReference[] currentTmp =
+			originalReferences.toArray(new IVirtualReference[originalReferences.size()]); 
+		currentReferences.addAll(Arrays.asList(cloneReferences(currentTmp)));
+		resourceMappings.clear();
+		ComponentResource[] allMappings = findAllExposedMappings();
+		for( int i = 0; i < allMappings.length; i++ ) {
+			resourceMappings.add(new ComponentResourceProxy(
+					allMappings[i].getSourcePath(), allMappings[i].getRuntimePath(), allMappings[i].getTag()
+			));
+		}
+		refresh();
+	}
+
+	public boolean performCancel() {
+		return true;
+	}
+
+	public void dispose() {
+		Tree tree = null;
+		if (availableComponentsViewer != null) {
+			tree = availableComponentsViewer.getTree();
+		}
+//		if (table == null || tableListener == null)
+//			return; 
+//		table.removeListener(SWT.Dispose, tableListener);
+//		table.removeListener(SWT.KeyDown, tableListener);
+//		table.removeListener(SWT.MouseMove, tableListener);
+//		table.removeListener(SWT.MouseHover, tableListener);
+	}
+
+	
+	
+	/*
+	 * This is where the OK work goes. Lots of it. Watch your head.
+	 * xiao xin
+	 */
+	protected boolean preHandleChanges(IProgressMonitor monitor) {
+		return true;
+	}
+
+	protected boolean postHandleChanges(IProgressMonitor monitor) {
+		return true;
+	}
+
+	public boolean performOk() {
+		boolean result = true;
+		result &= saveResourceChanges();
+		result &= saveReferenceChanges();
+		return result;
+	}
+	
+	protected boolean saveResourceChanges() {
+		if( resourceMappingsChanged ) {
+			removeAllResourceMappings();
+			addNewResourceMappings();
+			addAllHiddenResourceMappings();
+		}
+		return true;
+	}
+	
+	private void addAllHiddenResourceMappings() {
+		ComponentResourceProxy[] proxies = hiddenMappings.toArray(new ComponentResourceProxy[hiddenMappings.size()]);
+		IVirtualFolder rootFolder = rootComponent.getRootFolder();
+		for( int i = 0; i < proxies.length; i++ ) {
+			try {
+				rootFolder.getFolder(proxies[i].runtimePath).createLink(proxies[i].source, 0, null);
+			} catch( CoreException ce ) {
+				ModuleCoreUIPlugin.logError(ce);
+			}
+		}
+	}
+	
+	protected boolean addNewResourceMappings() {
+		ComponentResourceProxy[] proxies = resourceMappings.toArray(new ComponentResourceProxy[resourceMappings.size()]);
+		IVirtualFolder rootFolder = rootComponent.getRootFolder();
+		IVirtualFolder subFolder = null;
+		for( int i = 0; i < proxies.length; i++ ) {
+			try {			
+				subFolder= rootFolder.getFolder(proxies[i].runtimePath);
+				subFolder.createLink(proxies[i].source, 0, null);
+				if (subFolder instanceof ITaggedVirtualResource){
+					((ITaggedVirtualResource) subFolder).tagResource(proxies[i].source, proxies[i].tag, null);
+				}
+			} catch( CoreException ce ) {
+				ModuleCoreUIPlugin.logError(ce);
+			}
+		}
+		resourceMappingsChanged = false;
+		return true;
+	}
+	
+	protected boolean removeAllResourceMappings() {
+		StructureEdit moduleCore = null;
+		try {
+			moduleCore = StructureEdit.getStructureEditForWrite(project);
+			moduleCore.getComponent().getResources().clear();
+		}
+		finally {
+			if (moduleCore != null) {
+				moduleCore.saveIfNecessary(new NullProgressMonitor());
+				moduleCore.dispose();
+			}
+		}
+		return true;
+	}
+	
+	protected boolean saveReferenceChanges() {
+		// Fill our delta lists
+		ArrayList<IVirtualReference> added = new ArrayList<IVirtualReference>();
+		ArrayList<IVirtualReference> removed = new ArrayList<IVirtualReference>();
+
+		HashMap<IVirtualComponent, IVirtualReference> map = new HashMap<IVirtualComponent, IVirtualReference>();
+		Iterator<IVirtualReference> k = currentReferences.iterator();
+		IVirtualReference v1;
+		while(k.hasNext()) {
+			v1 = k.next();
+			map.put(v1.getReferencedComponent(), v1);
+		}
+		
+		Iterator<IVirtualReference> j = originalReferences.iterator();
+		IVirtualReference origRef, newRef;
+		while (j.hasNext()) {
+			origRef = j.next();
+			newRef = map.get(origRef.getReferencedComponent());
+			if( newRef == null )
+				removed.add(origRef);
+			else if( !getSafeRuntimePath(origRef).equals(getSafeRuntimePath(newRef))) {
+				removed.add(origRef);
+				added.add(newRef);
+			}
+			map.remove(origRef.getReferencedComponent());
+		}
+
+		added.addAll(map.values());
+
+		NullProgressMonitor monitor = new NullProgressMonitor();
+		boolean subResult = preHandleChanges(monitor);
+		if( !subResult )
+			return false;
+		
+		handleRemoved(removed);
+		handleAdded(added);
+
+		subResult &= postHandleChanges(monitor);
+		
+		originalReferences.clear();
+		originalReferences.addAll(currentReferences);
+		currentReferences.clear();
+		IVirtualReference[] currentTmp =
+			originalReferences.toArray(new IVirtualReference[originalReferences.size()]); 
+		currentReferences.addAll(Arrays.asList(cloneReferences(currentTmp)));
+		return subResult;
+	}
+
+	protected void handleRemoved(ArrayList<IVirtualReference> removed) {
+		// If it's removed it should *only* be a virtual component already
+		if(removed.isEmpty()) return;
+		final ArrayList<IVirtualReference> refs = new ArrayList<IVirtualReference>();
+		Iterator<IVirtualReference> i = removed.iterator();
+		IVirtualReference o;
+		while(i.hasNext()) {
+			o = i.next();
+			refs.add(o);
+		}
+		IWorkspaceRunnable runnable = new IWorkspaceRunnable(){
+			public void run(IProgressMonitor monitor) throws CoreException{
+				removeReferences(refs);
+			}
+		};
+		try {
+			ResourcesPlugin.getWorkspace().run(runnable, new NullProgressMonitor());
+		} catch( CoreException e ) {
+			ModuleCoreUIPlugin.logError(e);
+		}
+		
+	}
+	
+	protected void removeReferences(ArrayList<IVirtualReference> removed) {
+		Iterator<IVirtualReference> i = removed.iterator();
+		while(i.hasNext()) {
+			removeOneReference(i.next());
+		}
+	}
+
+	protected void removeOneReference(IVirtualReference comp) {
+		try {
+			IDataModelOperation operation = getRemoveComponentOperation(comp);
+			operation.execute(null, null);
+		} catch( ExecutionException e) {
+			ModuleCoreUIPlugin.logError(e);
+		}
+		
+	}
+
+	protected IDataModelOperation getRemoveComponentOperation(IVirtualReference reference) {
+		IDataModelProvider provider = getRemoveReferenceDataModelProvider(reference);
+		IDataModel model = DataModelFactory.createDataModel(provider);
+		model.setProperty(IAddReferenceDataModelProperties.SOURCE_COMPONENT, rootComponent);
+		List<IVirtualReference> toRemove = new ArrayList<IVirtualReference>();
+		toRemove.add(reference); 
+		model.setProperty(IAddReferenceDataModelProperties.TARGET_REFERENCE_LIST, toRemove);
+		return model.getDefaultOperation();
+	}
+	
+	protected IDataModelProvider getRemoveReferenceDataModelProvider(IVirtualReference reference) {
+		return new RemoveReferenceDataModelProvider();
+	}
+	
+	protected void handleAdded(ArrayList<IVirtualReference> added) {
+		final ArrayList<IVirtualReference> refs = new ArrayList<IVirtualReference>();
+		Iterator<IVirtualReference> i = added.iterator();
+		IVirtualReference o;
+		while(i.hasNext()) {
+			o = i.next();
+			refs.add(o);
+		}
+		
+		IWorkspaceRunnable runnable = new IWorkspaceRunnable(){
+			public void run(IProgressMonitor monitor) throws CoreException{
+				addReferences(refs);
+			}
+		};
+		try {
+			ResourcesPlugin.getWorkspace().run(runnable, new NullProgressMonitor());
+		} catch( CoreException e ) {
+			ModuleCoreUIPlugin.logError(e);
+		}
+	}
+	
+	protected void addReferences(ArrayList<IVirtualReference> refs) throws CoreException {
+		Iterator<IVirtualReference> i = refs.iterator();
+		while(i.hasNext()) {
+			addOneReference(i.next());
+		}
+	}
+	
+	protected IDataModelProvider getAddReferenceDataModelProvider(IVirtualReference component) {
+		return new AddReferenceDataModelProvider();
+	}
+	
+	protected void addOneReference(IVirtualReference ref) throws CoreException {
+		String path, archiveName;
+
+		IDataModelProvider provider = getAddReferenceDataModelProvider(ref);
+		IDataModel dm = DataModelFactory.createDataModel(provider);
+		dm.setProperty(IAddReferenceDataModelProperties.SOURCE_COMPONENT, rootComponent);
+		dm.setProperty(IAddReferenceDataModelProperties.TARGET_REFERENCE_LIST, Arrays.asList(ref));
+		
+		IStatus stat = dm.validateProperty(IAddReferenceDataModelProperties.TARGET_REFERENCE_LIST);
+		if (stat != OK_STATUS)
+			throw new CoreException(stat);
+		try {
+			dm.getDefaultOperation().execute(new NullProgressMonitor(), null);
+		} catch (ExecutionException e) {
+			ModuleCoreUIPlugin.logError(e);
+		}	
+	}
+
+	public void labelProviderChanged(LabelProviderChangedEvent event) {
+		if(!availableComponentsViewer.getTree().isDisposed())
+			availableComponentsViewer.refresh(true);
+	}
+
+	protected IModuleHandler getModuleHandler() {
+		if(moduleHandler == null)
+			moduleHandler = new DefaultModuleHandler();
+		return moduleHandler;
+	}
+
+	public void performApply() {
+		performOk();
+		verify();
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/IDependencyPageProvider.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/IDependencyPageProvider.java
new file mode 100644
index 0000000..47332e2
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/IDependencyPageProvider.java
@@ -0,0 +1,63 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    
+ * API in these packages is provisional in this release
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.propertypage;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+
+/**
+ * Suggested use case of this class is as follows:
+ * 
+ * 		provider = DependencyPageExtensionManager.getManager().getProvider(facetedProject);
+ *		if( provider != null ) {
+ *			controls = provider.createPages(facetedProject, this);
+ *			Composite root = provider.createRootControl(controls, parent);
+ *		}
+ */
+public interface IDependencyPageProvider {
+	/**
+	 * Returns true if this page provider knows how to 
+	 * handle the given faceted project, false otherwise
+	 * @param project a project
+	 * @return true if this provider can handle it, false otherwise
+	 */
+	public boolean canHandle(IFacetedProject project);
+	
+	/**
+	 * Returns a list of page control objects which should be
+	 * presented to the user for this project type. 
+	 * 
+	 * @param project
+	 * @param parent
+	 * @return
+	 */
+	public IModuleDependenciesControl[] createPages(IFacetedProject project, ModuleAssemblyRootPage parent);
+	
+	/**
+	 * Turn this array of pages / controls into one root control
+	 * that can be returned to the Properties Page container. 
+
+	 * @param pages
+	 * @param parent
+	 * @return
+	 */
+	public Composite createRootControl(IFacetedProject project, IModuleDependenciesControl[] pages, Composite parent);
+
+	/**
+	 * 
+	 * @return String - page title string or null if default title is desired
+	 */
+	public String getPageTitle(IProject project);
+	
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/IModuleDependenciesControl.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/IModuleDependenciesControl.java
new file mode 100644
index 0000000..d6ca4c8
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/IModuleDependenciesControl.java
@@ -0,0 +1,65 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    
+ * API in these packages is provisional in this release
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.propertypage;
+
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * This represents one control which may be present on a page
+ * and requires to listen in to the specific lifecycle 
+ * events of the page. 
+ */
+public interface IModuleDependenciesControl {
+	/**
+	 * Creates the Composite associated with this control.
+	 * @param parent Parent Composite.
+	 * @return Composite for the control.
+	 */
+	Composite createContents(Composite parent);
+	
+	/**
+	 * Called when the property page's <code>performOk()</code> method is called.
+	 * @return
+	 */
+	boolean performOk();
+	
+	/**
+	 * Called when the property page's <code>performDefaults()</code> method is called.
+	 * @return
+	 */
+	void performDefaults();
+	
+	/**
+	 * Called when the property page's <code>performCancel()</code> method is called.
+	 * @return
+	 */
+	boolean performCancel();
+	
+	/**
+	 * Called when the property page's <code>performApply()</code> method is called.
+	 * @return
+	 */
+	void performApply();
+	
+	/**
+	 * Called when the property page's <code>setVisible()</code> method is called.
+	 * @return
+	 */
+	void setVisible(boolean visible);
+	
+	/**
+	 * Called when the property page's <code>dispose()</code> method is called.
+	 * @return
+	 */
+	void dispose();
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/IReferenceWizardConstants.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/IReferenceWizardConstants.java
new file mode 100644
index 0000000..11d8ce1
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/IReferenceWizardConstants.java
@@ -0,0 +1,89 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    IBM - Ongoing maintenance
+ *    
+ * API in these packages is provisional in this release
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.propertypage;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
+
+public interface IReferenceWizardConstants {
+	/**
+	 * The key representing that this wizard can return a folder mapping
+	 * The value should be an instanceof ComponentResourceProxy
+	 */
+	public static final String FOLDER_MAPPING = "folder.mapping"; //$NON-NLS-1$
+	
+	/**
+	 * This property should map to the IProject which is the root project
+	 * which will enclose the returned reference
+	 */
+	public static final String PROJECT = "root.project"; //$NON-NLS-1$
+	
+	/**
+	 * This property should map to the IVirtualComponent which is the root component
+	 * which will enclose the returned reference
+	 */
+	public static final String ROOT_COMPONENT = "root.component"; //$NON-NLS-1$
+	
+	/**
+	 * This property should map to the IModuleHandler for customized behaviour
+	 */
+	public static final String MODULEHANDLER = "module.handler"; //$NON-NLS-1$
+	
+	/**
+	 * This property should map to the original reference, if the wizard has been opened
+	 * in editing mode. 
+	 */
+	public static final String ORIGINAL_REFERENCE = "dependency.reference.original";//$NON-NLS-1$
+	
+	/**
+	 * This property should map to the final reference, either new reference, 
+	 * or a new instance of a modified reference. 
+	 */
+	public static final String FINAL_REFERENCE = "dependency.reference.final";//$NON-NLS-1$
+	
+	/**
+	 * This property should map to the default location that libraries should be placed.
+	 * If this is unset, the creating or editing wizard fragment can choose to 
+	 * set the runtimePath of the reference to whatever it wants.
+	 */
+	public static final String DEFAULT_LIBRARY_LOCATION = "default.library.location";
+	
+	/**
+	 * This property should map to the default location that generic resources should be placed.
+	 * If this is unset, the creating or editing wizard fragment can choose to 
+	 * set the runtimePath of the reference to whatever it wants.
+	 */
+	public static final String DEFAULT_RESOURCE_LOCATION = "default.resource.location";
+
+	/**
+	 * This property helps track the current state of the component ref model as each subsequent action is taken, but not committed
+	 */
+	public static final String CURRENT_REFS = "current.references";
+	
+	/**
+	 * This key should be used when you want to convert a project into 
+	 * a specific modulecore project type.
+	 * 
+	 */
+	public static final String PROJECT_CONVERTER_OPERATION_PROVIDER = "project.converter.operation.provider";
+	
+	public static final String ALL_DIRECTIVES = "all.directives";
+	
+	/**
+	 * An interface to provide an operation for converting a specific project
+	 */
+	public static interface ProjectConverterOperationProvider {
+		public IDataModelOperation getConversionOperation(IProject project);
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/ModuleAssemblyRootPage.java b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/ModuleAssemblyRootPage.java
new file mode 100644
index 0000000..a9360c5
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore.ui/src/org/eclipse/wst/common/componentcore/ui/propertypage/ModuleAssemblyRootPage.java
@@ -0,0 +1,412 @@
+/******************************************************************************
+ * Copyright (c) 2010 Red Hat and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Konstantin Komissarchik - misc. UI cleanup
+ *    
+ * API in these packages is provisional in this release
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.ui.propertypage;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.dialogs.PropertyPage;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.ui.Messages;
+import org.eclipse.wst.common.componentcore.ui.internal.propertypage.DependencyPageExtensionManager;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+
+/**
+ * Primary project property page for Module assembly;
+ */
+public class ModuleAssemblyRootPage extends PropertyPage {
+	
+	private IProject project;
+	private IModuleDependenciesControl[] controls = new IModuleDependenciesControl[0];
+	private SashForm sform1;
+	private Composite topComposite;
+	private ScrolledComposite problemsViewComposite;
+	private Composite subProblemsViewComposite;
+	
+	public ModuleAssemblyRootPage() {
+		super();
+	}
+	
+	private Composite getFacetErrorComposite(final Composite parent) {
+		final String errorCheckingFacet = Messages.ErrorCheckingFacets;
+		setErrorMessage(errorCheckingFacet);
+		return getErrorComposite(parent, errorCheckingFacet);		
+	}
+	private Composite getVirtCompErrorComposite(final Composite parent) {
+		final String errorCheckingFacet = Messages.ErrorNotVirtualComponent;
+		setErrorMessage(errorCheckingFacet);
+		return getErrorComposite(parent, errorCheckingFacet);		
+	}
+	
+	
+	private Composite getErrorComposite(final Composite parent, final String error) {
+		final Composite composite = new Composite(parent, SWT.NONE);
+		final GridLayout layout = new GridLayout();
+        layout.marginWidth = 0;
+        layout.marginWidth = 0;
+        composite.setLayout(layout);
+        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+		final Label label= new Label(composite, SWT.NONE);
+		label.setText(error);
+		return composite;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
+	 */
+	public boolean performOk() {
+		for (int i = 0; i < controls.length; i++) {
+			if (controls[i] != null) {
+				if (!controls[i].performOk()) {
+					return false;
+				}
+			}
+		}
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
+	 */
+	public void performDefaults() {
+		for (int i = 0; i < controls.length; i++) {
+			if (controls[i] != null) {
+				controls[i].performDefaults();
+			}
+		}
+	}
+	
+	public void performApply() {
+		for (int i = 0; i < controls.length; i++) {
+			if (controls[i] != null) {
+				controls[i].performApply();
+			}
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.IPreferencePage#performCancel()
+	 */
+	public boolean performCancel() {
+		for (int i = 0; i < controls.length; i++) {
+			if (controls[i] != null) {
+				if (!controls[i].performCancel()) {
+					return false;
+				}
+			}
+		}
+		return super.performCancel();
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
+	 */
+	public void setVisible(boolean visible) {
+		super.setVisible(visible);
+		for (int i = 0; i < controls.length; i++) {
+			if (controls[i] != null) {
+				controls[i].setVisible(visible);
+			}
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
+	 */
+	public void dispose() {
+		super.dispose();
+		for (int i = 0; i < controls.length; i++) {
+			if(controls[i] != null){
+				controls[i].dispose();
+			}
+		}
+	}
+
+	protected static void createDescriptionComposite(final Composite parent, final String description) {
+		Composite descriptionComp = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 1;
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		descriptionComp.setLayout(layout);
+		descriptionComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		fillDescription(descriptionComp, description);
+	}
+	
+	private static void fillDescription(Composite c, String s) {
+		GridData data = new GridData(GridData.FILL_HORIZONTAL);
+		data.widthHint = 250;
+		final Text label = new Text( c, SWT.WRAP | SWT.READ_ONLY);
+		label.setBackground(c.getBackground());
+		label.setLayoutData(data);
+		label.setText(s);
+	}
+	
+	protected Control createContents(Composite parent) {
+		
+		// Need to find out what type of project we are handling
+		project = (IProject) getElement().getAdapter(IResource.class);
+		if( project != null ) {
+			try {
+				IFacetedProject facetedProject = ProjectFacetsManager.create(project); 
+				IDependencyPageProvider provider = null;
+				if( facetedProject == null )
+					return getFacetErrorComposite(parent);
+				
+				provider = DependencyPageExtensionManager.getManager().getProvider(facetedProject);
+				if( provider != null ) {
+					controls = provider.createPages(facetedProject, this);
+					controls = controls == null ? new IModuleDependenciesControl[]{} : controls;
+					if (provider.getPageTitle(project) != null)
+						setTitle(provider.getPageTitle(project));
+					
+					this.sform1 = new SashForm( parent, SWT.VERTICAL | SWT.SMOOTH );
+					GridData gd1 = new GridData(SWT.LEFT, SWT.FILL, false, false);
+			        this.sform1.setLayoutData(gd1);
+			        
+					topComposite = provider.createRootControl(facetedProject, controls, sform1);
+				} else {				
+					if( ComponentCore.createComponent(project) == null )
+						return getVirtCompErrorComposite(parent);
+					
+					AddModuleDependenciesPropertiesPage page = new AddModuleDependenciesPropertiesPage(project, this);
+					controls = new IModuleDependenciesControl[1];
+					controls[0] = page;
+					this.sform1 = new SashForm( parent, SWT.VERTICAL | SWT.SMOOTH );
+					GridData gd1 = new GridData(SWT.LEFT, SWT.FILL, false, false);
+			        this.sform1.setLayoutData(gd1);
+			        
+					topComposite = page.createContents(sform1);
+				}
+				
+				problemsViewComposite = new ScrolledComposite(sform1, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
+				GridData gd = new GridData();
+	    		gd.heightHint = 100;
+	        	gd.horizontalAlignment = SWT.FILL;
+	    		gd.verticalAlignment = SWT.BOTTOM;
+	    		problemsViewComposite.setLayoutData(gd);
+	    		problemsViewComposite.setBackground( Display.getDefault().getSystemColor(SWT.COLOR_WHITE) );
+				fillProblemsViewComposite();
+		        this.sform1.setWeights( new int[] { 80, 20 } );
+		        problemsViewComposite.addListener(SWT.Resize, new Listener() {
+					public void handleEvent(Event e) {
+						handleProblemsViewResize();
+					}
+				});
+		        return sform1;
+			} catch( CoreException ce )	{
+			}
+		}
+		return getFacetErrorComposite(parent);
+	}
+	
+	private void handleProblemsViewResize() {
+		if(subProblemsViewComposite != null && !subProblemsViewComposite.isDisposed() && topComposite != null) {
+           	int width = topComposite.getClientArea().width;
+           	if(width < 400) {
+           		width = 400;
+           	}
+			int i = 1;
+			for( Control child : subProblemsViewComposite.getChildren() )
+			{
+				if(i%2 == 0) {
+					GridData gd = (GridData) child.getLayoutData();
+					gd.widthHint = width - 50;
+				}
+				i++;
+			}
+			subProblemsViewComposite.setSize(subProblemsViewComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+        	subProblemsViewComposite.update();
+		}
+	}
+	
+	protected void fillProblemsViewComposite() {
+		if(problemsViewComposite != null) {
+			IStatus [] problems = getProblemElements();
+	    	if(problems != null && problems.length > 0) {
+	    		boolean resize = false;
+				for( Control child : problemsViewComposite.getChildren() )
+				{
+					child.dispose();
+					resize = true;
+				}
+
+	        	subProblemsViewComposite = new Composite( problemsViewComposite, SWT.NONE);
+	            subProblemsViewComposite.setLayoutData(new GridData( SWT.FILL, SWT.FILL, true, true));
+	            subProblemsViewComposite.setLayout(glmargins( new GridLayout(2, false ), 0, 0, 5, 5) );
+	            subProblemsViewComposite.setBackground( Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
+
+	            int width = 400;
+	            if(topComposite != null && topComposite.getClientArea().width > 400) {
+	            	width = topComposite.getClientArea().width;
+	            }
+	            
+	            Listener focusOnProblemListener = new Listener() {
+	                public void handleEvent(Event e) {
+	                  Control problemLabel = (Control) e.widget;
+	                  Rectangle problemLabelBounds = problemLabel.getBounds();
+	                  Rectangle scrollableArea = problemsViewComposite.getClientArea();
+	                  Point currentScrollPosition = problemsViewComposite.getOrigin();
+	                  if (currentScrollPosition.y > problemLabelBounds.y)
+	                	  currentScrollPosition.y = Math.max(0, problemLabelBounds.y);
+	                  if (currentScrollPosition.y + scrollableArea.height < problemLabelBounds.y + problemLabelBounds.height)
+	                	  currentScrollPosition.y = Math.max(0, problemLabelBounds.y + problemLabelBounds.height - scrollableArea.height);
+	                  problemsViewComposite.setOrigin(currentScrollPosition);
+	                }
+	              };
+	           	
+	        	for (int i = 0; i < problems.length; i++) {
+	    			IStatus singleStatus = problems[i];
+	    			if (!singleStatus.isOK() && singleStatus.getMessage() != null) {
+	    				final Label image = new Label( subProblemsViewComposite, SWT.NONE );
+	    				GridData gdImage = new GridData();	    				
+	    				gdImage.verticalAlignment = SWT.BEGINNING;
+	    	            image.setBackground( Display.getDefault().getSystemColor(SWT.COLOR_WHITE) );
+	    	            image.setImage(getProblemImage(singleStatus));
+	    	            image.setLayoutData(gdImage);
+	    	            
+	    	            final Text text  = new Text( subProblemsViewComposite, SWT.WRAP | SWT.READ_ONLY);
+	    	            GridData gdLabel = new GridData();
+	    	            gdLabel.widthHint = width - 50;
+	    	            text.setBackground( Display.getDefault().getSystemColor(SWT.COLOR_WHITE) );
+	    	            text.setText(singleStatus.getMessage());
+	    	            text.setLayoutData(gdLabel);
+	    	            text.addListener(SWT.Activate, focusOnProblemListener);
+	    			}
+	    		}
+	            problemsViewComposite.setContent(subProblemsViewComposite);
+	            
+	            if(resize)
+	            	handleProblemsViewResize();
+	            
+	            if( this.sform1.getMaximizedControl() != null ) {
+	                this.sform1.setMaximizedControl( null );
+	            }
+	    	} else {
+	    		this.sform1.setMaximizedControl( this.topComposite );
+	    	}
+		}
+	}
+	
+	
+	private final static GridLayout glmargins( final GridLayout layout,
+			final int marginWidth,
+			final int marginHeight,
+			final int marginTop,
+			final int marginBottom)
+	{
+		layout.marginWidth = marginWidth;
+		layout.marginHeight = marginHeight;
+		layout.marginLeft = 0;
+		layout.marginRight = 0;
+		layout.marginTop = marginTop;
+		layout.marginBottom = marginBottom;
+
+		return layout;
+	}
+	
+    public void createControl(Composite parent){
+    	super.createControl(parent);
+    	getDefaultsButton().setText(Messages.Revert);
+    }
+    
+    public void refreshProblemsView(){
+    	setErrorMessage(null);
+		setMessage(null);
+    	setValid(true);
+    	fillProblemsViewComposite();
+    }
+    
+    private Image getProblemImage(IStatus element) {
+		final ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages();
+		final String imageType;
+
+		if(element.getSeverity() == IStatus.ERROR) {
+			imageType = ISharedImages.IMG_OBJS_ERROR_TSK;
+		}
+		else {
+			imageType = ISharedImages.IMG_OBJS_WARN_TSK;
+		}
+		return sharedImages.getImage( imageType );
+	}
+    
+    protected IStatus[] getProblemElements() {
+		final List<IStatus> errors = new ArrayList<IStatus>();
+		final List<IStatus> warnings = new ArrayList<IStatus>();
+        
+		for (int i = 0; i < controls.length; i++) {
+			if (controls[i] != null) {
+				IStatus status = Status.OK_STATUS;
+				if(controls[i] instanceof AbstractIModuleDependenciesControl)
+					status = ((AbstractIModuleDependenciesControl) controls[i]).validate();
+				if(status != null) {
+					if (status.isMultiStatus()) {
+						MultiStatus multi = (MultiStatus)status;
+						if (!multi.isOK()) {
+							for (int y = 0; y < multi.getChildren().length; y++) {
+								IStatus singleStatus = multi.getChildren()[y];
+								if(singleStatus.getMessage() != null && singleStatus.getMessage().trim().length() > 0) {
+									if(multi.getChildren()[y].getSeverity() == IStatus.ERROR) {
+										errors.add(multi.getChildren()[y]);
+									} else {
+										warnings.add(multi.getChildren()[y]);
+									}
+								}
+							}
+						}
+					} else if (!status.isOK()) {
+						if(status.getMessage() != null && status.getMessage().trim().length() > 0) {
+							if(status.getSeverity() == IStatus.ERROR) {
+								errors.add(status);
+							} else {
+								warnings.add(status);
+							}
+						}
+					}
+				}
+			}
+		}
+		if(errors.size() > 0) {
+			setValid(false);
+			errors.addAll(warnings);
+			// This returns all the errors followed by all the warnings
+			return errors.toArray(new IStatus[errors.size()]);
+		}
+		return warnings.toArray(new IStatus[warnings.size()]);
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF
index ae56c2e..19df5fe 100644
--- a/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name.0
 Bundle-Vendor: %provider
 Bundle-SymbolicName: org.eclipse.wst.common.modulecore; singleton:=true
-Bundle-Version: 1.1.200.qualifier
+Bundle-Version: 1.2.101.qualifier
 Bundle-Activator: org.eclipse.wst.common.componentcore.internal.ModulecorePlugin
 Bundle-Localization: plugin
 Export-Package: org.eclipse.wst.common.componentcore,
@@ -11,10 +11,12 @@
  org.eclipse.wst.common.componentcore.datamodel.properties,
  org.eclipse.wst.common.componentcore.internal;x-internal:=true,
  org.eclipse.wst.common.componentcore.internal.builder;x-internal:=true,
+ org.eclipse.wst.common.componentcore.internal.flat;x-internal:=true,
  org.eclipse.wst.common.componentcore.internal.impl;x-internal:=true,
  org.eclipse.wst.common.componentcore.internal.operation;x-internal:=true,
  org.eclipse.wst.common.componentcore.internal.resources;x-internal:=true,
  org.eclipse.wst.common.componentcore.internal.util;x-internal:=true,
+ org.eclipse.wst.common.componentcore.resolvers;x-internal:=true,
  org.eclipse.wst.common.componentcore.resources
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.wst.common.frameworks;bundle-version="[1.1.200,2.0.0)",
@@ -30,5 +32,6 @@
  org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.wst.common.environment;bundle-version="[1.0.200,2.0.0)",
  org.eclipse.wst.validation;bundle-version="[1.2.0,2.0.0)"
+Bundle-ActivationPolicy: lazy
 Eclipse-LazyStart: true
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.common.modulecore/about.html b/plugins/org.eclipse.wst.common.modulecore/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.modulecore/about.html
+++ b/plugins/org.eclipse.wst.common.modulecore/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.modulecore/javadoc-images/componentCore.xsd b/plugins/org.eclipse.wst.common.modulecore/javadoc-images/componentCore.xsd
index a2d8828..f6c87e9 100644
--- a/plugins/org.eclipse.wst.common.modulecore/javadoc-images/componentCore.xsd
+++ b/plugins/org.eclipse.wst.common.modulecore/javadoc-images/componentCore.xsd
@@ -31,6 +31,9 @@
                                     	<attribute name="handle"

                                     		type="string" use="required">

                                     	</attribute>

+                                    	<attribute name="archiveName"

+                                    		type="string" use="optional">

+                                    	</attribute>

                                     	<attribute name="deploy-path"

                                     		type="string" use="required">

                                     	</attribute>

diff --git a/plugins/org.eclipse.wst.common.modulecore/model/componentCore.ecore b/plugins/org.eclipse.wst.common.modulecore/model/componentCore.ecore
index fccafb8..ec338c4 100644
--- a/plugins/org.eclipse.wst.common.modulecore/model/componentCore.ecore
+++ b/plugins/org.eclipse.wst.common.modulecore/model/componentCore.ecore
@@ -28,6 +28,7 @@
         lowerBound="1" eType="#//WorkbenchComponent" eOpposite="#//WorkbenchComponent/resources"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceType" lowerBound="1"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral=""/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tag" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EDataType" name="IPath" instanceClassName="org.eclipse.core.runtime.IPath">
     <eAnnotations source="keywords">
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/modulecore.properties b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/modulecore.properties
index 55b628e..d307f4a 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/modulecore.properties
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/modulecore.properties
@@ -8,4 +8,4 @@
 # Contributors:
 # IBM Corporation - initial API and implementation
 ###############################################################################
-NEEDSMIGRATING=This project needs to migrate WTP metadata
\ No newline at end of file
+NEEDSMIGRATING=This project needs to migrate metadata
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ArtifactEdit.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ArtifactEdit.java
index 46c541d..eee7b8a 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ArtifactEdit.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ArtifactEdit.java
@@ -281,13 +281,22 @@
 	 *            {@see ModuleCoreNature}
 	 */
 	protected ArtifactEdit(ModuleCoreNature aNature, IVirtualComponent aModule, boolean toAccessAsReadOnly) {
-		if (toAccessAsReadOnly)
-			artifactEditModel = aNature.getArtifactEditModelForRead(ModuleURIUtil.fullyQualifyURI(aModule.getProject()), this);
-		else
-			artifactEditModel = aNature.getArtifactEditModelForWrite(ModuleURIUtil.fullyQualifyURI(aModule.getProject()), this);
+		
 		isReadOnly = toAccessAsReadOnly;
 		isArtifactEditModelSelfManaged = true;
 		project = aNature.getProject();
+		IProject aProject = aModule.getProject();
+		URI componentURI = ModuleURIUtil.fullyQualifyURI(aProject);
+		Map editModelParams = null;
+		if (getContentTypeDescriber() != null) {
+			editModelParams = new HashMap();
+			editModelParams.put(ArtifactEditModelFactory.PARAM_ROOT_URI, getRootURI());
+			editModelParams.put(ArtifactEditModelFactory.PARAM_ROOT_CONTENT_TYPE, getContentTypeDescriber());
+		}
+		if (toAccessAsReadOnly) 
+			artifactEditModel = aNature.getArtifactEditModelForRead(componentURI, this, null, editModelParams);
+		else 
+			artifactEditModel = aNature.getArtifactEditModelForWrite(componentURI, this, null, editModelParams);
 	}
 
 	/**
@@ -406,13 +415,13 @@
 	protected String getContentTypeDescriber() {
 		
 		if (isProjectOfType(project, IModuleConstants.JST_EJB_MODULE))
-			return "org.eclipse.jst.j2ee.ejbDD";
+			return "org.eclipse.jst.j2ee.ejbDD"; //$NON-NLS-1$
 		if (isProjectOfType(project, IModuleConstants.JST_WEB_MODULE))
-			return "org.eclipse.jst.j2ee.webDD";
+			return "org.eclipse.jst.j2ee.webDD"; //$NON-NLS-1$
 		if (isProjectOfType(project, IModuleConstants.JST_EAR_MODULE))
-			return "org.eclipse.jst.j2ee.earDD";
+			return "org.eclipse.jst.j2ee.earDD"; //$NON-NLS-1$
 		if (isProjectOfType(project, IModuleConstants.JST_APPCLIENT_MODULE))
-			return "org.eclipse.jst.j2ee.appclientDD";
+			return "org.eclipse.jst.j2ee.appclientDD"; //$NON-NLS-1$
 		return null;
 	}
 	
@@ -467,7 +476,7 @@
 	public void saveIfNecessary(IProgressMonitor aMonitor) {
 		if (isReadOnly())
 			throwAttemptedReadOnlyModification();
-		else if (validateEdit().isOK())
+		else if (artifactEditModel.isDirty() && validateEdit().isOK())
 			artifactEditModel.saveIfNecessary(aMonitor, this);
 	}
 	
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ComponentCore.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ComponentCore.java
index 93c1e35..36e4a5c 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ComponentCore.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ComponentCore.java
@@ -17,6 +17,7 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.wst.common.componentcore.internal.ComponentResource;
+import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
 import org.eclipse.wst.common.componentcore.internal.StructureEdit;
 import org.eclipse.wst.common.componentcore.internal.impl.ResourceTreeNode;
 import org.eclipse.wst.common.componentcore.internal.resources.VirtualFile;
@@ -70,6 +71,26 @@
 	 * 
 	 * @param aProject
 	 *            A valid, accessible project to contain the component
+	 * @param checkForComponentFile
+	 *            A flag to indicate if the presence of the component file should be checked
+	 * @return A handle to an IVirtualComponent that may or may not exist or
+	 *         null if passed project does not contain ModuleCoreNature.
+	 * @see org.eclipse.core.runtime.IProgressMonitor#create(int, org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public static IVirtualComponent createComponent(IProject aProject, boolean checkForComponentFile) {
+		if (aProject == null || !aProject.isAccessible()){
+			return null;
+		}
+		return ComponentImplManager.instance().createComponent(aProject, checkForComponentFile);
+	}
+
+	/**
+	 * Return an IVirtualComponent with the given name (aComponentName)
+	 * contained by the given project (aProject). Component names should be
+	 * unique across a project.
+	 * 
+	 * @param aProject
+	 *            A valid, accessible project to contain the component
 	 * @return A handle to an IVirtualComponent that may or may not exist or
 	 *         null if passed project does not contain ModuleCoreNature.
 	 * @deprecated
@@ -94,6 +115,21 @@
 	}
 
 	/**
+	 * Return an IVirtualComponent with the given name (aComponentName)
+	 * and the given runtime path (path)
+	 * 
+	 * @param aComponentName
+	 *            A name to identify the component, the name can be
+	 *            lib/&lt;Absolute path of a jar&gt; or
+	 *            var/&lt;CLASSPATH_VARIABLE/library namer&gt;
+	 * @return A handle to an IVirtualComponent that may or may not exist.
+	 * @see org.eclipse.core.runtime.IProgressMonitor#create(int, org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public static IVirtualComponent createArchiveComponent(IProject aProject, String aComponentName, IPath runtimePath) {
+		return ComponentImplManager.instance().createArchiveComponent(aProject, aComponentName, runtimePath);
+	}
+
+	/**
 	 * Return an IVirtualFolder with a runtime path specified by aRuntimePath
 	 * contained by aProject, in a component named aComponentName. The resultant
 	 * IVirtualFolder may or may not exist.
@@ -181,7 +217,7 @@
 				}
 			}
 		} catch (UnresolveableURIException e) {
-			e.printStackTrace();
+			ModulecorePlugin.logError(e);
 		} finally {
 			if (se != null) {
 				se.dispose();
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ModuleCoreNature.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ModuleCoreNature.java
index 11e34fd..ab96853 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ModuleCoreNature.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ModuleCoreNature.java
@@ -13,6 +13,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IProjectDescription;
 import org.eclipse.core.resources.IProjectNature;
@@ -38,6 +39,7 @@
 import org.eclipse.wst.common.componentcore.internal.impl.ArtifactEditModelFactory;
 import org.eclipse.wst.common.componentcore.internal.impl.ComponentCoreURIConverter;
 import org.eclipse.wst.common.componentcore.internal.impl.ModuleStructuralModelFactory;
+import org.eclipse.wst.common.componentcore.internal.impl.WTPModulesResourceFactory;
 import org.eclipse.wst.common.componentcore.internal.impl.WTPResourceFactoryRegistry;
 import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
 import org.eclipse.wst.common.componentcore.internal.util.ModuleCoreMessages;
@@ -47,6 +49,7 @@
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
 import org.eclipse.wst.common.project.facet.core.IProjectFacet;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 
 /**
  * <p>
@@ -141,8 +144,9 @@
  */
 public class ModuleCoreNature extends EditModelNature implements IProjectNature, IModuleConstants, ISynchronizerExtender {
 	
-    public static final String VALIDATION_BUILDER_ID = "org.eclipse.wst.validation.validationbuilder"; // plugin id of the validation builder//$NON-NLS-1$
-    private ModuleStructuralModel cachedModel;
+    public static final String VALIDATION_BUILDER_ID = ValidationPlugin.VALIDATION_BUILDER_ID;
+    private ModuleStructuralModel cachedWriteHandle;
+    private ModuleStructuralModel cachedReadHandle;
 	/**
 	 * <p>
 	 * Find and return the ModuleCoreNature of aProject, if available.
@@ -163,8 +167,33 @@
 		}
 		return null;
 	}
+	// The existence of this Nature plus the component file on disk makes a flexible project
 	public static boolean isFlexibleProject(IProject project) {
-		return ModuleCoreNature.getModuleCoreNature(project) != null;
+		boolean foundNature = ModuleCoreNature.getModuleCoreNature(project) != null;
+		if (foundNature) {
+			return componentResourceExists(project);
+		}
+		return false;
+	}
+	public static boolean componentResourceExists(IProject project) {
+		
+		IFile compFile = project.getFile(StructureEdit.MODULE_META_FILE_NAME);
+		if (compFile.isAccessible())
+			return true;
+		else { //Need to check for legacy file locations also....
+			compFile = project.getFile(ModuleStructuralModel.R1_MODULE_META_FILE_NAME);
+			if (compFile.isAccessible())
+				return true;
+			else {
+				compFile = project.getFile(ModuleStructuralModel.R0_7_MODULE_META_FILE_NAME);
+				if (compFile.isAccessible())
+					return true;
+				else {
+					compFile = project.getFile(WTPModulesResourceFactory.FIRST_WTP_MODULES_SHORT_NAME);
+					return compFile.isAccessible();
+				}
+			}
+		}
 	}
 
 	/**
@@ -200,14 +229,14 @@
 				description.setNatureIds(newNatureIds);
 				aProject.setDescription(description, aMonitor);
 			} catch (CoreException e) {
-				e.printStackTrace(); 				
+				ModulecorePlugin.logError(e);
 			} finally {
 				manager.endRule(root);
 			} 			
 			if (aMonitor != null)
 				aMonitor.done();
 		} catch (CoreException e) {
-			e.printStackTrace();
+			ModulecorePlugin.logError(e);
 		}
 		/* Return the new nature */
 		return getModuleCoreNature(aProject);
@@ -236,7 +265,15 @@
 	 * @return A {@see ModuleStructuralModel}for the project of the current nature.
 	 */
 	public ModuleStructuralModel getModuleStructuralModelForRead(Object anAccessorKey) {
-		return (ModuleStructuralModel) getEditModelForRead(ModuleStructuralModelFactory.MODULE_STRUCTURAL_MODEL_ID, anAccessorKey);
+		// Return self managed edit model - will always cache locally
+		ModuleStructuralModel editModel = (ModuleStructuralModel)getEmfContext().getExistingEditModel(ModuleStructuralModelFactory.MODULE_STRUCTURAL_MODEL_ID, null,true);
+		if (editModel == null) {
+			editModel = (ModuleStructuralModel)EditModelRegistry.getInstance().createEditModelForRead(ModuleStructuralModelFactory.MODULE_STRUCTURAL_MODEL_ID, getEmfContext(), null);
+			getEmfContext().cacheEditModel(editModel, null);
+			editModel.access(anAccessorKey);
+		} else 
+			editModel.access(anAccessorKey);
+		return editModel;
 	}
 
 	/**
@@ -262,7 +299,17 @@
 	 * @return A {@see ModuleStructuralModel}for the project of the current nature.
 	 */
 	public ModuleStructuralModel getModuleStructuralModelForWrite(Object anAccessorKey) {
-		return (ModuleStructuralModel) getEditModelForWrite(ModuleStructuralModelFactory.MODULE_STRUCTURAL_MODEL_ID, anAccessorKey);
+		// Return self managed edit model - will always cache locally
+		ModuleStructuralModel editModel = (ModuleStructuralModel)getEmfContext().getExistingEditModel(ModuleStructuralModelFactory.MODULE_STRUCTURAL_MODEL_ID, null,false);
+		if (editModel == null) {
+			editModel = (ModuleStructuralModel)EditModelRegistry.getInstance().createEditModelForWrite(ModuleStructuralModelFactory.MODULE_STRUCTURAL_MODEL_ID, getEmfContext(), null);
+			getEmfContext().cacheEditModel(editModel, null);
+			editModel.access(anAccessorKey);
+			
+		} else 
+			editModel.access(anAccessorKey);
+		
+		return editModel;
 	}
 
 	/**
@@ -494,7 +541,9 @@
 		// addAdapterFactories(set);
 		// set.getSynchronizer().addExtender(this); // added so we can be informed of closes to the
 		// new J2EEResourceDependencyRegister(set); // This must be done after the URIConverter is
-		cacheModuleStructuralModel();
+		if(projectResourceSet.getSynchronizer() != null)
+			projectResourceSet.getSynchronizer().addExtender(this); // added so we can be informed of closes
+		cacheModuleStructuralModels();
 	}
 	
 	/**
@@ -550,12 +599,14 @@
 		
 	}
 
-	private void cacheModuleStructuralModel() {
-		if (cachedModel == null)
-			cachedModel = getModuleStructuralModelForRead(this);
+	private void cacheModuleStructuralModels() {
+		if (cachedWriteHandle == null)
+			cachedWriteHandle = getModuleStructuralModelForWrite(this);
+		//if (cachedReadHandle == null)
+		//	cachedReadHandle = getModuleStructuralModelForRead(this);
 	}
 
-	protected String getPluginID() {
+	public String getPluginID() {
 		return MODULE_PLUG_IN_ID;
 	}
 
@@ -565,9 +616,17 @@
 
 	public void shutdown() {
 		super.shutdown();
-		if (cachedModel != null) {
-			cachedModel.dispose();
-			cachedModel = null;
+		if (cachedWriteHandle != null) {
+			if (cachedWriteHandle.isDirty())
+				cachedWriteHandle.saveIfNecessary(this);
+			cachedWriteHandle.dispose();
+			cachedWriteHandle = null;
+		}
+		if (cachedReadHandle != null) {
+			if (cachedReadHandle.isDirty())
+				cachedReadHandle.saveIfNecessary(this);
+			cachedReadHandle.dispose();
+			cachedReadHandle = null;
 		}
 	}
 
@@ -577,9 +636,12 @@
 	 * @see org.eclipse.wst.common.internal.emfworkbench.ISynchronizerExtender#projectChanged(org.eclipse.core.resources.IResourceDelta)
 	 */
 	public void projectChanged(IResourceDelta delta) {
-		if (delta.getKind() == IResourceDelta.OPEN)
-			if (cachedModel == null)
-				cachedModel = getModuleStructuralModelForRead(this);
+		if (delta.getKind() == IResourceDelta.OPEN) {
+			if (cachedWriteHandle == null)
+				cachedWriteHandle = getModuleStructuralModelForWrite(this);
+			//if (cachedReadHandle == null)
+			//	cachedReadHandle = getModuleStructuralModelForRead(this);
+		}
 	
 	}
 
@@ -589,10 +651,19 @@
 	 * @see org.eclipse.wst.common.internal.emfworkbench.ISynchronizerExtender#projectClosed()
 	 */
 	public void projectClosed() {
+//		StringBuffer buffer = new StringBuffer("Disposing Module models for project: ");
+//		buffer.append(this.getProject());
+//		System.out.println(buffer.toString());
 		this.emfContext = null;
-		if (cachedModel != null) {
-			cachedModel.dispose();
-			cachedModel = null;
+		if (cachedWriteHandle != null) {
+//			if (cachedWriteHandle.isDirty())
+//				cachedWriteHandle.saveIfNecessary(this);
+			cachedWriteHandle.dispose();
+			cachedWriteHandle = null;
+		}
+		if (cachedReadHandle != null) {
+			cachedReadHandle.dispose();
+			cachedReadHandle = null;
 		}
 	}
 
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetDataModelConfigAdapter.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetDataModelConfigAdapter.java
index 431c7ee..cc8675d 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetDataModelConfigAdapter.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetDataModelConfigAdapter.java
@@ -62,6 +62,12 @@
     {
         return dm.validate();
     }
+    
+    public void dispose()
+    {
+        super.dispose();
+        dm.dispose();
+    }
 
     public static final class Factory
     
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
index d8cb5d6..aecde37 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
@@ -24,9 +24,9 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
 import org.eclipse.wst.common.componentcore.internal.operation.FacetProjectCreationOperation;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider;
 import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
@@ -41,11 +41,11 @@
 import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
 import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
 import org.eclipse.wst.common.project.facet.core.IProjectFacet;
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
 import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
 import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
 import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
@@ -80,10 +80,11 @@
 		return names;
 	}
 
+	private final IFacetedProjectWorkingCopy fpjwc = FacetedProjectFramework.createNewProject();
+	
 	public void init() {
 		super.init();
 		
-		final IFacetedProjectWorkingCopy fpjwc = FacetedProjectFramework.createNewProject();
 		model.setProperty(FACETED_PROJECT_WORKING_COPY, fpjwc);
 		
 		fpjwc.addListener
@@ -134,7 +135,10 @@
                 {
                     final String projectName = (String) event.getProperty();
 					getDataModel().setProperty(FACET_PROJECT_NAME, projectName);
-					fpjwc.setProjectName( projectName );
+					IStatus status = getDataModel().validateProperty(FACET_PROJECT_NAME);
+                    if( status.isOK() ){
+                    	fpjwc.setProjectName( projectName );
+                    }
 				}
                 else if( prop.equals( IProjectCreationPropertiesNew.PROJECT_LOCATION ) )
                 {
@@ -146,6 +150,14 @@
 		model.addNestedModel(NESTED_PROJECT_DM, projectDataModel);
 	}
 
+	@Override
+	public void dispose() {
+		if(fpjwc != null){
+			fpjwc.dispose();
+		}
+		super.dispose();
+	}
+	
 	protected class FacetActionMapImpl extends HashMap implements FacetActionMap {
 		private static final long serialVersionUID = 1L;
 		private boolean supressNotification = false;
@@ -320,7 +332,7 @@
 								facetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, newVersion);
 							}
 						} catch (CoreException e) {
-							Logger.getLogger().logError(e);
+							ModulecorePlugin.logError(e);
 						}
 					}
 				}
@@ -344,10 +356,17 @@
 	            
 	            if( ! ( config instanceof IDataModel ) )
 	            {
-	                config = Platform.getAdapterManager().getAdapter( config, IDataModel.class );
+	                config = Platform.getAdapterManager().loadAdapter( config, IDataModel.class.getName() );
 	            }
 	            
-	            facetDmMap.add( (IDataModel) config );
+	            final IDataModel dm = (IDataModel) config;
+	            
+	            facetDmMap.put( facet.getId(), dm );
+	            
+	            for( String alias : facet.getAliases() )
+	            {
+	                facetDmMap.put( alias, dm );
+	            }
 	        }
 		}
 		return super.propertySet(propertyName, propertyValue);
@@ -420,7 +439,7 @@
 				descriptors[i] = new DataModelPropertyDescriptor(runtime, runtime.getLocalizedName());
 			}
 			if(descriptors.length > 2){
-				Arrays.sort(descriptors, 0, descriptors.length - 2, new Comparator() {
+				Arrays.sort(descriptors, 0, descriptors.length - 1, new Comparator() {
 					public int compare(Object arg0, Object arg1) {
 						DataModelPropertyDescriptor d1 = (DataModelPropertyDescriptor)arg0;
 						DataModelPropertyDescriptor d2 = (DataModelPropertyDescriptor)arg1;
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/ProjectMigratorDataModelProvider.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/ProjectMigratorDataModelProvider.java
index 21c3ca3..07adcaf 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/ProjectMigratorDataModelProvider.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/ProjectMigratorDataModelProvider.java
@@ -17,6 +17,12 @@
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
 
+/**
+ * This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+ * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+ * @deprecated 
+ * @author jsholl
+ */
 public class ProjectMigratorDataModelProvider extends AbstractDataModelProvider implements IProjectMigratorDataModelProperties {
 
 	public Set getPropertyNames() {
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IAddReferenceDataModelProperties.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IAddReferenceDataModelProperties.java
new file mode 100644
index 0000000..200a2dd
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IAddReferenceDataModelProperties.java
@@ -0,0 +1,52 @@
+/******************************************************************************
+ * Copyright (c) 2009 Red Hat
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Rob Stryker - initial implementation and ongoing maintenance
+ *    Carl Anderson (IBM) - SYNC_PRIMARY_RUNTIME
+ ******************************************************************************/
+package org.eclipse.wst.common.componentcore.datamodel.properties;
+
+
+/**
+ * This is an alternative to ICreateReferenceComponentsDataModelProperties
+ * It is meant to be a simpler type of operation where you can pass in
+ * an already-formed IVirtualReference rather than the individual properties
+ * to be set. 
+ */
+public interface IAddReferenceDataModelProperties {
+	
+	/**
+	 * <p>
+	 * This required property is the {@link org.eclipse.wst.common.componentcore.resources.IVirtualComponent} which will reference the
+	 * {@link org.eclipse.wst.common.componentcore.resources.IVirtualComponent}s specified by {@link #TARGET_COMPONENT_LIST}.
+	 * </p>
+	 * <p>
+	 * For example, if {@link org.eclipse.wst.common.componentcore.resources.IVirtualComponent}s A, B, and C exist and references are required
+	 * from A to B and A to C, then {@link #SOURCE_COMPONENT} should be set to A, and
+	 * {@link #TARGET_COMPONENT_LIST} should be set to a {@link java.util.List} containing B and C.
+	 * </p>
+	 */
+	public static final String SOURCE_COMPONENT = "IAddReferenceDataModelProperties.SOURCE_COMPONENT"; //$NON-NLS-1$
+
+	/**
+	 * <p>
+	 * This required property is the {@link java.util.List} containing the {@link org.eclipse.wst.common.componentcore.resources.IVirtualReference}s that
+	 * will be referenced from the {@link org.eclipse.wst.common.componentcore.resources.IVirtualComponent} specified by {@link #SOURCE_COMPONENT}.
+	 * It may also be a single {@link org.eclipse.wst.common.componentcore.resources.IVirtualReference} if desired
+	 * </p>
+	 */
+	public static final String TARGET_REFERENCE_LIST = "IAddReferenceDataModelProperties.TARGET_REFERENCE_LIST"; //$NON-NLS-1$
+
+	/**
+	 * <p>
+	 * This required property is a {@link java.util.Boolean} that specifies whether the child project's primary runtime should be set 
+	 * to the same primary runtime as the parent.  The default is TRUE.
+	 * </p>
+	 */
+	public static final String SYNC_PRIMARY_RUNTIME = "IAddReferenceDataModelProperties.SYNC_PRIMARY_RUNTIME"; //$NON-NLS-1$
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IComponentCreationDataModelProperties.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IComponentCreationDataModelProperties.java
deleted file mode 100644
index c8dcf56..0000000
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IComponentCreationDataModelProperties.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.componentcore.datamodel.properties;
-
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelProperties;
-import org.eclipse.wst.common.frameworks.internal.DoNotUseMeThisWillBeDeletedPost15;
-
-/**
- * <p>
- * IComponentCreationDataModelProperties provides properties to the DataModel associated with the
- * ComponentCreationDataModelProvider as well as all extending interfaces extending
- * IComponentCreationDataModelProperties specifically, but not limited to all J2EE component related
- * creation.
- * 
- * @see org.eclipse.wst.common.componentcore.internal.operation.ComponentCreationDataModelProvider
- *      </p>
- *      <p>
- *      This interface is not intended to be implemented by clients.
- *      </p>
- * 
- * @see org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider
- * @see org.eclipse.wst.common.frameworks.datamodel.DataModelFactory
- * @see org.eclipse.wst.common.frameworks.datamodel.IDataModelProperties
- * 
- * @plannedfor 1.0
- */
-/**
- * This has been slated for removal post WTP 1.5. Do not use this class/interface
- * 
- * @deprecated
- * 
- * @see IConnectorFacetInstallDataModelProperties
- */
-public interface IComponentCreationDataModelProperties extends IDataModelProperties, DoNotUseMeThisWillBeDeletedPost15 {
-
-	/**
-	 * Required, type String. The user defined name of the target project for the component to be
-	 * created.
-	 */
-	public static final String PROJECT_NAME = "IComponentCreationDataModelProperties.PROJECT_NAME"; //$NON-NLS-1$
-	/**
-	 * Required, type String. The user defined name of the component to be created.
-	 */
-	public static final String COMPONENT_NAME = "IComponentCreationDataModelProperties.COMPONENT_NAME"; //$NON-NLS-1$
-	/**
-	 * Required, type String. The user defined location on disk of the target project for the
-	 * component to be created. Defaulted to default eclipse workspace location
-	 */
-	public static final String LOCATION = "IFlexibleProjectCreationDataModelProperties.LOCATION"; //$NON-NLS-1$
-
-
-	/**
-	 * Required, type String. The user defined deploy name of the component to be created. The
-	 * DataModelProvider will default the name to the COMPONENT_NAME.
-	 */
-	public static final String COMPONENT_DEPLOY_NAME = "IComponentCreationDataModelProperties.COMPONENT_DEPLOY_NAME"; //$NON-NLS-1$
-	/**
-	 * Required, type String. Nested operation to create a new project.
-	 */
-	public static final String NESTED_PROJECT_CREATION_DM = "IComponentCreationDataModelProperties.NESTED_PROJECT_CREATION_DM"; //$NON-NLS-1$
-	// TODO delete this
-	/**
-	 * Optional, type Boolean The default value is <code>Boolean.TRUE</code>. If this property is
-	 * set to <code>Boolean.TRUE</code> then a default deployment descriptor and supporting
-	 * bindings files will be generated.
-	 */
-	public static final String CREATE_DEFAULT_FILES = "IComponentCreationDataModelProperties.CREATE_DEFAULT_FILES"; //$NON-NLS-1$
-
-	/**
-	 * An unsettable result property used to retreive the created virtual component after the
-	 * operation has executed.
-	 */
-	public static final String COMPONENT = "IComponentCreationDataModelProperties.COMPONENT"; //$NON-NLS-1$
-
-}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/ICreateReferenceComponentsDataModelProperties.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/ICreateReferenceComponentsDataModelProperties.java
index 10a1f94..0dec083 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/ICreateReferenceComponentsDataModelProperties.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/ICreateReferenceComponentsDataModelProperties.java
@@ -33,14 +33,25 @@
 	 */
 	public static final String TARGET_COMPONENT_LIST = "ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT"; //$NON-NLS-1$
 
-	//TODO this should be a map
 	/**
 	 * Optional, deploy path for the dependent component, default is "/"
+	 * Note: this is the default for the entire archive.  See {@link #TARGET_COMPONENTS_DEPLOY_PATH_MAP}
 	 */
 	public static final String TARGET_COMPONENTS_DEPLOY_PATH = "ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_DEPLOY_PATH"; //$NON-NLS-1$
 
 	/**
 	 * <p>
+	 * This optional property is the {@link Map} containing keys of {@link IVirtualComponent}s and
+	 * values of {@link String}s. This map is used to specify the String which should be used by
+	 * the {@link IVirtualComponent} specified by the {@link #SOURCE_COMPONENT} property to lookup
+	 * the deploy path. The {@link Set} of {@link IVirtualComponent}s in the
+	 * keys of this {@link Map} should have the same contents as the {@link List}.
+	 * </p>
+	 */
+	public static final String TARGET_COMPONENTS_DEPLOY_PATH_MAP = "ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_DEPLOY_PATH_MAP"; //$NON-NLS-1$
+
+	/**
+	 * <p>
 	 * This optional property is the {@link java.util.Map} containing keys of {@link org.eclipse.wst.common.componentcore.resources.IVirtualComponent}s and
 	 * values of {@link String}s. This map is used to specify the String which should be used by
 	 * the {@link org.eclipse.wst.common.componentcore.resources.IVirtualComponent} specified by the {@link #SOURCE_COMPONENT} property to lookup
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IProjectMigratorDataModelProperties.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IProjectMigratorDataModelProperties.java
index 1e93fff..012b49d 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IProjectMigratorDataModelProperties.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IProjectMigratorDataModelProperties.java
@@ -12,6 +12,12 @@
 
 import org.eclipse.wst.common.frameworks.datamodel.IDataModelProperties;
 
+/**
+ * This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+ * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+ * @deprecated 
+ * @author jsholl
+ */
 public interface IProjectMigratorDataModelProperties extends IDataModelProperties {
 
 
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IServerContextRootDataModelProperties.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IServerContextRootDataModelProperties.java
new file mode 100644
index 0000000..c939138
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/properties/IServerContextRootDataModelProperties.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.datamodel.properties;
+
+import org.eclipse.wst.common.componentcore.internal.operation.ServerContextRootDataModelProvider;
+
+public interface IServerContextRootDataModelProperties {
+	/**
+	 * This field should not be used.  It is not part of the API and may be modified in the future.
+	 */
+	public static Class _provider_class = ServerContextRootDataModelProvider.class;
+
+	public static final String PROJECT = "IServerContextRootDataModelProperties.PROJECT"; //$NON-NLS-1$	
+	public static final String CONTEXT_ROOT = "IServerContextRootDataModelProperties.CONTEXT_ROOT"; //$NON-NLS-1$
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ArtifactEditModel.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ArtifactEditModel.java
index 9e38950..9d1fafd 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ArtifactEditModel.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ArtifactEditModel.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.common.componentcore.internal;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.eclipse.core.resources.IProject;
@@ -21,7 +22,6 @@
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.UnresolveableURIException;
 import org.eclipse.wst.common.componentcore.internal.impl.PlatformURLModuleConnection;
@@ -35,6 +35,7 @@
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
 import org.eclipse.wst.common.project.facet.core.IFacetedProjectListener;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
 
 /**
  * 
@@ -149,12 +150,10 @@
 			facetProj = ProjectFacetsManager.create(project);
 			if (facetProj != null)
 				facetProj.addListener(this);
-		} catch (UnresolveableURIException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
+		} catch (UnresolveableURIException e){
+			ModulecorePlugin.logError(e);
 		} catch (CoreException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
+			ModulecorePlugin.logError(e);
 		}finally {
 			componentProject = aProject;
 		}
@@ -274,7 +273,8 @@
 	 * @throws UnresolveableURIException
 	 *             could not WorkbenchResource with the corresponding URI.
 	 */
-	protected boolean processResourcesIfInterrested(List theResources) {
+	protected boolean processResourcesIfInterrested(List aTheResources) {
+		List theResources = new ArrayList(aTheResources);
 		int size = theResources.size();
 		Resource resourceToProcess;
 		boolean processed = false; 
@@ -325,8 +325,7 @@
 		try {
 			EnablementManager.INSTANCE.notifyFunctionGroupChanged(null,getComponentProject());
 		} catch (CoreException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
+			ModulecorePlugin.logError(e);
 		}
 		
 	}
@@ -338,7 +337,7 @@
 			if (facetProj != null)
 				facetProj.removeListener(this);
 		} catch (Exception e) {
-			Logger.getLogger().logError(e);
+			ModulecorePlugin.logError(e);
 		}
 		super.doDispose();
 	}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentResource.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentResource.java
index efe8adc..4fe2aac 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentResource.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentResource.java
@@ -1,7 +1,7 @@
 /**
  * <copyright></copyright>
  * 
- * $Id: ComponentResource.java,v 1.6 2006/04/27 04:17:40 cbridgha Exp $
+ * $Id: ComponentResource.java,v 1.7 2011/08/10 21:40:14 rsanchez Exp $
  */
 package org.eclipse.wst.common.componentcore.internal;
 
@@ -33,6 +33,7 @@
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.ComponentResource#getExclusions <em>Exclusions</em>}</li>
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.ComponentResource#getComponent <em>Component</em>}</li>
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.ComponentResource#getResourceType <em>Resource Type</em>}</li>
+ *   <li>{@link org.eclipse.wst.common.componentcore.internal.ComponentResource#getTag <em>Tag</em>}</li>
  * </ul>
  * </p>
  *
@@ -165,6 +166,32 @@
 	 */
 	void setResourceType(String value);
 
+	/**
+	 * Returns the value of the '<em><b>Tag</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tag</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tag</em>' attribute.
+	 * @see #setTag(String)
+	 * @see org.eclipse.wst.common.componentcore.ComponentcorePackage#getComponentResource_Tag()
+	 * @model
+	 * @generated
+	 */
+	String getTag();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.wst.common.componentcore.internal.ComponentResource#getTag <em>Tag</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tag</em>' attribute.
+	 * @see #getTag()
+	 * @generated
+	 */
+	void setTag(String value);
+
 	IProject getOwningProject();
 	void setOwningProject(IProject aProject);
 
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentcorePackage.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentcorePackage.java
index eed4fe3..737cc80 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentcorePackage.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ComponentcorePackage.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: ComponentcorePackage.java,v 1.8 2006/04/27 04:17:40 cbridgha Exp $
+ * $Id: ComponentcorePackage.java,v 1.10 2011/08/10 21:40:14 rsanchez Exp $
  */
 package org.eclipse.wst.common.componentcore.internal;
 
@@ -44,7 +44,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	String eNS_URI = "componentcore.xmi";
+	String eNS_URI = "componentcore.xmi"; //$NON-NLS-1$
 
 	/**
 	 * The package namespace name.
@@ -52,7 +52,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	String eNS_PREFIX = "org.eclipse.wst.common.componentcore";
+	String eNS_PREFIX = "org.eclipse.wst.common.componentcore"; //$NON-NLS-1$
 
 	/**
 	 * The singleton instance of the package.
@@ -191,13 +191,22 @@
 	int COMPONENT_RESOURCE__RESOURCE_TYPE = 4;
 
 	/**
+	 * The feature id for the '<em><b>Tag</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_RESOURCE__TAG = 5;
+
+	/**
 	 * The number of structural features of the '<em>Component Resource</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT_RESOURCE_FEATURE_COUNT = 5;
+	int COMPONENT_RESOURCE_FEATURE_COUNT = 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.wst.common.componentcore.internal.impl.ComponentTypeImpl <em>Component Type</em>}' class.
@@ -574,6 +583,17 @@
 	EAttribute getComponentResource_ResourceType();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.wst.common.componentcore.internal.ComponentResource#getTag <em>Tag</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tag</em>'.
+	 * @see org.eclipse.wst.common.componentcore.internal.ComponentResource#getTag()
+	 * @see #getComponentResource()
+	 * @generated
+	 */
+	EAttribute getComponentResource_Tag();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.wst.common.componentcore.internal.ComponentType <em>Component Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -784,7 +804,7 @@
 	 * @return the meta object for data type '<em>IPath</em>'.
 	 * @see org.eclipse.core.runtime.IPath
 	 * @model instanceClass="org.eclipse.core.runtime.IPath"
-	 *        annotation="keywords datatype='null'" 
+	 *        annotation="keywords datatype='null'"
 	 * @generated
 	 */
 	EDataType getIPath();
@@ -796,7 +816,7 @@
 	 * @return the meta object for data type '<em>URI</em>'.
 	 * @see org.eclipse.emf.common.util.URI
 	 * @model instanceClass="org.eclipse.emf.common.util.URI"
-	 *        annotation="keywords datatype='null'" 
+	 *        annotation="keywords datatype='null'"
 	 * @generated
 	 */
 	EDataType getURI();
@@ -932,6 +952,14 @@
 		EAttribute COMPONENT_RESOURCE__RESOURCE_TYPE = eINSTANCE.getComponentResource_ResourceType();
 
 		/**
+		 * The meta object literal for the '<em><b>Tag</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COMPONENT_RESOURCE__TAG = eINSTANCE.getComponentResource_Tag();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.wst.common.componentcore.internal.impl.ComponentTypeImpl <em>Component Type</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/DefaultModuleHandler.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/DefaultModuleHandler.java
new file mode 100644
index 0000000..b49b040
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/DefaultModuleHandler.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+
+public class DefaultModuleHandler implements IModuleHandler {
+
+	public String getArchiveName(IProject proj,IVirtualComponent comp) {
+		if (comp != null)
+			return comp.getName() + ".jar";
+		return proj.getName() + ".jar";
+	}
+
+	public List<IProject> getFilteredProjectListForAdd(IVirtualComponent sourceComponent, List<IProject> availableProjects) {
+		Iterator<IProject> i = availableProjects.iterator();
+		IProject p;
+		while(i.hasNext()) {
+			p = i.next();
+			if( !p.isOpen())
+				i.remove();
+			else if( p.equals(sourceComponent.getProject()))
+				i.remove();
+		}
+		return availableProjects;
+	}
+
+	public boolean setComponentAttributes(IProject proj) {
+		
+		return true;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/IComponentProjectMigrator.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/IComponentProjectMigrator.java
index 0f66ad1..64c3b93 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/IComponentProjectMigrator.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/IComponentProjectMigrator.java
@@ -12,6 +12,12 @@
 
 import org.eclipse.core.resources.IProject;
 
+/**
+ * This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+ * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+ * @deprecated 
+ * @author jsholl
+ */
 public interface IComponentProjectMigrator {
 	public void migrateProject(IProject project);
 
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/IModuleHandler.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/IModuleHandler.java
new file mode 100644
index 0000000..a40393f
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/IModuleHandler.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+
+package org.eclipse.wst.common.componentcore.internal;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+
+/**
+ * Interface intended to reflect behavior of customized components
+ *
+ */
+public interface IModuleHandler {
+	
+	
+	/**
+	 * This is used to return a proper archive name based on the component type
+	 * @param proj 
+	 * @param comp
+	 * @return String archive name
+	 */
+	public String getArchiveName(IProject proj, IVirtualComponent comp);
+	
+	/**
+	 * Used to filter items displayed in Add dialog
+	 * @param sourceComponent
+	 * @param availableComponents
+	 * @return List of items that will not be shown in the add ref dialogs
+	 */
+	public List<IProject> getFilteredProjectListForAdd(IVirtualComponent sourceComponent, List<IProject> availableComponents);
+
+	/**
+	 * This call is meant to add IVirtualCompoonent infrastructure to any project passed if needed
+	 * Meant be overridden to include technology specific attributes
+	 * @param proj
+	 * @return boolean indicating operation success
+	 */
+	public boolean setComponentAttributes(IProject proj);
+	
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleCoreValidator.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleCoreValidator.java
index 731efdf..e1fd00b 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleCoreValidator.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleCoreValidator.java
@@ -14,12 +14,14 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.ILock;
 import org.eclipse.core.runtime.jobs.ISchedulingRule;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.xmi.XMIResource;
 import org.eclipse.wst.common.componentcore.ModuleCoreNature;
 import org.eclipse.wst.common.componentcore.internal.impl.WTPModulesResource;
 import org.eclipse.wst.common.internal.emf.resource.TranslatorResource;
+import org.eclipse.wst.common.internal.emfworkbench.edit.EMFWorkbenchEditContextFactory;
 import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectNature;
 import org.eclipse.wst.validation.internal.core.Message;
 import org.eclipse.wst.validation.internal.core.ValidationException;
@@ -29,6 +31,12 @@
 import org.eclipse.wst.validation.internal.provisional.core.IValidatorJob;
 
 
+/**
+ * This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+ * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+ * @deprecated 
+ * @author jsholl
+ */
 public class ModuleCoreValidator implements IValidatorJob {
 		protected IReporter _reporter;
 
@@ -47,10 +55,22 @@
 			if (structureEdit != null) {
 				ModuleStructuralModel structuralModel = structureEdit.getModuleStructuralModel();
 				if (structuralModel != null) {
+					// First touch the model File to make sure is synched before getting the lock
+					structuralModel.getComponentFile();
 					// acquiring the ModuleStructuralModel lock here first because the call to getPrimaryResource()
 					// will cause this lock to be acquired later resulting in a potential deadlock
-					synchronized (structuralModel) {
-						return structuralModel.getPrimaryResource();
+					ILock lock = EMFWorkbenchEditContextFactory.getProjectLockObject(structuralModel.getProject());
+					try{
+						if(null != lock){
+							lock.acquire();
+						}
+						synchronized(structuralModel){
+							return structuralModel.getPrimaryResource();
+						}
+					} finally{
+						if(null != lock){
+							lock.release();
+						}
 					}
 				}
 			}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleCoreValidatorHelper.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleCoreValidatorHelper.java
index 1969f61..ad2c320 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleCoreValidatorHelper.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleCoreValidatorHelper.java
@@ -14,6 +14,12 @@
 import org.eclipse.wst.validation.internal.operations.WorkbenchContext;
 
 
+/**
+ * This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+ * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+ * @deprecated 
+ * @author jsholl
+ */
 public class ModuleCoreValidatorHelper extends WorkbenchContext {
 
 		public static final String MODULECORE = "MODULECORE";
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleMigratorManager.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleMigratorManager.java
index 88a9078..caf21e0 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleMigratorManager.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleMigratorManager.java
@@ -33,6 +33,12 @@
 import org.eclipse.wst.common.frameworks.internal.datamodel.IWorkspaceRunnableWithStatus;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
 
+/**
+ * This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+ * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+ * @deprecated 
+ * @author jsholl
+ */
 public class ModuleMigratorManager {
 
 	private static HashMap managerCache = new HashMap();
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java
index 1506e66..c120a83 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.common.componentcore.internal;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -18,6 +19,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.eclipse.core.internal.resources.Workspace;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspace;
@@ -25,7 +27,6 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Platform;
@@ -78,11 +79,12 @@
 */ 
 public class ModuleStructuralModel extends EditModel implements IAdaptable {
 	
-	private static final String R0_7_MODULE_META_FILE_NAME = ".component";
-	private static final String R1_MODULE_META_FILE_NAME = ".settings/.component";
+	public static final String R0_7_MODULE_META_FILE_NAME = ".component";
+	public static final String R1_MODULE_META_FILE_NAME = ".settings/.component";
 	public static final String MODULE_CORE_ID = "moduleCoreId"; //$NON-NLS-1$ 
 	private static final String PROJECT_VERSION_1_5 = "1.5.0";
 	private boolean useOldFormat = false;
+	private Boolean needsSync = new Boolean(true);
 	public ModuleStructuralModel(String editModelID, EMFWorkbenchContext context, boolean readOnly) {
         super(editModelID, context, readOnly);
     }
@@ -98,6 +100,8 @@
 	}
 	protected boolean removeResource(Resource aResource) {
 		if (aResource != null) {
+			//First checking if resource is loaded (Which will prevent removing in middle of loading by checking resource adapter lock)
+			aResource.isLoaded();
 			synchronized (aResource) {
 				aResource.eAdapters().remove(resourceAdapter);
 				return getResources().remove(aResource);
@@ -116,8 +120,7 @@
 			if (res == null)
 				return null;
 		} catch (CoreException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
+			ModulecorePlugin.logError(e);
 		}
 		EObject modelRoot = null;
 		modelRoot = super.getPrimaryRootObject();
@@ -234,10 +237,6 @@
 	}
 	public Resource prepareProjectModulesIfNecessary() throws CoreException {
 		XMIResource res;
-		if (!isComponentSynchronizedOrNull()) {
-			//Return if component file is out of sync from workspace
-			return null;
-		}
 		res = (XMIResource) getPrimaryResource();
 		if (res != null && resNeedsMigrating(res) && !useOldFormat)
 			return null;
@@ -251,33 +250,64 @@
 		return res;
 	}
 	
-	/**
-	 * This methods checks the status of the component file, and first checks for existance, then if its locally synchronized
-	 * @return boolean
-	 */
-	private boolean isComponentSynchronizedOrNull() {
-		IFile componentFile = getProject().getFile(StructureEdit.MODULE_META_FILE_NAME);
-		IPath componentFileLocation = componentFile.getLocation();
-		if (componentFileLocation != null && !componentFileLocation.toFile().exists()) {
-			componentFile = getProject().getFile(R1_MODULE_META_FILE_NAME);
-			componentFileLocation = componentFile.getLocation();
-			if (componentFileLocation != null && !componentFileLocation.toFile().exists()) {
-				componentFile = getProject().getFile(R0_7_MODULE_META_FILE_NAME);
-				componentFileLocation = componentFile.getLocation();
-				if (componentFileLocation != null && !componentFileLocation.toFile().exists()) 
-					return true;
+	
+	public IFile getComponentFile() {
+		
+		IFile compFile = getProject().getFile(StructureEdit.MODULE_META_FILE_NAME);
+		if (compFile.isAccessible()) {
+			checkSync(compFile);	
+			return compFile;
+		}
+		else { //Need to check for legacy file locations also....
+			compFile = getProject().getFile(ModuleStructuralModel.R1_MODULE_META_FILE_NAME);
+			if (compFile.isAccessible()) {
+				checkSync(compFile);	
+				return compFile;
+			}
+			else {
+				compFile = getProject().getFile(ModuleStructuralModel.R0_7_MODULE_META_FILE_NAME);
+				if (compFile.isAccessible()) {
+					checkSync(compFile);	
+					return compFile;
+				}
 			}
 		}
-		if (componentFileLocation == null)
-			return true;
-		else return componentFile.isSynchronized(IResource.DEPTH_ZERO);
+		return getProject().getFile(StructureEdit.MODULE_META_FILE_NAME);
 	}
+	
+	private void checkSync(IFile compFile) {
+		boolean localNeedsSync = false;
+		synchronized (needsSync) {
+			localNeedsSync = needsSync;
+		}
+		if (localNeedsSync) { // Only check sync once for life of this model
+			if (!compFile.isSynchronized(IResource.DEPTH_ONE)) {
+				File iofile = compFile.getFullPath().toFile();
+				if (iofile.exists() || compFile.exists()) {
+					try {
+						Workspace workspace = (Workspace)compFile.getWorkspace();
+						if (workspace.getElementTree().isImmutable())
+						{
+							workspace.newWorkingTree();
+						}
+						((org.eclipse.core.internal.resources.Resource)compFile).getLocalManager().refresh(compFile.getProject(), IResource.DEPTH_INFINITE, true, null);
+					} catch (CoreException ce) {
+						// ignore
+					}
+				}
+			}
+			synchronized (needsSync) {
+				needsSync = new Boolean(false);
+			}
+		}
+	}
+	
 	public WTPModulesResource  makeWTPModulesResource() {
 		return (WTPModulesResource) createResource(WTPModulesResourceFactory.WTP_MODULES_URI_OBJ);
 	}
 	protected void runSaveOperation(IWorkspaceRunnable runnable, IProgressMonitor monitor) throws SaveFailedException {
 		try {
-			ResourcesPlugin.getWorkspace().run(runnable, null,IWorkspace.AVOID_UPDATE,monitor);
+			ResourcesPlugin.getWorkspace().run(runnable, getComponentFile(),IWorkspace.AVOID_UPDATE,monitor);
 		} catch (CoreException e) {
 			throw new SaveFailedException(e);
 		}
@@ -295,25 +325,14 @@
 	 * @return
 	 */
 	public Resource getPrimaryResource() {
-		// Overriden to handle loading the .component resource in new and old forms
-		// First will try to load from .settings/org.eclipse.wst.common.component
-		// Second will try to load from the old location(s) .settings/.component or .component
+		// Will always go through the getFile method that searches for all possible locations.
+		IFile compFile = getComponentFile();
 		
-		URI uri = URI.createURI(StructureEdit.MODULE_META_FILE_NAME);
+		URI uri = URI.createURI(compFile.getProjectRelativePath().toPortableString());
 		WTPModulesResource res = (WTPModulesResource)getResource(uri);
-		if (res == null || !res.isLoaded()) {
+		if (res == null || !res.isLoaded() || res.getContents().isEmpty()) {
 			removeResource(res);
-			uri = URI.createURI(R1_MODULE_META_FILE_NAME);
-			res = (WTPModulesResource)getResource(uri);
-			if (res == null || !res.isLoaded()) {
-				removeResource(res);
-				uri = URI.createURI(R0_7_MODULE_META_FILE_NAME);
-				res = (WTPModulesResource)getResource(uri);
-				if (res == null || !res.isLoaded()) {
-					removeResource(res);
-					res = null;
-				}
-			}
+			res = null;
 		}
 		return res;
 	}
@@ -367,4 +386,28 @@
 	public void setUseOldFormat(boolean useOldFormat) {
 		this.useOldFormat = useOldFormat;
 	}
+	
+	public void saveIfNecessary(IProgressMonitor monitor, Object accessorKey) {
+		// Always force save
+		super.save(monitor, accessorKey);
+	}
+	@Override
+	public void access(Object accessorKey) {
+		//Not bothering with ref counting model access - always allow save/access
+				
+	}
+	@Override
+	public void releaseAccess(Object accessorKey) {
+		
+		//Not bothering with ref counting model access - always allow save/access
+	}
+	@Override
+	protected void assertPermissionToSave(Object accessorKey) {
+		//Not bothering with ref counting model access - always allow save/access
+	}
+	@Override
+	public boolean isShared() {
+		//Not bothering with ref counting model access - always allow save/access
+		return false;
+	}
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ProjectMigratorRegistry.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ProjectMigratorRegistry.java
index f6883ca..0848454 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ProjectMigratorRegistry.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ProjectMigratorRegistry.java
@@ -24,8 +24,10 @@
 import org.eclipse.jem.util.RegistryReader;
 
 /**
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ * This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+ * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+ * @deprecated 
+ * @author jsholl
  */
 public class ProjectMigratorRegistry extends RegistryReader {
 
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/StructureEdit.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/StructureEdit.java
index 3891ce6..d284ca7 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/StructureEdit.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/StructureEdit.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * Copyright (c) 2003, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -18,8 +18,10 @@
 import java.util.List;
 import java.util.Map;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
@@ -27,19 +29,19 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.jobs.ILock;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.jem.util.UIContextDetermination;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.IEditModelHandler;
 import org.eclipse.wst.common.componentcore.ModuleCoreNature;
 import org.eclipse.wst.common.componentcore.UnresolveableURIException;
 import org.eclipse.wst.common.componentcore.internal.impl.ModuleURIUtil;
-import org.eclipse.wst.common.componentcore.internal.impl.PlatformURLModuleConnection;
 import org.eclipse.wst.common.componentcore.internal.impl.ResourceTreeNode;
-import org.eclipse.wst.common.componentcore.internal.resources.VirtualReference;
 import org.eclipse.wst.common.componentcore.internal.util.EclipseResourceAdapter;
+import org.eclipse.wst.common.componentcore.resolvers.IReferenceResolver;
+import org.eclipse.wst.common.componentcore.resolvers.ReferenceResolverUtil;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
 import org.eclipse.wst.common.internal.emf.utilities.ExtendedEcoreUtil;
@@ -56,7 +58,7 @@
  * {@see org.eclipse.wst.common.modulecore.ModuleStructuralModel}) correctly. Each project has
  * exactly one ({@see org.eclipse.wst.common.modulecore.ModuleStructuralModel}) for read and
  * exactly one for write. Each of these is shared among all clients and reference counted as
- * necessary. Clients should use ModuleCore when working with the WTP Modules Strcutrual Model.
+ * necessary. Clients should use ModuleCore when working with the WTP Modules Structural Model.
  * </p>
  * 
  * <p>
@@ -111,8 +113,9 @@
 	 * 
 	 * @param aProject
 	 *            The IProject that contains the WTP Modules model to load
-	 * @return A ModuleCore edit facade to access the WTP Modules Model, null
-	 *         for non-flexible projects
+	 * @return A ModuleCore edit facade to access the WTP Modules Model or
+	 *         <code>null</code> if the project is inaccessible or not a
+	 *         flexible project
 	 */
 	public static StructureEdit getStructureEditForRead(IProject aProject) {
 		ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(aProject);
@@ -122,17 +125,19 @@
 	/**
 	 * 
 	 * <p>
-	 * Each ModuleCore edit facade is tied to a specific project. A project may have multiple
-	 * ModuleCore edit facades live at any given time.
+	 * Each ModuleCore edit facade is tied to a specific project. A project
+	 * may have multiple ModuleCore edit facades live at any given time.
 	 * </p>
 	 * <p>
-	 * Use to acquire a ModuleCore facade for a specific project that may be used to modify the
-	 * model.
+	 * Use to acquire a ModuleCore facade for a specific project that may be
+	 * used to modify the model.
 	 * </p>
 	 * 
 	 * @param aProject
 	 *            The IProject that contains the WTP Modules model to load
-	 * @return A ModuleCore edit facade to access the WTP Modules Model
+	 * @return A ModuleCore edit facade to access the WTP Modules Model or
+	 *         <code>null</code> if the project is inaccessible or not a
+	 *         flexible project
 	 */
 	public static StructureEdit getStructureEditForWrite(IProject aProject) {
 		ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(aProject);
@@ -141,9 +146,10 @@
 
 	/**
 	 * <p>
-	 * A convenience API to fetch the {@see ModuleCoreNature}&nbsp;for a particular module URI. The
-	 * module URI must be of the valid form, or an exception will be thrown. The module URI must be
-	 * contained by a project that has a {@see ModuleCoreNature}&nbsp;or null will be returned.
+	 * A convenience API to fetch the {@see ModuleCoreNature}&nbsp;for a
+	 * particular module URI. The module URI must be of the valid form, or an
+	 * exception will be thrown. The module URI must be contained by a project
+	 * that has a {@see ModuleCoreNature}&nbsp;or null will be returned.
 	 * </p>
 	 * <p>
 	 * <b>This method may return null. </b>
@@ -152,6 +158,9 @@
 	 * @param aModuleURI
 	 *            A valid, fully-qualified module URI
 	 * @return The ModuleCoreNature of the project associated with aModuleURI
+	 *         or <code>null</code> if the URI has no containing project, its
+	 *         containing project is either inaccessible or not a flexible
+	 *         project
 	 * @throws UnresolveableURIException
 	 *             If the supplied module URI is invalid or unresolveable.
 	 */
@@ -191,13 +200,51 @@
 		return null;
 	}
 	
+	
 	/**
 	 * <p>
 	 * For {@see WorkbenchComponent}s that are contained within a project, the containing project
 	 * can be determined with the {@see WorkbenchComponent}'s fully-qualified module URI.
 	 * </p>
 	 * <p>
-	 * The following method will return the the corresponding project for the supplied module URI,
+	 * The following method will return the corresponding project for the supplied module URI,
+	 * if it can be determined.
+	 * </p>
+	 * <p>
+	 * The method may return an inaccessible project.	
+	 * </p>
+	 * <p>
+	 * <b>This method may return null. </b>
+	 * </p>
+	 * 
+	 * @param aModuleURI
+	 *            A valid, fully-qualified module URI
+	 * @param onlyAccessibleProjects
+	 *            True if the method should return only accessible projects. 
+	 * @return The project that contains the module referenced by the module URI
+	 * @throws UnresolveableURIException
+	 *             If the supplied module URI is invalid or unresolveable.
+	 */
+	public static IProject getContainingProject(URI aModuleURI, boolean onlyAccessibleProjects) throws UnresolveableURIException {
+		ModuleURIUtil.ensureValidFullyQualifiedModuleURI(aModuleURI);
+		String projectName = aModuleURI.segment(ModuleURIUtil.ModuleURI.PROJECT_NAME_INDX);
+		if (projectName == null || projectName.length() == 0)
+			throw new UnresolveableURIException(aModuleURI);
+		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+		if (!onlyAccessibleProjects)
+			return project;
+		if (project.isAccessible())
+			return project;
+		return null;
+	}
+	
+	/**
+	 * <p>
+	 * For {@see WorkbenchComponent}s that are contained within a project, the containing project
+	 * can be determined with the {@see WorkbenchComponent}'s fully-qualified module URI.
+	 * </p>
+	 * <p>
+	 * The following method will return the corresponding project for the supplied module URI,
 	 * if it can be determined.
 	 * </p>
 	 * <p>
@@ -214,14 +261,7 @@
 	 *             If the supplied module URI is invalid or unresolveable.
 	 */
 	public static IProject getContainingProject(URI aModuleURI) throws UnresolveableURIException {
-		ModuleURIUtil.ensureValidFullyQualifiedModuleURI(aModuleURI);
-		String projectName = aModuleURI.segment(ModuleURIUtil.ModuleURI.PROJECT_NAME_INDX);
-		if (projectName == null || projectName.length() == 0)
-			throw new UnresolveableURIException(aModuleURI);
-		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
-		if (project.isAccessible())
-			return project;
-		return null;
+		return getContainingProject(aModuleURI, true);
 	}
 
 	/**
@@ -246,6 +286,7 @@
 		if (eclipseResourceAdapter != null)
 			return eclipseResourceAdapter.getEclipseResource();
 		eclipseResourceAdapter = new EclipseResourceAdapter();
+		eclipseResourceAdapter.setTarget(aModuleResource);
 		aModuleResource.eAdapters().add(eclipseResourceAdapter);
 		return eclipseResourceAdapter.getEclipseResource();
 	}
@@ -281,45 +322,14 @@
 		return componentType;
 	}
 
-	public static IVirtualReference createVirtualReference(IVirtualComponent context, ReferencedComponent referencedComponent) {
-
-		IVirtualComponent targetComponent = null;
-		IProject targetProject = null;
-		URI uri = referencedComponent.getHandle();
-		if (uri == null)
-			return null;
-		boolean isClassPathURI = ModuleURIUtil.isClassPathURI(uri);
-		if( !isClassPathURI ){
-			try { 
-				targetProject = StructureEdit.getContainingProject(uri);
-			} catch(UnresolveableURIException uurie) {
-				//Ignore
-			} 
-			// if the project cannot be resolved, assume it's local - really it probably deleted 
-			
-			targetComponent = ComponentCore.createComponent(targetProject);  
-				
-
-		}else{
-			String archiveType = ""; //$NON-NLS-1$
-			String archiveName = ""; //$NON-NLS-1$
-			try {
-				archiveType = ModuleURIUtil.getArchiveType(uri);
-				archiveName = ModuleURIUtil.getArchiveName(uri);
-				
-			} catch (UnresolveableURIException e) {
-				//Ignore
-			}
-			targetComponent = ComponentCore.createArchiveComponent(context.getProject(), archiveType + IPath.SEPARATOR + archiveName ); 
-		}
-		return new VirtualReference(context, targetComponent, referencedComponent.getRuntimePath(), referencedComponent.getDependencyType().getValue());
+	public static IVirtualReference createVirtualReference(IVirtualComponent context, ReferencedComponent reference) {
+		IReferenceResolver resolver = ReferenceResolverUtil.getDefault().getResolver(context, reference);
+		return resolver.resolve(context, reference);
 	}
 
 	protected StructureEdit(ModuleCoreNature aNature, boolean toAccessAsReadOnly) {
-		if (toAccessAsReadOnly)
-			structuralModel = aNature.getModuleStructuralModelForRead(this);
-		else
-			structuralModel = aNature.getModuleStructuralModelForWrite(this);
+		// always get the write editmodel - one instance only
+		structuralModel = aNature.getModuleStructuralModelForWrite(this);
 		aProject = aNature.getProject();
 		isReadOnly = toAccessAsReadOnly;
 		isStructuralModelSelfManaged = true;
@@ -356,10 +366,18 @@
 		if (isReadOnly)
 			throwAttemptedReadOnlyModification();
 		else if (validateEdit().isOK()) { 
+			// Make sure we obtain workspace rule before saving
+			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+			try {
+			//OK wait to get workspace root before refreshing
+			Job.getJobManager().beginRule(root, null);
 			synchronized (structuralModel) {
 				if (!structuralModel.isDisposed())
 					structuralModel.save(aMonitor, this);
 			}
+			} finally {
+				Job.getJobManager().endRule(root);
+			}
 		}
 	}
 
@@ -377,7 +395,7 @@
 	public void saveIfNecessary(IProgressMonitor aMonitor) {
 		if (isReadOnly)
 			throwAttemptedReadOnlyModification();
-		else if (validateEdit().isOK()) { 
+		else if (structuralModel.isDirty() && validateEdit().isOK()) { 
 				if (!structuralModel.isDisposed())
 					structuralModel.saveIfNecessary(aMonitor, this);
 		}
@@ -422,8 +440,7 @@
 				try {
 					structuralModel.prepareProjectModulesIfNecessary();
 				} catch (CoreException e) {
-					// TODO Auto-generated catch block
-					e.printStackTrace();
+					ModulecorePlugin.logError(e);
 				}
 			}
 		}
@@ -435,10 +452,17 @@
 	 * to add or remove {@see WorkbenchComponent}s. If a client needs to just read the existing
 	 * {@see WorkbenchComponent}s, use {@see #getWorkbenchModules()}.
 	 * </p>
+	 * <p>
+	 * Deadlock Warning: Calling this method requires two locks.  First the component file's file lock
+	 * is required and then the EMFWorkbenchEditContextFactory's projectILock is required.  If another
+	 * thread acquires these same two locks in the opposite order, deadlock could occur.
+	 * </p>
 	 * 
 	 * @return The root object of the underlying model
 	 */
 	public ProjectComponents getComponentModelRoot() {
+		IFile file = structuralModel.getComponentFile();
+		if (file == null) return null;
 		ProjectComponents comps = null;
 		ILock lock = EMFWorkbenchEditContextFactory.getProjectLockObject(structuralModel.getProject());
 		try{
@@ -454,8 +478,7 @@
 				lock.release();
 			}
 		}
-		
-		return comps;
+		return comps;		
 	}
 
 	/**
@@ -933,9 +956,8 @@
 	}
 
 	public static URI createComponentURI(IProject aContainingProject, String aComponentName) {
-		return URI.createURI(PlatformURLModuleConnection.MODULE_PROTOCOL + IPath.SEPARATOR + PlatformURLModuleConnection.RESOURCE_MODULE + aContainingProject.getName() + IPath.SEPARATOR + aComponentName);
+		return ModuleURIUtil.fullyQualifyURI(aContainingProject, aComponentName);
 	}
-
 	
 	protected IProject getProject() {
 		return aProject;
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/WorkbenchComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/WorkbenchComponent.java
index e8d7586..58b6899 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/WorkbenchComponent.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/WorkbenchComponent.java
@@ -166,5 +166,7 @@
 	ComponentResource[] findResourcesBySourcePath(IPath aSourcePath, int resourceFlag);
 	
 	boolean exists(IPath aSourcePath, int resourceFlag);
+	
+	final String DEFAULT_ROOT_SOURCE_TAG = "defaultRootSource";
 
 } // WorkbenchComponent
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraph.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraph.java
index 74341f2..f31970a 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraph.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraph.java
@@ -28,7 +28,7 @@
 
 	public IProject[] getReferencingComponents(IProject target) {
 		Set<IProject> referencingComponents = IDependencyGraph.INSTANCE.getReferencingComponents(target);
-		return (IProject[]) referencingComponents.toArray(new IProject[referencingComponents.size()]);
+		return referencingComponents.toArray(new IProject[referencingComponents.size()]);
 	}
 
 	public void addReference(IProject target, IProject referencingComponent) {
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphEvent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphEvent.java
new file mode 100644
index 0000000..f63c4d6
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphEvent.java
@@ -0,0 +1,210 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.builder;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+
+public class DependencyGraphEvent implements IDependencyGraphUpdateEvent {
+
+	private int type = 0;
+	private long modStamp = 0;
+
+	/**
+	 * Both these maps are reverse reference maps as the ones are in
+	 * {@link IDependencyGraph}
+	 */
+	private Map<IProject, Set<IProject>> addedReferences = null;
+	private Map<IProject, Set<IProject>> removedReferences = null;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.wst.common.componentcore.internal.builder.
+	 * IDependencyGraphUpdateEvent#getType()
+	 */
+	public int getType() {
+		return type;
+	}
+
+	private void setType(int newType){
+		this.type = newType;
+	}
+	
+	void setModStamp(long modStamp) {
+		this.modStamp = modStamp;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.wst.common.componentcore.internal.builder.
+	 * IDependencyGraphUpdateEvent#getModStamp()
+	 */
+	public long getModStamp() {
+		return modStamp;
+	}
+
+	void addRefererence(IProject sourceProject, IProject targetProject) {
+		if (sourceProject == null) {
+			throw new NullPointerException("Source project must not be null.");
+		}
+		if (targetProject == null) {
+			throw new NullPointerException("Target project must not be null.");
+		}
+		//update removed references accordingly
+		if(removedReferences != null){
+			Set references = removedReferences.get(targetProject);
+			if(references != null){
+				if(references.remove(sourceProject)) {
+					if(references.isEmpty()){
+						removedReferences.remove(targetProject);
+						if(removedReferences.isEmpty()){
+							removedReferences = null;
+							if((getType() & ADDED) == ADDED){
+								setType(ADDED);
+							} else {
+								setType(0);
+							}
+						}
+					}
+					//there is no net change, so return.
+					return;
+				}
+			}
+		}
+		
+		if (addedReferences == null) {
+			setType(getType() | ADDED);
+			addedReferences = new HashMap<IProject, Set<IProject>>();
+		}
+		Set references = addedReferences.get(targetProject);
+		if (references == null) {
+			references = new HashSet<IProject>();
+			addedReferences.put(targetProject, references);
+		}
+		references.add(sourceProject);
+		
+		
+	}
+
+	void removeReference(IProject sourceProject, IProject targetProject) {
+		if (sourceProject == null) {
+			throw new NullPointerException("Source project must not be null.");
+		}
+		if (targetProject == null) {
+			throw new NullPointerException("Target project must not be null.");
+		}
+		
+		//updated added references accordingly
+		if(addedReferences != null){
+			Set references = addedReferences.get(targetProject);
+			if(references != null){
+				if(references.remove(sourceProject)){
+					if(references.isEmpty()){
+						addedReferences.remove(targetProject);
+						if(addedReferences.isEmpty()){
+							addedReferences = null;
+							if((getType() & REMOVED) == REMOVED){
+								setType(REMOVED);
+							} else {
+								setType(0);
+							}
+						}
+					}
+					//there is no net change, so return.
+					return;
+				}
+			}
+		}
+		
+		if (removedReferences == null) {
+			setType(getType() | REMOVED);
+			removedReferences = new HashMap<IProject, Set<IProject>>();
+		}
+		Set references = removedReferences.get(targetProject);
+		if (references == null) {
+			references = new HashSet<IProject>();
+			removedReferences.put(targetProject, references);
+		}
+		references.add(sourceProject);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.wst.common.componentcore.internal.builder.
+	 * IDependencyGraphUpdateEvent#getAddedReferences()
+	 */
+	public Map<IProject, Set<IProject>> getAddedReferences() {
+		if (addedReferences == null) {
+			return Collections.EMPTY_MAP;
+		}
+		return addedReferences;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.wst.common.componentcore.internal.builder.
+	 * IDependencyGraphUpdateEvent#getRemovedReferences()
+	 */
+	public Map<IProject, Set<IProject>> getRemovedReferences() {
+		if (removedReferences == null) {
+			return Collections.EMPTY_MAP;
+		}
+		return removedReferences;
+	}
+
+	@Override
+	public String toString() {
+		StringBuffer buff = new StringBuffer("Dependency Graph Event \n{\n getModStamp() = "+getModStamp()+"\n hashCode() = "+hashCode()+"\n");
+		boolean added = (getType() & ADDED) == ADDED;
+		if(added){
+			buff.append(" ADDED:\n" );
+			for(Iterator<Map.Entry<IProject, Set<IProject>>> iterator = getAddedReferences().entrySet().iterator(); iterator.hasNext();){
+				Map.Entry<IProject, Set<IProject>> entry = iterator.next();
+				buff.append("  " + entry.getKey().getName() + " -> {");
+				for (Iterator<IProject> mappedProjects = entry.getValue().iterator(); mappedProjects.hasNext();) {
+					buff.append(mappedProjects.next().getName());
+					if (mappedProjects.hasNext()) {
+						buff.append(", ");
+					}
+				}
+				buff.append("}\n");
+			}
+		}
+		boolean removed = (getType() & REMOVED) == REMOVED;
+		if(removed){
+			buff.append(" REMOVED:\n" );
+			for(Iterator<Map.Entry<IProject, Set<IProject>>> iterator = getRemovedReferences().entrySet().iterator(); iterator.hasNext();){
+				Map.Entry<IProject, Set<IProject>> entry = iterator.next();
+				buff.append("  " + entry.getKey().getName() + " -> {");
+				for (Iterator<IProject> mappedProjects = entry.getValue().iterator(); mappedProjects.hasNext();) {
+					buff.append(mappedProjects.next().getName());
+					if (mappedProjects.hasNext()) {
+						buff.append(", ");
+					}
+				}
+				buff.append("}\n");
+			}
+		}
+		buff.append("}\n");
+		return buff.toString();
+	}
+	
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphImpl.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphImpl.java
index 075591e..c9b9ee9 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphImpl.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphImpl.java
@@ -1,11 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
 package org.eclipse.wst.common.componentcore.internal.builder;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicLong;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
@@ -13,8 +35,10 @@
 import org.eclipse.core.resources.IResourceChangeListener;
 import org.eclipse.core.resources.IResourceDelta;
 import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.ISafeRunnable;
 import org.eclipse.core.runtime.IStatus;
@@ -22,33 +46,45 @@
 import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.core.runtime.SafeRunner;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.core.runtime.jobs.ILock;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
 import org.eclipse.wst.common.componentcore.internal.impl.WTPModulesResourceFactory;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent;
+import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.osgi.framework.Bundle;
 
 public class DependencyGraphImpl implements IDependencyGraph {
 
 	/**
 	 * Don't read or write the graph without first obtaining the graphLock.
 	 */
-	private Object graphLock = new Object();
+	private final Object graphLock = new Object();
 
 	/**
-	 * If projects and and B both depend on C an entry in this graph would be {C ->
-	 * {A, B} }
+	 * If projects A and and B both depend on C an entry in this graph would be
+	 * {C -> {A, B} }
 	 */
-	private Map<IProject, Set<IProject>> graph = null;
+	private Map<IProject, Set<IProject>> graph;
 
-	private long modStamp = 0;
+	private final AtomicLong modStamp = new AtomicLong();
+
+	private final ListenerList listeners = new ListenerList();
+	
+	/** Used to guard pauseCount. */
+	private final Object jobLock = new Object();
+
+	/** If this is greater than zero we do not run the graph update job. This is guarded by jobLock. */
+	private int pauseCount;
 
 	/**
-	 * This is not public; only {@link IDependencyGraph#INSTANCE} should be
+	 * This is not public, only {@link IDependencyGraph#INSTANCE} should be
 	 * used.
-	 * 
-	 * @return
 	 */
 	static IDependencyGraph getInstance() {
 		if (instance == null) {
@@ -58,38 +94,77 @@
 		return instance;
 	}
 
-	private static DependencyGraphImpl instance = null;
+	private static DependencyGraphImpl instance;
 
 	private DependencyGraphImpl() {
 	}
 
 	public long getModStamp() {
-		synchronized (graphLock) {
-			return modStamp;
-		}
+		return modStamp.get();
 	}
 
+	private void incrementModStamp() {
+		modStamp.incrementAndGet();
+	}
+
+	/**
+	 * Returns the set of projects whose components reference the specified
+	 * target project's component. For example if projects A and B both
+	 * reference C. Passing C as the targetProject will return {A, B}
+	 */
 	public Set<IProject> getReferencingComponents(IProject targetProject) {
-		waitForAllUpdates(null);
+		IDependencyGraphReferences refs = getReferencingComponents(targetProject, true);
+		return refs.getReferencingComponents();
+	}
+
+	public IDependencyGraphReferences getReferencingComponents(
+			IProject targetProject, boolean waitForAllUpdates) {
+		DependencyGraphReferences refs = new DependencyGraphReferences();
+		refs.targetProject = targetProject;
+		if (waitForAllUpdates) {
+			refs.stale = false;
+			waitForAllUpdates(null);
+		} else if (isUpdateNecessary()) {
+			refs.stale = true;
+		}
 		synchronized (graphLock) {
 			Set<IProject> set = graph.get(targetProject);
 			if (set == null) {
-				return Collections.EMPTY_SET;
+				refs.referencingProjects = Collections.EMPTY_SET;
 			} else {
-				for (Iterator<IProject> iterator = set.iterator(); iterator.hasNext();) {
-					IProject project = iterator.next();
-					if (!project.isAccessible()) {
+				DependencyGraphEvent event = null;
+				for (Iterator<IProject> iterator = set.iterator(); iterator	.hasNext();) {
+					IProject sourceProject = iterator.next();
+					if (!sourceProject.isAccessible()) {
 						iterator.remove();
+						if (event == null) {
+							incrementModStamp();
+							event = new DependencyGraphEvent();
+							event.setModStamp(getModStamp());
+						}
+						event.removeReference(sourceProject, targetProject);
 					}
 				}
+				if (event != null) {
+					notifiyListeners(event);
+				}
 				Set<IProject> copy = new HashSet<IProject>();
 				copy.addAll(set);
-				return copy;
+				refs.referencingProjects = copy;
 			}
 		}
+		return refs;
 	}
 
+	public boolean isStale() {
+		return isUpdateNecessary();
+	}
+
+	/**
+	 * The purpose of this class is to queue up relevant changes for the graph update job.
+	 */
 	private class DependencyGraphResourceChangedListener implements IResourceChangeListener, IResourceDeltaVisitor {
+		
 		// only registered for post change events
 		public void resourceChanged(IResourceChangeEvent event) {
 			try {
@@ -108,22 +183,21 @@
 			case IResource.ROOT:
 				return true;
 			case IResource.PROJECT: {
-				int kind = delta.getKind();
+				final int kind = delta.getKind();
+				final IProject project = (IProject)resource;
 				if ((IResourceDelta.ADDED & kind) != 0) {
-					queueProjectAdded((IProject) resource);
+					update(project, IDependencyGraph.ADDED);
 					return false;
 				} else if ((IResourceDelta.REMOVED & kind) != 0) {
-					queueProjectDeleted((IProject) resource);
+					update(project, IDependencyGraph.REMOVED);
 					return false;
 				} else if ((IResourceDelta.CHANGED & kind) != 0) {
 					int flags = delta.getFlags();
 					if ((IResourceDelta.OPEN & flags) != 0) {
-						boolean isOpen = ((IProject) resource).isOpen();
-						if (isOpen) {
-							queueProjectAdded((IProject) resource);
-						} else {
-							queueProjectDeleted((IProject) resource);
-						}
+						boolean isOpen = project.isOpen();
+						if (isOpen)update(project, IDependencyGraph.ADDED);
+						else update(project, IDependencyGraph.REMOVED);
+						
 						return false;
 					}
 					return true;
@@ -131,14 +205,18 @@
 				return false;
 			}
 			case IResource.FOLDER:
-				if (resource.getName().equals(".settings")) {
-					return true;
-				}
+				if (resource.getName().equals(IModuleConstants.DOT_SETTINGS))return true;
 				return false;
 			case IResource.FILE:
 				String name = resource.getName();
 				if (name.equals(WTPModulesResourceFactory.WTP_MODULES_SHORT_NAME)) {
-					update(resource.getProject());
+					if ((delta.getKind() & IResourceDelta.ADDED) != 0) {
+						update(resource.getProject(), IDependencyGraph.ADDED);
+					} else {
+						update(resource.getProject(), IDependencyGraph.MODIFIED);
+					}
+				} else if (name.equals(".project")) {
+					update(resource.getProject(), IDependencyGraph.ADDED);
 				}
 			default:
 				return false;
@@ -146,7 +224,7 @@
 		}
 	};
 
-	private DependencyGraphResourceChangedListener listener = null;
+	private DependencyGraphResourceChangedListener listener;
 
 	/**
 	 * The graph is built lazily once. Afterwards, the graph is updated as
@@ -159,68 +237,127 @@
 				graph = new HashMap<IProject, Set<IProject>>();
 				listener = new DependencyGraphResourceChangedListener();
 				ResourcesPlugin.getWorkspace().addResourceChangeListener(listener, IResourceChangeEvent.POST_CHANGE);
-				IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-				for (IProject sourceProject : allProjects) {
-					queueProjectAdded(sourceProject);
-				}
+				if (restoreGraph() == null)rebuild();
 			} finally {
 				postUpdate();
 			}
 		}
 	}
 
-	private void removeAllReferences(IProject project) {
-		synchronized (graphLock) {
-			graph.remove(project);
-			for (Iterator<Set<IProject>> iterator = graph.values().iterator(); iterator.hasNext();) {
-				iterator.next().remove(project);
-			}
-			modStamp++;
+	private void rebuild() {
+		IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+		rebuild(allProjects);
+	}
+
+	private void rebuild(IProject[] allProjects) {
+		for (IProject sourceProject : allProjects) {
+			update(sourceProject, IDependencyGraph.ADDED);
 		}
 	}
 
-	private void removeReference(IProject sourceProject, IProject targetProject) {
+	private void removeAllReferences(DependencyGraphEvent event) {
+		synchronized (graphLock) {
+			IProject[] allReferenceKeys = new IProject[graph.keySet().size()];
+			graph.keySet().toArray(allReferenceKeys);
+			for (IProject project : allReferenceKeys) {
+				removeAllReferences(project, event);
+			}
+		}
+	}
+
+	private void removeAllReferences(IProject targetProject, DependencyGraphEvent event) {
+		synchronized (graphLock) {
+			boolean removed = false;
+			Set<IProject> removedSet = graph.remove(targetProject);
+			if (removedSet != null && !removedSet.isEmpty()) {
+				removed = true;
+				for (IProject project : removedSet) {
+					event.removeReference(project, targetProject);
+				}
+			}
+			for (Entry<IProject, Set<IProject>> entry : graph.entrySet()) {
+				if (!entry.getValue().isEmpty()	&& entry.getValue().remove(targetProject)) {
+					removed = true;
+					event.removeReference(targetProject, entry.getKey());
+				}
+			}
+			if (removed) {
+				incrementModStamp();
+				event.setModStamp(getModStamp());
+			}
+		}
+	}
+
+	private void removeReference(IProject sourceProject, IProject targetProject, DependencyGraphEvent event) {
 		synchronized (graphLock) {
 			Set<IProject> referencingProjects = graph.get(targetProject);
 			if (referencingProjects != null) {
-				referencingProjects.remove(sourceProject);
+				if (referencingProjects.remove(sourceProject)) {
+					event.removeReference(sourceProject, targetProject);
+					incrementModStamp();
+					event.setModStamp(getModStamp());
+				}
 			}
-			modStamp++;
 		}
 	}
 
-	private void addReference(IProject sourceProject, IProject targetProject) {
+	private void addReference(IProject sourceProject, IProject targetProject, DependencyGraphEvent event) {
 		synchronized (graphLock) {
 			Set<IProject> referencingProjects = graph.get(targetProject);
 			if (referencingProjects == null) {
 				referencingProjects = new HashSet<IProject>();
 				graph.put(targetProject, referencingProjects);
 			}
-			referencingProjects.add(sourceProject);
-			modStamp++;
+			boolean added = referencingProjects.add(sourceProject);
+			if (added) {
+				event.addRefererence(sourceProject, targetProject);
+				incrementModStamp();
+				event.setModStamp(getModStamp());
+			}
 		}
 	}
 
 	public static final Object GRAPH_UPDATE_JOB_FAMILY = new Object();
 
+	/** The amount of time that we delay before starting the graph update job. */
 	private static final int JOB_DELAY = 100;
 
 	private final GraphUpdateJob graphUpdateJob = new GraphUpdateJob();
-	private final Object jobLock = new Object();
 
+	// This lock is used for deadlock avoidance. The specific scenario
+	// is during waitForAllUpdates(); if a deadlock is detected during
+	// the lock's acquire() method, this thread will temporarily release
+	// its already acquired ILocks to allow other threads to continue.
+	// When execution is returned to this thread, any released ILocks will
+	// be acquired again before proceeding.
+	private final ILock jobILock = Job.getJobManager().newLock();
+
+	/**
+	 * The purpose of this job is to react to resources changes that were detected by the dependency
+	 * graph resource change listener.
+	 *
+	 */
 	private class GraphUpdateJob extends Job {
 
+		private final Queue projectsAdded = new Queue();
+		private final Queue projectsRemoved = new Queue();
+		private final Queue projectsUpdated = new Queue();
+		
+		/** Used to guard runStamp and running. */
+		private final Object runLock = new Object();
+		
+		/** A simple counter that keeps track of which run number we are. */
+		private long runStamp;
+		
+		private boolean running;
+
 		public GraphUpdateJob() {
-			super("Graph Update Job");
+			super(Resources.JOB_NAME);
 			setSystem(true);
-			setRule(null);
 		}
 
 		public boolean belongsTo(Object family) {
-			if (family == GRAPH_UPDATE_JOB_FAMILY) {
-				return true;
-			}
-			return super.belongsTo(family);
+			return family == GRAPH_UPDATE_JOB_FAMILY;
 		}
 
 		// We use the listener list as a thread safe queue.
@@ -231,35 +368,23 @@
 				return data;
 			}
 
-			public synchronized boolean isEmpty() {
+			public boolean isEmpty() {
 				return super.isEmpty();
 			}
 		};
 
-		private Queue projectsAdded = new Queue();
-
-		private Queue projectsRemoved = new Queue();
-
-		private Queue projectsUpdated = new Queue();
-
 		public void queueProjectAdded(IProject project) {
-			synchronized (graphLock) {
-				modStamp++;
-			}
+			incrementModStamp();
 			projectsAdded.add(project);
 		}
 
 		public void queueProjectDeleted(IProject project) {
-			synchronized (graphLock) {
-				modStamp++;
-			}
+			incrementModStamp();
 			projectsRemoved.add(project);
 		}
 
 		public void queueProjectUpdated(IProject project) {
-			synchronized (graphLock) {
-				modStamp++;
-			}
+			incrementModStamp();
 			projectsUpdated.add(project);
 		}
 
@@ -269,128 +394,263 @@
 			return !isEmpty;
 		}
 
+		private void setRunning(boolean b) {
+			synchronized (runLock) {
+				running = b;
+				if (running)runStamp++;
+			}
+		}
+
+		private boolean isRunning() {
+			synchronized (runLock) {
+				return running;
+			}
+		}
+
+		private boolean didRun(long stamp) {
+			synchronized (runLock) {
+				return stamp != runStamp;
+			}
+		}
+
+		public void waitForRun(long maxWaitTime) {
+			if (isRunning())return;
+			
+			final long startTime = System.currentTimeMillis();
+			long localRunStamp = 0;
+			synchronized (runLock) {
+				localRunStamp = runStamp;
+			}
+			
+			while (true) {
+				if (System.currentTimeMillis() - startTime > maxWaitTime)return;
+				
+				if (didRun(localRunStamp))return;
+				
+				try {
+					Thread.sleep(50);
+				} catch (InterruptedException e) {
+					Thread.interrupted();
+				}
+			}
+		}
+
 		protected IStatus run(IProgressMonitor monitor) {
-			final Object[] removed = projectsRemoved.getListeners();
-			final Object[] updated = projectsUpdated.getListeners();
-			final Object[] added = projectsAdded.getListeners();
-			if (removed.length == 0 && updated.length == 0 && added.length == 0) {
-				return Status.OK_STATUS;
-			}
-			synchronized (graphLock) {
-				modStamp++;
-			}
-			SafeRunner.run(new ISafeRunnable() {
-				public void handleException(Throwable e) {
-					ModulecorePlugin.logError(e);
+			try {
+				jobILock.acquire();
+				setRunning(true);
+
+				// we do not want to be running during the early part of startup
+				if (ResourcesPlugin.getPlugin().getBundle().getState() == Bundle.STARTING) {
+					graphUpdateJob.schedule(JOB_DELAY);
+					return Status.OK_STATUS;
 				}
 
-				public void run() throws Exception {
-					// this is the simple case; just remove them all
-					synchronized (graphLock) {
-						for (Object o : removed) {
-							IProject project = (IProject) o;
-							removeAllReferences(project);
-						}
-					}
-					// get the updated queue in case there are any adds
-					// if there are any added projects, then unfortunately the
-					// entire workspace needs to be processed
-					if (added.length > 0) {
-						IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-						for (IProject sourceProject : allProjects) {
-							IVirtualComponent component = ComponentCore.createComponent(sourceProject);
-							if (component != null) {
-								IVirtualReference[] references = component.getReferences();
-								for (IVirtualReference ref : references) {
-									IVirtualComponent targetComponent = ref.getReferencedComponent();
-									if (targetComponent != null) {
-										IProject targetProject = targetComponent.getProject();
-										if (targetProject != null && !targetProject.equals(sourceProject)) {
-											addReference(sourceProject, targetProject);
-										}
-									}
-								}
-							}
-						}
-					} else if (updated.length > 0) {
-						IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-						Set<IProject> validRefs = new HashSet<IProject>();
-						for (Object o : updated) {
-							IProject sourceProject = (IProject) o;
-							IVirtualComponent component = ComponentCore.createComponent(sourceProject);
-							if (component != null) {
-								validRefs.clear();
-								IVirtualReference[] references = component.getReferences();
-								for (IVirtualReference ref : references) {
-									IVirtualComponent targetComponent = ref.getReferencedComponent();
-									if (targetComponent != null) {
-										IProject targetProject = targetComponent.getProject();
-										if (targetProject != null && !targetProject.equals(sourceProject)) {
-											validRefs.add(targetProject);
-										}
-									}
-								}
-								synchronized (graphLock) {
-									for (IProject targetProject : allProjects) {
-										// if the reference was identified
-										// above, be sure to add it
-										// otherwise, remove it
-										if (validRefs.remove(targetProject)) {
-											addReference(sourceProject, targetProject);
-										} else {
-											removeReference(sourceProject, targetProject);
-										}
-									}
-								}
-							} else {
-								// if this project is not a component, then it
-								// should be completely removed.
-								removeAllReferences(sourceProject);
-							}
-						}
-					}
+				final Object[] removed = projectsRemoved.getListeners();
+				final Object[] updated = projectsUpdated.getListeners();
+				final Object[] added = projectsAdded.getListeners();
+				if (removed.length == 0 && updated.length == 0 && added.length == 0) {
+					return Status.OK_STATUS;
 				}
-			});
-			// System.err.println(IDependencyGraph.INSTANCE);
-			return Status.OK_STATUS;
+				incrementModStamp();
+				if (ResourcesPlugin.getPlugin().getBundle().getState() != Bundle.ACTIVE) {
+					
+					 // GRK - why don't we need to schedule the job again? 
+					return Status.OK_STATUS;
+				}
+				
+				SafeRunner.run(new ISafeRunnable() {
+					public void handleException(Throwable e) {
+						ModulecorePlugin.logError(e);
+					}
+
+					public void run() throws Exception {
+						final DependencyGraphEvent event = new DependencyGraphEvent();
+
+						// all references will be rebuilt during an add
+						if (added.length == 0) {
+							// this is the simple case; just remove them all
+							synchronized (graphLock) {
+								for (Object o : removed) {
+									IProject project = (IProject) o;
+									removeAllReferences(project, event);
+								}
+							}
+						}
+						// get the updated queue in case there are any adds
+						// if there are any added projects, then unfortunately
+						// the entire workspace needs to be processed
+						if (added.length > 0) {
+							removeAllReferences(event);
+							IProject[] allProjects = null;
+							int state = ResourcesPlugin.getPlugin().getBundle().getState();
+							if (state == Bundle.ACTIVE) {
+								allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+							} else {
+								return;
+							}
+
+							for (IProject sourceProject : allProjects) {
+								IVirtualComponent component = ComponentCore.createComponent(sourceProject);
+								if (component instanceof VirtualComponent) {
+									((VirtualComponent) component).flushCache();
+								}
+							}
+
+							for (IProject sourceProject : allProjects) {
+								IVirtualComponent component = ComponentCore.createComponent(sourceProject);
+								if (component instanceof VirtualComponent) {
+									IVirtualReference[] references = ((VirtualComponent) component).getRawReferences();
+									for (IVirtualReference ref : references) {
+										IVirtualComponent targetComponent = ref.getReferencedComponent();
+										if (targetComponent != null) {
+											IProject targetProject = targetComponent.getProject();
+											if (targetProject != null && !targetProject.equals(sourceProject)) {
+												addReference(sourceProject,	targetProject, event);
+											}
+										}
+									}
+								}
+							}
+						} else if (updated.length > 0) {
+							IProject[] allProjects = null;
+							int state = ResourcesPlugin.getPlugin().getBundle().getState();
+							if (state == Bundle.ACTIVE) {
+								allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+							} else {
+								return;
+							}
+
+							Set<IProject> validRefs = new HashSet<IProject>();
+							for (Object o : updated) {
+								IProject sourceProject = (IProject) o;
+								IVirtualComponent component = ComponentCore.createComponent(sourceProject);
+								if (component instanceof VirtualComponent) {
+									validRefs.clear();
+									((VirtualComponent) component).flushCache();
+									IVirtualReference[] references = ((VirtualComponent) component).getRawReferences();
+									for (IVirtualReference ref : references) {
+										IVirtualComponent targetComponent = ref.getReferencedComponent();
+										if (targetComponent != null) {
+											IProject targetProject = targetComponent.getProject();
+											if (targetProject != null && !targetProject.equals(sourceProject)) {
+												validRefs.add(targetProject);
+											}
+										}
+									}
+									synchronized (graphLock) {
+										for (IProject targetProject : allProjects) {
+											// if the reference was identified above, be sure to add it otherwise, remove it
+											if (validRefs.remove(targetProject)) {
+												addReference(sourceProject,	targetProject, event);
+											} else {
+												removeReference(sourceProject,	targetProject, event);
+											}
+										}
+									}
+								} else {
+									// if this project is not a component, then it should be completely removed.
+									removeAllReferences(sourceProject, event);
+								}
+							}
+						}
+						notifiyListeners(event);
+					}
+				});
+				return Status.OK_STATUS;
+			} finally {
+				setRunning(false);
+				jobILock.release();
+			}
 		}
 	};
 
+	public void addListener(IDependencyGraphListener listener) {
+		listeners.add(listener);
+	}
+
+	public void removeListener(IDependencyGraphListener listener) {
+		listeners.remove(listener);
+	}
+
+	private void notifiyListeners(final DependencyGraphEvent event) {
+		if (event.getType() == 0) {
+			return;
+		}
+		// fire notifications on a different job so they do not block
+		// waitForAllUpdates()
+		Job notificationJob = new Job(Resources.NOTIFICATION_JOB_NAME) {
+			@Override
+			protected IStatus run(final IProgressMonitor monitor) {
+				SafeRunner.run(new ISafeRunnable() {
+					public void run() throws Exception {
+						for (Object listener : listeners.getListeners()) {
+							((IDependencyGraphListener) listener).dependencyGraphUpdate(event);
+						}
+						saveGraph(); // trigger a future save
+						monitor.done();
+					}
+
+					public void handleException(Throwable exception) {
+						ModulecorePlugin.logError(exception);
+					}
+				});
+				return Status.OK_STATUS;
+			}
+		};
+		notificationJob.setSystem(true);
+		notificationJob.setRule(null);
+		notificationJob.schedule();
+	}
+
+	/**
+	 * Use: update(project, IDependencyGraph.ADDED);
+	 * 
+	 * @deprecated use {@link #update(IProject, int)}
+	 */
 	public void queueProjectAdded(IProject project) {
-		graphUpdateJob.queueProjectAdded(project);
-		synchronized (jobLock) {
-			if (pauseCount > 0) {
-				return;
-			}
-		}
-		graphUpdateJob.schedule(JOB_DELAY);
+		update(project, IDependencyGraph.ADDED);
 	}
 
+	/**
+	 * Use: update(project, IDependencyGraph.REMOVED);
+	 * 
+	 * @deprecated use {@link #update(IProject, int)}
+	 */
 	public void queueProjectDeleted(IProject project) {
-		graphUpdateJob.queueProjectDeleted(project);
-		synchronized (jobLock) {
-			if (pauseCount > 0) {
-				return;
-			}
-		}
-		graphUpdateJob.schedule(JOB_DELAY);
+		update(project, IDependencyGraph.REMOVED);
 	}
 
+	/**
+	 * Use: update(project, IDependencyGraph.MODIFIED);
+	 * 
+	 * @deprecated use {@link #update(IProject, int)}
+	 */
 	public void update(IProject project) {
-		graphUpdateJob.queueProjectUpdated(project);
-		synchronized (jobLock) {
-			if (pauseCount > 0) {
-				return;
-			}
-		}
-		graphUpdateJob.schedule(JOB_DELAY);
+		update(project, IDependencyGraph.MODIFIED);
 	}
 
-	private int pauseCount = 0;
+	public void update(IProject project, final int updateType) {
+		switch (updateType) {
+		case IDependencyGraph.MODIFIED:
+			graphUpdateJob.queueProjectUpdated(project);
+			break;
+		case IDependencyGraph.ADDED:
+			graphUpdateJob.queueProjectAdded(project);
+			break;
+		case IDependencyGraph.REMOVED:
+			graphUpdateJob.queueProjectDeleted(project);
+			break;
+		}
+		synchronized (jobLock) {
+			if (pauseCount > 0)return;
+			graphUpdateJob.schedule(JOB_DELAY);
+		}
+	}
 
 	/**
 	 * Pauses updates; any caller of this method must ensure through a
-	 * try/finally block that resumeUpdates is subsequently called.
+	 * try/finally block that postUpdate is subsequently called.
 	 */
 	public void preUpdate() {
 		synchronized (jobLock) {
@@ -400,35 +660,354 @@
 
 	public void postUpdate() {
 		synchronized (jobLock) {
-			if (pauseCount > 0) {
-				pauseCount--;
+			if (pauseCount > 0)pauseCount--;			
+			if (pauseCount > 0)return;
+			graphUpdateJob.schedule(JOB_DELAY);
+		}
+	}
+
+	public void waitForAllUpdates(IProgressMonitor monitor) {
+		SubMonitor subMonitor = SubMonitor.convert(monitor);
+		subMonitor.subTask(Resources.WAITING);
+
+		Job currentJob = Job.getJobManager().currentJob();
+		if (currentJob != graphUpdateJob) {
+			// GRK - This seems dangerous, we should document why this call is here.
+			if (Job.getJobManager().isSuspended()) {
+				Job.getJobManager().resume();
 			}
-			if (pauseCount > 0) {
-				return;
+			
+			while (isUpdateNecessary()) {
+				if (subMonitor.isCanceled())throw new OperationCanceledException();
+
+				// Ensure any pending work has caused the job to become scheduled
+				if (graphUpdateJob.shouldSchedule()) {
+					graphUpdateJob.schedule();
+				}
+				// Wake up any sleeping jobs since we're going to wait on the job,
+				// there is no sense to wait for a sleeping job
+				graphUpdateJob.wakeUp();
+				if (currentJob != null && !ResourcesPlugin.getWorkspace().isTreeLocked()) {
+					currentJob.yieldRule(subMonitor.newChild(100));
+				}
+
+				graphUpdateJob.waitForRun(500);
+
+				boolean interrupted = false;
+				try {
+					if (jobILock.acquire(500)) {
+						jobILock.release();
+						// only exit if the job has had a chance to run
+						if (!isUpdateNecessary()) {
+							break;
+						}
+					}
+				} catch (InterruptedException e) {
+					interrupted = true;
+				} finally {
+					if (interrupted) {
+						// Propagate interrupts
+						Thread.currentThread().interrupt();
+					}
+				}
 			}
 		}
-		graphUpdateJob.schedule(JOB_DELAY);
+		if (null != monitor) {
+			monitor.done();
+		}
+	}
+
+	// necessary if the job is running, waiting, or sleeping
+	// or there is anything in the graph queue.
+	private boolean isUpdateNecessary() {
+		return graphUpdateJob.getState() != Job.NONE || graphUpdateJob.shouldSchedule();
+	}
+
+	private static final class RestoredGraphResults {
+		private DependencyGraphEvent event;
+		private HashMap<String, Set<String>> graph;
 	}
 
 	/**
-	 * Blocks until the graph is finished updating
+	 * This file will be stored here:
+	 * .metadata\.plugins\org.eclipse.wst.common.modulecore
+	 * \dependencyCache.index
 	 */
-	public void waitForAllUpdates(IProgressMonitor monitor) {
+	private static final String DEPENDENCY_GRAPH_CACHE = "dependencyCache.index";
+
+	/**
+	 * Restores the graph if possible and returns a {@link RestoredGraphResults}
+	 * if successful.
+	 * 
+	 * <p>
+	 * It is essential this method do everything possible to avoid restoring bad
+	 * data to ensure bad data does not corrupt the current workspace instance.
+	 * If bad data is detected, it is deleted to avoid a repeat failure the next
+	 * time the workspace is restarted.
+	 * 
+	 * @return {@link RestoredGraphResults} if successful in restoring the
+	 *         graph, <code>null</code> if not successful
+	 */
+	private RestoredGraphResults restoreGraph() {
 		try {
-			graphUpdateJob.schedule(0);
-			Job.getJobManager().join(GRAPH_UPDATE_JOB_FAMILY, monitor);
-		} catch (OperationCanceledException e) {
-			ModulecorePlugin.logError(e);
-		} catch (InterruptedException e) {
-			ModulecorePlugin.logError(e);
+			synchronized (graphLock) {
+				graph = new HashMap<IProject, Set<IProject>>();
+				IPath stateLocation = ModulecorePlugin.getDefault().getStateLocation();
+				File file = stateLocation.append(DEPENDENCY_GRAPH_CACHE).toFile();
+				if (!file.exists()) {
+					return null; // no state to restore from
+				} else {
+					HashMap<String, Set<String>> savedMap = null;
+					FileInputStream fIn = null;
+					boolean deleteCache = true;
+					try {
+						fIn = new FileInputStream(file);
+						BufferedInputStream bIn = new BufferedInputStream(fIn);
+						ObjectInputStream oIn = new ObjectInputStream(bIn);
+						savedMap = (HashMap<String, Set<String>>) oIn.readObject();
+						oIn.close();
+						deleteCache = false;
+					} catch (FileNotFoundException e) {
+						ModulecorePlugin.logError(e);
+						return null;
+					} catch (IOException e) {
+						ModulecorePlugin.logError(e);
+						return null;
+					} catch (ClassNotFoundException e) {
+						ModulecorePlugin.logError(e);
+						return null;
+					} finally {
+						if (fIn != null) {
+							try {
+								fIn.close();
+							} catch (IOException e) {
+								ModulecorePlugin.logError(e);
+							}
+						}
+						if (deleteCache) {
+							file.delete();
+						}
+					}
+					if (savedMap != null) { 
+						// we have something to restore the state from
+						// first check to ensure all projects are still present
+						IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+						for (String sourceProjectName : savedMap.keySet()) {
+							IProject sourceProject = root.getProject(sourceProjectName);
+							if (!sourceProject.exists()) {
+								return null;
+							} else {
+								Set<String> targetProjectNames = savedMap.get(sourceProjectName);
+								for (String targetProjectName : targetProjectNames) {
+									IProject targetProject = root.getProject(targetProjectName);
+									if (!targetProject.exists()) {
+										return null;
+									}
+								}
+							}
+						}
+
+						// next add the references
+						DependencyGraphEvent event = new DependencyGraphEvent();
+						incrementModStamp();
+						event = new DependencyGraphEvent();
+						event.setModStamp(getModStamp());
+
+						Set<Entry<String, Set<String>>> entries = savedMap.entrySet();
+						for (Entry<String, Set<String>> entry : entries) {
+							IProject sourceProject = root.getProject(entry.getKey());
+							for (String targetProjectName : entry.getValue()) {
+								IProject targetProject = root.getProject(targetProjectName);
+								addReference(targetProject, sourceProject, event);
+							}
+						}
+
+						RestoredGraphResults results = new RestoredGraphResults();
+						results.event = event;
+						results.graph = savedMap;
+
+						// finally ensure the results are accurate
+						checkRestoredResults(results);
+						return results;
+					}
+				}
+			}
+		} catch (Throwable e) {
+			try {
+				ModulecorePlugin.logError(e);
+				IPath stateLocation = ModulecorePlugin.getDefault().getStateLocation();
+				File file = stateLocation.append(DEPENDENCY_GRAPH_CACHE).toFile();
+				file.delete();
+			} catch (Exception e2) {
+				// eat it
+			}
 		}
+		return null;
+	}
+
+	private class PersistJob extends Job {
+
+		public PersistJob() {
+			super(Resources.GRAPH_SAVE_JOB_NAME);
+			setSystem(true);
+			setRule(null);
+		}
+
+		@Override
+		protected IStatus run(IProgressMonitor monitor) {
+			SafeRunner.run(new ISafeRunnable() {
+				public void run() throws Exception {
+					persist();
+				}
+
+				public void handleException(Throwable exception) {
+					ModulecorePlugin.logError(exception);
+				}
+			});
+			return Status.OK_STATUS;
+		}
+	}
+
+	private final static int persistDelay = 60000; // 1 minute
+	private final PersistJob persistJob = new PersistJob();
+
+	/**
+	 * Farm out the I/O to a job to minimize the necessary processing.
+	 */
+	private void saveGraph() {
+		persistJob.schedule(persistDelay);
+	}
+
+	private void persist() {
+		Map<String, Set<String>> savedMap = null;
+		synchronized (graphLock) {
+			savedMap = new HashMap<String, Set<String>>(graph.size());
+			for (IProject sourceProject : graph.keySet()) {
+				Set<String> savedTargets = new HashSet<String>();
+				for (IProject targetProject : graph.get(sourceProject)) {
+					savedTargets.add(targetProject.getName());
+				}
+				savedMap.put(sourceProject.getName(), savedTargets);
+			}
+		}
+		IPath stateLocation = ModulecorePlugin.getDefault().getStateLocation();
+		File file = stateLocation.append(DEPENDENCY_GRAPH_CACHE).toFile();
+		if (savedMap.isEmpty()) {
+			// if there is nothing to persist, delete the file.
+			if (file.exists()) {
+				file.delete();
+			}
+		} else {
+			FileOutputStream fOut = null;
+			try {
+				fOut = new FileOutputStream(file);
+				BufferedOutputStream bOut = new BufferedOutputStream(fOut);
+				ObjectOutputStream oOut = new ObjectOutputStream(bOut);
+				oOut.writeObject(savedMap);
+				oOut.close();
+			} catch (FileNotFoundException e) {
+				ModulecorePlugin.logError(e);
+			} catch (IOException e) {
+				ModulecorePlugin.logError(e);
+			} finally {
+				if (fOut != null) {
+					try {
+						fOut.close();
+					} catch (IOException e) {
+						ModulecorePlugin.logError(e);
+					}
+				}
+			}
+		}
+	}
+
+	private void checkRestoredResults(final RestoredGraphResults restoredGraphResults) {
+		Job checkRestoreDataJob = new Job(Resources.CHECK_GRAPH_RESTORE_JOB_NAME) {
+			
+			@Override
+			protected IStatus run(final IProgressMonitor monitor) {
+				SafeRunner.run(new ISafeRunnable() {
+					public void run() throws Exception {
+						try {
+							IProject[] allProjects = null;
+							int state = ResourcesPlugin.getPlugin().getBundle().getState();
+							if (state == Bundle.ACTIVE) {
+								allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+							} else {
+								return;
+							}
+							if (isStale(allProjects)) {
+								rebuild(allProjects);
+								saveGraph(); // trigger a future save
+							}
+						} finally {
+							monitor.done();
+						}
+					}
+
+					private boolean isStale(IProject[] allProjects) {
+						if (restoredGraphResults.event.getModStamp() != getModStamp()) {
+							return true;
+						}
+
+						HashMap<String, Set<String>> computedGraph = new HashMap<String, Set<String>>();
+
+						for (IProject sourceProject : allProjects) {
+							if (restoredGraphResults.event.getModStamp() != getModStamp()) {
+								return true;
+							}
+							IVirtualComponent component = ComponentCore.createComponent(sourceProject);
+							if (component instanceof VirtualComponent) {
+								IVirtualReference[] references = ((VirtualComponent) component).getRawReferences();
+								for (IVirtualReference ref : references) {
+									if (restoredGraphResults.event.getModStamp() != getModStamp()) {
+										return true;
+									}
+									IVirtualComponent targetComponent = ref.getReferencedComponent();
+									if (targetComponent != null) {
+										IProject targetProject = targetComponent.getProject();
+										if (targetProject != null && !targetProject.equals(sourceProject)) {
+											String targetProjectName = targetProject.getName();
+											String sourceProjectName = sourceProject.getName();
+											Set<String> targetProjects = computedGraph.get(targetProjectName);
+											if (targetProjects == null) {
+												targetProjects = new HashSet<String>();
+												computedGraph.put(targetProjectName, targetProjects);
+											}
+											targetProjects.add(sourceProjectName);
+										}
+									}
+								}
+							}
+						}
+						if (restoredGraphResults.event.getModStamp() != getModStamp()) {
+							return true;
+						}
+						if (!restoredGraphResults.graph.equals(computedGraph)) {
+							return true;
+						}
+						if (restoredGraphResults.event.getModStamp() != getModStamp()) {
+							return true;
+						}
+						return false;
+					}
+
+					public void handleException(Throwable exception) {
+						ModulecorePlugin.logError(exception);
+					}
+				});
+				return Status.OK_STATUS;
+			}
+		};
+		checkRestoreDataJob.setSystem(true);
+		checkRestoreDataJob.setRule(ResourcesPlugin.getWorkspace().getRoot());
+		checkRestoreDataJob.schedule();
 	}
 
 	public String toString() {
 		synchronized (graphLock) {
 			StringBuffer buff = new StringBuffer("Dependency Graph:\n{\n");
-			for (Iterator<Map.Entry<IProject, Set<IProject>>> iterator = graph.entrySet().iterator(); iterator.hasNext();) {
-				Map.Entry<IProject, Set<IProject>> entry = iterator.next();
+			for (Map.Entry<IProject, Set<IProject>> entry : graph.entrySet()) {
 				buff.append("  " + entry.getKey().getName() + " -> {");
 				for (Iterator<IProject> mappedProjects = entry.getValue().iterator(); mappedProjects.hasNext();) {
 					buff.append(mappedProjects.next().getName());
@@ -444,4 +1023,16 @@
 
 	}
 
+	public static final class Resources extends NLS {
+		public static String WAITING;
+		public static String JOB_NAME;
+		public static String NOTIFICATION_JOB_NAME;
+		public static String CHECK_GRAPH_RESTORE_JOB_NAME;
+		public static String GRAPH_SAVE_JOB_NAME;
+
+		static {
+			initializeMessages(DependencyGraphImpl.class.getName(),	Resources.class);
+		}
+	}
+
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphImpl.properties b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphImpl.properties
new file mode 100644
index 0000000..0d0f481
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphImpl.properties
@@ -0,0 +1,5 @@
+WAITING=Waiting
+JOB_NAME=Graph Update
+NOTIFICATION_JOB_NAME=Graph Update Notification
+CHECK_GRAPH_RESTORE_JOB_NAME=Graph Restore
+GRAPH_SAVE_JOB_NAME=Graph persist
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphReferences.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphReferences.java
new file mode 100644
index 0000000..115195a
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphReferences.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.common.componentcore.internal.builder;
+
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+
+class DependencyGraphReferences implements IDependencyGraphReferences {
+
+	IProject targetProject = null;
+
+	Set<IProject> referencingProjects = null;
+
+	boolean stale;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.common.componentcore.internal.builder.IDependencyGraphReferences#getTargetProject()
+	 */
+	public IProject getTargetProject() {
+		return targetProject;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.common.componentcore.internal.builder.IDependencyGraphReferences#getReferencingComponents()
+	 */
+	public Set<IProject> getReferencingComponents() {
+		return referencingProjects;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.common.componentcore.internal.builder.IDependencyGraphReferences#isStale()
+	 */
+	public boolean isStale() {
+		return stale;
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraph.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraph.java
index 1396949..e597350 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraph.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraph.java
@@ -1,3 +1,14 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
 package org.eclipse.wst.common.componentcore.internal.builder;
 
 import java.util.Set;
@@ -11,7 +22,7 @@
  * provides a project limited inverse of
  * {@link IVirtualComponent#getReferences()}.
  * 
- * For example:
+ * <p>For example:
  * <ul>
  * <li>if the IVirtualComponent for project A has a dependency on the
  * IVirtualComponent for project B, then calling
@@ -35,9 +46,28 @@
 public interface IDependencyGraph {
 
 	/**
-	 * The static instance of this graph
+	 * Flag used by {@link #update(IProject, int)} to specify that something has been
+	 * modified in a project which has changed the component dependencies.
 	 */
-	public static IDependencyGraph INSTANCE = DependencyGraphImpl.getInstance();
+	int MODIFIED = 0;
+
+	/**
+	 * Flag used by {@link #update(IProject, int)} to specify a project has been
+	 * added or opened. This flag should be used as sparingly as possible
+	 * because there are performance implications.
+	 */
+	int ADDED = 1;
+
+	/**
+	 * Flag used by {@link #update(IProject, int)} to specify a project has been
+	 * removed or closed.
+	 */
+	int REMOVED = 2;
+
+	/**
+	 * The static instance of this graph.
+	 */
+	IDependencyGraph INSTANCE = DependencyGraphImpl.getInstance();
 
 	/**
 	 * Returns the set of component projects referencing the specified target
@@ -46,39 +76,70 @@
 	 * @param targetProject
 	 * @return
 	 */
-	public Set<IProject> getReferencingComponents(IProject targetProject);
+	Set<IProject> getReferencingComponents(IProject targetProject);
+
+	/**
+	 * If <code>waitForAllUpdates</code> is <code>true</code> this method is
+	 * equivalent to {@link #getReferencingComponents(IProject)}. Otherwise this
+	 * method will return immediately without waiting for all updates to occur
+	 * and potentially returning stale data. This a safer way to call
+	 * getReferences to avoid deadlocks. If stale data is returned, then a
+	 * subsequent on the same thread can be made, but there may be deadlock risk
+	 * depending on what ISchedulingRule is currently held.  A safer reaction
+	 * to stale data would be to schedule another job to run in future to try again.
+	 * 
+	 * @param targetProject
+	 * @param waitForAllUpdates
+	 * @return
+	 */
+	IDependencyGraphReferences getReferencingComponents(IProject targetProject, boolean waitForAllUpdates);
+		
+	/**
+	 * Returns <code>true</code> if there are any pending updates.
+	 * @return
+	 */
+	boolean isStale();
 	
 	/**
-	 * Returns a modification stamp.  This modification stamp will be different
+	 * Returns a modification stamp. This modification stamp will be different
 	 * if the project dependencies ever change.
 	 */
-	public long getModStamp();
+	long getModStamp();
 	
-	/**
-	 * WARNING: this should only be called by implementors of the
-	 * org.eclipse.wst.common.modulecore.componentimpl extension point.
-	 * 
-	 * This method is part of the update API.
-	 * 
-	 * @see {@link #update(IProject)}
-	 */
-	public void preUpdate();
+	void addListener(IDependencyGraphListener listener);
+	
+	void removeListener(IDependencyGraphListener listener);
 
 	/**
 	 * WARNING: this should only be called by implementors of the
 	 * org.eclipse.wst.common.modulecore.componentimpl extension point.
 	 * 
-	 * This method is part of the update API.
+	 * <p>This method is part of the update API.
 	 * 
 	 * @see {@link #update(IProject)}
 	 */
-	public void postUpdate();
+	void preUpdate();
 
 	/**
 	 * WARNING: this should only be called by implementors of the
 	 * org.eclipse.wst.common.modulecore.componentimpl extension point.
 	 * 
-	 * This method must be called when a resource change is detected which will
+	 * <p>This method is part of the update API.
+	 * 
+	 * @see {@link #update(IProject)}
+	 */
+	void postUpdate();
+
+	/**
+	 * @deprecated use {@link #update(IProject, int) using the #MODIFIED flag.
+	 */
+	void update(IProject sourceProject);
+
+	/**
+	 * WARNING: this should only be called by implementors of the
+	 * org.eclipse.wst.common.modulecore.componentimpl extension point.
+	 * 
+	 * <p>This method must be called when a resource change is detected which will
 	 * affect how dependencies behave. For example, the core IVirtualComponent
 	 * framework updates when changes are made to the
 	 * .settings/org.eclipse.wst.common.component file changes, and also when
@@ -87,20 +148,23 @@
 	 * general a call to update should only be made from a fast
 	 * {@link IResourceDeltaVisitor}.
 	 * 
-	 * In order to improve efficiency and avoid unnecessary update processing,
+	 * <p>In order to improve efficiency and avoid unnecessary update processing,
 	 * it is necessary to always proceed calls to update() with a call to
 	 * preUpdate() and follow with a call to postUpdate() using a try finally
-	 * block as follows: <code>
+	 * block as follows: 
+	 * <pre>
 	 * try {
 	 *     preUpdate();
 	 *     // perform 0 or more update() calls here
 	 * } finally {
 	 *     IDependencyGraph.INSTANCE.postUpdate();
 	 * }    
-	 * </code>
+	 * </pre>
 	 * 
+	 * Valid updateType flags are {@link #MODIFIED}, {@link #ADDED}, and
+	 * {@link #REMOVED}
 	 * 
 	 */
-	public void update(IProject sourceProject);
+	void update(IProject sourceProject, int updateType);
 
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraphListener.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraphListener.java
new file mode 100644
index 0000000..c1f637b
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraphListener.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.builder;
+
+public interface IDependencyGraphListener {
+
+	public void dependencyGraphUpdate(IDependencyGraphUpdateEvent event);
+	
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraphReferences.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraphReferences.java
new file mode 100644
index 0000000..03e7161
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraphReferences.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.common.componentcore.internal.builder;
+
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+
+public interface IDependencyGraphReferences {
+
+	IProject getTargetProject();
+
+	/**
+	 * Returns the set of referencing projects; see
+	 * {@link IDependencyGraph#getReferencingComponents(IProject)}
+	 */
+	Set<IProject> getReferencingComponents();
+
+	/**
+	 * If this returns <code>true</code>, then it is possible that this data
+	 * are stale. It is also possible this data are accurate.
+	 */
+	boolean isStale();
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraphUpdateEvent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraphUpdateEvent.java
new file mode 100644
index 0000000..b50748a
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/IDependencyGraphUpdateEvent.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.builder;
+
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+
+public interface IDependencyGraphUpdateEvent {
+
+	int ADDED = 1;
+	int REMOVED = 2;
+
+	
+	/**
+	 * Returns a bitwise or of the reference change types.
+	 * 
+	 * @see {@link #ADDED} {@link #REMOVED}
+	 * @return
+	 */
+	int getType();
+
+	/**
+	 * Returns the modification stamp for the last update change in the
+	 * {@link IDependencyGraph} being notified by this event.
+	 * 
+	 * <p>Note that updates to the {@link IDependencyGraph} may be queued so
+	 * several are handled by a single event.
+	 * 
+	 * @see IDependencyGraph#getModStamp()
+	 * 
+	 * @return
+	 */
+	long getModStamp();
+
+	/**
+	 * The key contains the referenced component, the value contains the set of
+	 * referencing components recently added. This map will only contain the
+	 * changes since the last event was fired. If {@link #getType()} |
+	 * {@link #ADDED} != {@link #ADDED} then this will be an empty map.
+	 * 
+	 * <p>Note that the changes specified by this map do not necessarily reflect
+	 * the current state of the {@link IDependencyGraph} because it is possible
+	 * that additional changes have occurred since this event was fired.
+	 * {@link IDependencyGraph#getReferencingComponents(IProject)} will return
+	 * the current reference state.
+	 * 
+	 * @return
+	 */
+	Map<IProject, Set<IProject>> getAddedReferences();
+
+	/**
+	 * The key contains the referenced component, the value contains the set of
+	 * referencing components recently removed. This map will only contain the
+	 * changes since the last event was fired. If {@link #getType()} |
+	 * {@link #REMOVED} != {@link #REMOVED} then this will be an empty map.
+	 * 
+	 * <p>Note that the changes specified by this map do not necessarily reflect
+	 * the current state of the {@link IDependencyGraph} because it is possible
+	 * that additional changes have occurred since this event was fired.
+	 * {@link IDependencyGraph#getReferencingComponents(IProject)} will return
+	 * the current reference state.
+	 * 
+	 * @return
+	 */
+	Map<IProject, Set<IProject>> getRemovedReferences();
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java
new file mode 100644
index 0000000..a844e07
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import java.util.List;
+
+import org.eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.FlatComponentTaskModel;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+
+/**
+ * A simple abstract class with default values so clients
+ * can extend and override only the method they care about
+ */
+public class AbstractFlattenParticipant implements IFlattenParticipant {
+
+	public void initialize(IVirtualComponent component,
+			FlatComponentTaskModel dataModel, List<IFlatResource> resources) {
+	}
+
+	public boolean canOptimize(IVirtualComponent component,
+			FlatComponentTaskModel dataModel) {
+		return false;
+	}
+
+	public void optimize(IVirtualComponent component, FlatComponentTaskModel dataModel, 
+			List<IFlatResource> resources, List<IChildModuleReference> childModules) {
+	}
+
+	public void finalize(IVirtualComponent component,
+			FlatComponentTaskModel dataModel, List<IFlatResource> resources) {
+	}
+
+	public boolean isChildModule(IVirtualComponent rootComponent,
+			FlatComponentTaskModel dataModel, IFlatFile file) {
+		return false;
+	}
+
+	public boolean isChildModule(IVirtualComponent rootComponent,
+			IVirtualReference referenced, FlatComponentTaskModel dataModel) {
+		return false;
+	}
+
+	public boolean shouldAddExportableFile(IVirtualComponent rootComponent,
+			IVirtualComponent currentComponent, FlatComponentTaskModel dataModel,
+			IFlatFile file) {
+		return true;
+	}
+	
+	public boolean shouldIgnoreReference(IVirtualComponent rootComponent,
+			IVirtualReference referenced, FlatComponentTaskModel dataModel) {
+		return false;
+	}
+
+	public List<IVirtualReference> getChildModules(IVirtualComponent rootComponent, FlatComponentTaskModel dataModel) {
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/ChildModuleReference.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/ChildModuleReference.java
new file mode 100644
index 0000000..f48af99
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/ChildModuleReference.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+
+/**
+ * Clients of this class will need to pay attention to 
+ * if this module is binary or not. If it's binary, you 
+ * should get the file, and copy it directly to the URI provided.
+ * 
+ * If it's not binary, you should use the provided uri
+ * as a base from which you can append it's member resources
+ *  
+ * String parentRelative = module.getRelativeURI(); //  path/to/childmod.jar
+ * String uri = parentLoc.append(parentRelative);
+ * if( module.isBinary()) {
+ *    File f = module.getFile();
+ *    // copy file f to uri;
+ * } else {
+ *    ExportModel em = new ExportModel(module.getComponent());
+ *    ExportableResource[] members = em.fetchResources();
+ *    String uri1 = uri.append(members[1].getModuleRelativePath());
+ *    String uri2 = ....
+ * }
+ * @author rob
+ *
+ */
+public class ChildModuleReference implements IChildModuleReference {
+	private IProject project;
+	private File file;
+	private IVirtualComponent component;
+	private IVirtualReference reference;
+	private IPath uri;
+	public ChildModuleReference(IProject project, IFlatFile f) {
+		this.project = project;
+		this.file = f == null ? null : (File)f.getAdapter(File.class);
+		if( f != null && file != null ) {
+			this.uri = f.getModuleRelativePath().append(f.getName());
+		}
+	}
+	
+	public ChildModuleReference(IVirtualReference reference, IPath root) {
+		this.reference = reference;
+		this.component = reference.getReferencedComponent();
+		this.project = this.component.getProject();
+		if( component.isBinary() ) {
+			File f = (File)component.getAdapter(File.class);
+			if( f.exists() && f.isFile()) {
+				this.file = f;
+			}
+		}
+		this.uri = root.append(reference.getRuntimePath()).append(reference.getArchiveName());
+	}
+	
+	/**
+	 * Will return a file if this can be tracked to one
+	 * @return
+	 */
+	public File getFile() {
+		return file;
+	}
+	
+	public IVirtualReference getReference() {
+		return reference;
+	}
+	
+	/**
+	 * Return the component if it exists
+	 * @return
+	 */
+	public IVirtualComponent getComponent() {
+		if( component != null ) 
+			return component;
+		if( file != null ) 
+			return new VirtualArchiveComponent(project, VirtualArchiveComponent.LIBARCHIVETYPE + "/" + file.getAbsolutePath(), new Path("/"));
+		return null;
+	}
+	
+	/**
+	 * If this is a single file, return true.
+	 * If a more complex component, return false
+	 * @return
+	 */
+	public boolean isBinary() {
+		return component == null || component.isBinary();
+	}
+	
+	/**
+	 * Get the relative URI to it's direct parent, 
+	 * including path + filename + extension
+	 * @return
+	 */
+	public IPath getRelativeURI() {
+		return uri;
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FilterResourceParticipant.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FilterResourceParticipant.java
new file mode 100644
index 0000000..635caa6
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FilterResourceParticipant.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.FlatComponentTaskModel;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+
+public class FilterResourceParticipant extends AbstractFlattenParticipant {
+	public interface IExportableResourceFilter {
+		public boolean accepts(IFlatResource resource);
+	}
+	
+	public static class FilterExtensionsParticipant implements IExportableResourceFilter {
+		private String[] bannedExtensions;
+		public FilterExtensionsParticipant(String[] extensions) {
+			this.bannedExtensions = extensions;
+		}
+		public boolean accepts(IFlatResource resource) {
+			IFile ifile = (IFile)resource.getAdapter(IFile.class);
+			String name = null;
+			if( ifile != null ) {
+				name = ifile.getName();
+			} else {
+				File f = (File)resource.getAdapter(File.class);
+				if( f != null )
+					name = f.getName();
+			}
+			if( name != null) {
+				for( int i = 0; i < bannedExtensions.length; i++ ) {
+					if( name.endsWith(bannedExtensions[i]))
+						return false;
+				}
+				return true;
+			} 
+			return false;
+		}
+	}
+	
+	public static FilterResourceParticipant createSuffixFilterParticipant(String[] strings) {
+		return new FilterResourceParticipant(new FilterExtensionsParticipant(strings));
+	}
+	
+	private IExportableResourceFilter filter;
+	public FilterResourceParticipant(IExportableResourceFilter filter) {
+		this.filter = filter;
+	}
+	
+	public boolean shouldAddExportableFile(IVirtualComponent rootComponent,
+			IVirtualComponent currentComponent, FlatComponentTaskModel dataModel,
+			IFlatFile file) {
+		return filter.accepts(file);
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatFile.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatFile.java
new file mode 100644
index 0000000..84639f8
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatFile.java
@@ -0,0 +1,178 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IPath;
+
+/**
+ * A deployable file
+ */
+public class FlatFile extends FlatResource implements IFlatFile {
+	private InputStream stream;
+	private IFile file;
+	private File file2;
+	private String name;
+	private IPath path;
+	private long stamp = -1;
+
+	/**
+	 * Creates a workspace module file with the current modification stamp.
+	 * 
+	 * @param file a file in the workspace
+	 * @param name a name
+	 * @param path the path to the file
+	 */
+	public FlatFile(IFile file, String name, IPath path) {
+		if (name == null)
+			throw new IllegalArgumentException();
+		this.file = file;
+		this.name = name;
+		this.path = path;
+		if (file != null)
+			stamp = file.getModificationStamp() + file.getLocalTimeStamp();
+	}
+
+	/**
+	 * Creates an external module file 
+	 * 
+	 * @param file
+	 * @param name
+	 * @param path
+	 */
+	public FlatFile(File file, String name, IPath path) {
+		if (name == null)
+			throw new IllegalArgumentException();
+		this.file2 = file;
+		this.name = name;
+		this.path = path;
+		if (file2 != null)
+			stamp = file2.lastModified();
+	}
+
+	/**
+	 * Creates an unknown module file with a specific modification stamp.
+	 * 
+	 * @param file
+	 * @param name
+	 * @param path
+	 * @param stamp
+	 */
+	public FlatFile(InputStream is, String name, IPath path, long stamp) {
+		if (name == null)
+			throw new IllegalArgumentException();
+		this.stream = is;
+		this.name = name;
+		this.path = path;
+		this.stamp = stamp;
+	}
+	
+	/**
+	 * Creates an unknown module file with the current modification stamp.
+	 * 
+	 * @param file
+	 * @param name
+	 * @param path
+	 */
+	public FlatFile(InputStream is, String name, IPath path) {
+		this(is, name, path, System.currentTimeMillis());
+	}
+
+	/**
+	 * Creates a module file with a specific modification stamp and no
+	 * file reference.
+	 * 
+	 * @param name
+	 * @param path
+	 * @param stamp
+	 */
+	public FlatFile(String name, IPath path, long stamp) {
+		if (name == null)
+			throw new IllegalArgumentException();
+		this.name = name;
+		this.path = path;
+		this.stamp = stamp;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.server.core.model.IModuleFile#getModificationStamp()
+	 */
+	public long getModificationStamp() {
+		return stamp;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.server.core.model.IModuleResource#getModuleRelativePath()
+	 */
+	public IPath getModuleRelativePath() {
+		return path;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.server.core.model.IModuleResource#getName()
+	 */
+	public String getName() {
+		return name;
+	}
+
+	public boolean equals(Object obj) {
+		if (obj == this)
+			return true;
+		
+		if (!(obj instanceof FlatFile))
+			return false;
+		
+		FlatFile mf = (FlatFile) obj;
+		if (!name.equals(mf.getName()))
+			return false;
+		if (!path.equals(mf.getModuleRelativePath()))
+			return false;
+		return true;
+	}
+
+	public int hashCode() {
+		return name.hashCode() * 37 + path.hashCode();
+	}
+
+	public Object getAdapter(Class cl) {
+		if (IFile.class.equals(cl) || IResource.class.equals(cl))
+			return file;
+		else if (File.class.equals(cl)) {
+			if( file2 != null )
+				return file2;
+			if( file != null )
+				return file.getLocation().toFile();
+		}
+		else if( InputStream.class.equals(cl)) {
+			try {
+				if( stream != null )
+					return stream;
+				if( file2 != null && file2.exists()) 
+					return new FileInputStream(file2);
+				if( file != null && file.exists()) 
+					return new FileInputStream(file.getLocation().toFile());
+			} catch( IOException ioe) {
+				// Do Nothing
+			}
+		}
+		return null;
+	}
+
+	public String toString() {
+		return "DeployableFile [" + name + ", " + path + ", " + stamp + "]";
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatFolder.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatFolder.java
new file mode 100644
index 0000000..c55c023
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatFolder.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IPath;
+
+/**
+ * An implementation of {@link IFlatFolder} for physical folders on disk or in the
+ * workspace.
+ */
+public class FlatFolder extends FlatResource implements IFlatFolder {
+	private static final FlatResource[] EMPTY_RESOURCE_ARRAY = new FlatResource[0];
+
+	private IContainer container;
+	private String name;
+	private IPath path;
+	private IFlatResource[] members;
+
+	/**
+	 * Creates a module folder.
+	 * 
+	 * @param container the container, or <code>null</code> for unknown container
+	 * @param name a name
+	 * @param path the module relative path to the folder
+	 */
+	public FlatFolder(IContainer container, String name, IPath path) {
+		if (name == null)
+			throw new IllegalArgumentException();
+		this.container = container;
+		this.name = name;
+		this.path = path;
+	}
+
+	/**
+	 * Sets the members (contents) of this folder.
+	 * 
+	 * @param members the members
+	 */
+	public void setMembers(IFlatResource[] members) {
+		this.members = members;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.server.core.model.IModuleResource#getModuleRelativePath()
+	 */
+	public IPath getModuleRelativePath() {
+		return path;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.server.core.model.IModuleResource#getName()
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.server.core.model.IModuleFolder#members()
+	 */
+	public IFlatResource[] members() {
+		if (members == null)
+			return EMPTY_RESOURCE_ARRAY;
+		return members;
+	}
+
+	public boolean equals(Object obj) {
+		if (obj == this)
+			return true;
+		
+		if (!(obj instanceof FlatFolder))
+			return false;
+		
+		FlatFolder mf = (FlatFolder) obj;
+		if (!name.equals(mf.name))
+			return false;
+		if (!path.equals(mf.path))
+			return false;
+		return true;
+	}
+
+	public int hashCode() {
+		return name.hashCode() * 37 + path.hashCode();
+	}
+
+	public Object getAdapter(Class cl) {
+		if (container != null) {
+			if (IContainer.class.equals(cl) || IFolder.class.equals(cl) || IResource.class.equals(cl))
+				return container;
+			if( File.class.equals(cl))
+				return container.getLocation().toFile();
+		}
+		return null;
+	}
+
+	public String toString() {
+		return "DeployableFolder [" + name + ", " + path + "]";
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatResource.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatResource.java
new file mode 100644
index 0000000..ff6f174
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatResource.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+
+public abstract class FlatResource implements IFlatResource, IAdaptable {
+	/**
+	 * Returns the module relative path to this resource.
+	 * 
+	 * @return the module relative path to this resource
+	 */
+	public abstract IPath getModuleRelativePath();
+
+	/**
+	 * Returns the name of this resource.
+	 * 
+	 * @return the name of this resource
+	 */
+	public abstract String getName();
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java
new file mode 100644
index 0000000..7a019fe
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java
@@ -0,0 +1,397 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.common.componentcore.internal.DependencyType;
+import org.eclipse.wst.common.componentcore.internal.flat.VirtualComponentFlattenUtility.ShouldIncludeUtilityCallback;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+
+public class FlatVirtualComponent implements IFlatVirtualComponent, ShouldIncludeUtilityCallback {
+	
+	public static class FlatComponentTaskModel extends HashMap<Object, Object> {
+			private static final long serialVersionUID = 1L;
+	}
+	
+	/**
+	 * The datamodel, which may contain preferences, settings, or other data
+	 * used by the various participants to determine how to properly 
+	 * traverse this component. 
+	 */
+	private FlatComponentTaskModel dataModel;
+	
+	/**
+	 * The root component being flattened. 
+	 */
+	private IVirtualComponent component;
+	
+	/**
+	 * The list of participants to engage in the flattening process. 
+	 */
+	private IFlattenParticipant[] participants;
+
+	/**
+	 * The list of member resources for this component
+	 */
+	private List<IFlatResource> members = null;
+	
+	/**
+	 * The list of child modules for this component
+	 */
+	private List<IChildModuleReference> children = null;
+	
+	
+	public FlatVirtualComponent(IVirtualComponent component) {
+		this(component, new FlatComponentTaskModel());
+	}
+	
+	public FlatVirtualComponent(IVirtualComponent component, FlatComponentTaskModel dataModel) {
+		this.component = component;
+		this.dataModel = dataModel;
+		participants = setParticipants();
+		dataModel.put(EXPORT_MODEL, this);
+	}
+	
+	/**
+	 * Set the list of participants for this virtual component. 
+	 * This is pulled from the datamodel. 
+	 */
+	protected IFlattenParticipant[] setParticipants() {
+		Object o = dataModel.get(PARTICIPANT_LIST);
+		if( o != null ) {
+			if( o instanceof IFlattenParticipant )
+				return new IFlattenParticipant[] { (IFlattenParticipant)o};
+			if( o instanceof IFlattenParticipant[])
+				return (IFlattenParticipant[])o;
+			if( o instanceof List ) {
+				List<IFlattenParticipant> l = (List<IFlattenParticipant>)o;
+				return (IFlattenParticipant[]) l
+						.toArray(new IFlattenParticipant[l.size()]);
+			}
+		}
+		return new IFlattenParticipant[]{};
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.wst.common.componentcore.internal.flat.IFlatVirtualComponent#fetchResources()
+	 */
+	public IFlatResource[] fetchResources() throws CoreException {
+		if( members == null)
+			cacheResources();
+		return (FlatResource[]) members.toArray(new FlatResource[members.size()]);
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.wst.common.componentcore.internal.flat.IFlatVirtualComponent#getChildModules()
+	 */
+	public IChildModuleReference[] getChildModules() throws CoreException {
+		if( members == null )
+			cacheResources();
+		return (ChildModuleReference[]) children.toArray(new ChildModuleReference[children.size()]);
+	}
+	
+	
+	protected void cacheResources() throws CoreException {
+		runInitializations();
+		if( canOptimize()) {
+			optimize(members, children);
+		} else {
+			treeWalk();
+			runFinalizations(members);
+		}
+	}
+	
+	protected void runInitializations() {
+		members = new ArrayList<IFlatResource>();
+		children = new ArrayList<IChildModuleReference>();
+		for( int i = 0; i < participants.length; i++ ) {
+			participants[i].initialize(component, dataModel, members);
+		}
+	}
+	
+	protected boolean canOptimize() {
+		for( int i = 0; i < participants.length; i++ ) {
+			if( participants[i].canOptimize(component, dataModel))
+				return true;
+		}
+		return false;
+	}
+
+	protected void optimize(List<IFlatResource> resources, List<IChildModuleReference> children) {
+		for( int i = 0; i < participants.length; i++ ) {
+			if( participants[i].canOptimize(component, dataModel)) {
+				participants[i].optimize(component, dataModel, resources, children);
+				return;
+			}
+		}
+	}
+	
+	protected void runFinalizations(List<IFlatResource> resources) {
+		for( int i = 0; i < participants.length; i++ ) {
+			participants[i].finalize(component, dataModel, resources);
+		}
+	}
+	
+	protected void treeWalk() throws CoreException {
+		if (component != null) {
+			VirtualComponentFlattenUtility util = new VirtualComponentFlattenUtility(members, this);
+			IVirtualFolder vFolder = component.getRootFolder();
+			
+			// actually walk the tree
+			util.addMembers(component, vFolder, Path.EMPTY);
+
+			//addRelevantOutputFolders(); // to be done in a participant later
+
+			addConsumedReferences(util, component, new Path(""));
+			addUsedReferences(util, component, new Path(""));
+		}
+	}
+	
+	/**
+	 * Consumed references are, by definition, consumed, and should not
+	 * be eligible to be exposed as child modules. They are consumed 
+	 * directly into the module tree. 
+	 * 
+	 * The reference in question may have references of its own, both
+	 * used and consumed. References of the child will be treated
+	 * as references of the parent, whether consumed or used.  
+	 * 
+	 * A key difference in the handling of non-child USED references 
+	 * as compared to CONSUMES is that CONSUMED references have their
+	 * archiveName *ignored*, and its child members are directly consumed. 
+	 * In contrast, a USED non-child keeps its archiveName as the folder name. 
+	 *  
+	 * @param vc
+	 */
+	protected void addConsumedReferences(VirtualComponentFlattenUtility util, IVirtualComponent vc, IPath root) throws CoreException {
+		List consumableMembers = new ArrayList();
+		Map<String, Object> options = new HashMap<String, Object>();
+		options.put(IVirtualComponent.REQUESTED_REFERENCE_TYPE, IVirtualComponent.FLATTENABLE_REFERENCES);
+		IVirtualReference[] refComponents = vc.getReferences(options);
+    	for (int i = 0; i < refComponents.length; i++) {
+    		IVirtualReference reference = refComponents[i];
+    		if (reference != null && reference.getDependencyType()==IVirtualReference.DEPENDENCY_TYPE_CONSUMES) {
+				consumeComponent(util, root, reference);
+    		}
+    	}
+	}
+
+	protected void consumeComponent(VirtualComponentFlattenUtility util, IPath root, IVirtualReference reference) throws CoreException {
+		IVirtualComponent consumedComponent = reference.getReferencedComponent();
+		if (consumedComponent.getRootFolder()!=null) {
+			IVirtualFolder vFolder = consumedComponent.getRootFolder();
+			util.addMembers(consumedComponent, vFolder, root.append(reference.getRuntimePath().makeRelative()));
+			addConsumedReferences(util, consumedComponent, root.append(reference.getRuntimePath().makeRelative()));
+			addUsedReferences(util, consumedComponent, root.append(reference.getRuntimePath().makeRelative()));
+		}
+	}
+	
+	/**
+	 * This checks to see if any exportable file is actually a child module.
+	 * Children modules will be exposed via the getChildModules() method. 
+	 */
+	public boolean shouldAddComponentFile(IVirtualComponent current, IFlatFile file) {
+		for( int i = 0; i < participants.length; i++ ) {
+			if( participants[i].isChildModule(component, dataModel, file)) {
+				ChildModuleReference child = new ChildModuleReference(current.getProject(), file);
+				children.add(child); 
+				return false;
+			} else if( !participants[i].shouldAddExportableFile(component, current, dataModel, file))
+				return false;
+		}
+		return true;
+	}
+
+	protected void addUsedReferences(VirtualComponentFlattenUtility util, IVirtualComponent vc, IPath root) throws CoreException {
+		Map<String, Object> options = new HashMap<String, Object>();
+		options.put(IVirtualComponent.REQUESTED_REFERENCE_TYPE, IVirtualComponent.FLATTENABLE_REFERENCES);
+		IVirtualReference[] allReferences = vc.getReferences(options);
+    	for (int i = 0; i < allReferences.length; i++) {
+    		IVirtualReference reference = allReferences[i];
+			IVirtualComponent virtualComp = reference.getReferencedComponent();
+			if (reference.getDependencyType() == DependencyType.USES ) {
+				if( shouldIgnoreReference(reference))
+					continue;
+				
+				if( !isChildModule(reference)) {
+					addNonChildUsedReference(util, vc, reference, root.append(reference.getRuntimePath()));
+				} else {
+					ChildModuleReference cm = new ChildModuleReference(reference, root);
+					List<IChildModuleReference> duplicates = new ArrayList();
+					for( IChildModuleReference tmp : children ) {
+						if(tmp.getRelativeURI().equals(cm.getRelativeURI()))
+							duplicates.add(tmp);
+					}
+					children.removeAll(duplicates);
+					children.add(cm);
+				}
+			}	
+    	}
+    	addUsedReferencesFromParticipants(util, vc, root);    	
+	}
+	
+	/**
+	 * Add references provided by participants (e.g., components provided by a child to the receiving parent by 
+	 * mapping it to ../
+	 * @param util
+	 * @param vc
+	 * @param root
+	 * @throws CoreException
+	 */
+	
+	protected void addUsedReferencesFromParticipants(VirtualComponentFlattenUtility util, IVirtualComponent vc, IPath root) throws CoreException{		
+		List<IVirtualReference> references = null;
+		for( int i = 0; i < participants.length; i++ ) {
+			references = participants[i].getChildModules(vc, dataModel);
+			if (references == null || references.isEmpty()){
+				continue;
+			}
+			
+			for (IVirtualReference reference:references) {
+				IVirtualComponent virtualComp = reference.getReferencedComponent();
+				if (reference.getDependencyType() == DependencyType.USES ) {		
+					if( !isChildModule(reference)) {
+						addNonChildUsedReference(util, vc, reference, root.append(reference.getRuntimePath()));
+					} else {
+						ChildModuleReference cm = new ChildModuleReference(reference, root);
+						List<IChildModuleReference> duplicates = new ArrayList();
+						for( IChildModuleReference tmp : children ) {
+							if(tmp.getRelativeURI().equals(cm.getRelativeURI()))
+								duplicates.add(tmp);
+						}
+						children.removeAll(duplicates);
+						children.add(cm);
+					}
+				}	
+			}
+		}	
+	}
+
+	/**
+	 * Should we expose this used reference as a member file?
+	 * 
+	 * @param currentComponent the current component we're traversing
+	 * @return true if it's a member file, false if it's a child module
+	 */
+	protected boolean isChildModule(IVirtualReference referencedComponent) {
+		for( int i = 0; i < participants.length; i++ ) {
+			if( participants[i].isChildModule(component, referencedComponent, dataModel))
+				return true;
+		}
+		return false;
+	}
+
+	protected boolean shouldIgnoreReference(IVirtualReference referencedComponent) {
+		for( int i = 0; i < participants.length; i++ ) {
+			if( participants[i].shouldIgnoreReference(component, referencedComponent, dataModel))
+				return true;
+		}
+		return false;
+	}
+
+	protected void addNonChildUsedReference(VirtualComponentFlattenUtility util, IVirtualComponent parent, 
+			IVirtualReference reference, IPath runtimePath) throws CoreException {
+		if( reference.getReferencedComponent().isBinary()) {
+			handleNonChildUsedBinaryReference(util, parent, reference, runtimePath);
+		} else /* !virtualComp.isBinary() */ {
+			/*
+			 * used references to non-binary components that are NOT child modules.
+			 * These should be 'consumed' but maintain their name
+			 * As of now I don't believe there are any such instances of this.
+			 * I also believe in most cases, this probably is a child module that 
+			 * the parent just doesn't know about.
+			 * 
+			 * Example: Ear Project consumes ESB project, Ear project does not 
+			 * recognize ESB project as a child However, if the server adapter 
+			 * can use nested exploded deployments (folders instead of zips),
+			 * then this will still work. 
+			 * 
+			 * TODO Investigate / Discuss
+			 */
+			util.addMembers(reference.getReferencedComponent(), reference.getReferencedComponent().getRootFolder(), 
+					runtimePath.append(reference.getArchiveName()));
+		}
+	}
+	
+	protected void handleNonChildUsedBinaryReference(VirtualComponentFlattenUtility util, IVirtualComponent parent, 
+			IVirtualReference reference, IPath runtimePath) throws CoreException {
+		// Binary used references must be added as a single file unless they're child modules
+		final String archiveName2 = reference.getArchiveName();
+		final String archiveName = new Path(archiveName2).lastSegment();
+		final IVirtualComponent virtualComp = reference.getReferencedComponent();
+		FlatFile mf = null;
+		IFile ifile = (IFile)virtualComp.getAdapter(IFile.class);
+		if( ifile != null ) {
+			String name = null != archiveName ? archiveName : ifile.getName();
+			mf = new FlatFile(ifile, name, runtimePath.makeRelative());
+		} else {
+			File extFile = (File)virtualComp.getAdapter(File.class);
+			if( extFile != null ) {
+				String name = null != archiveName ? archiveName : extFile.getName();
+				mf = new FlatFile(extFile, name, runtimePath.makeRelative());
+			}
+		}
+		
+		if( mf != null ) {
+			IFlatResource moduleParent = VirtualComponentFlattenUtility.getExistingModuleResource(members, mf.getModuleRelativePath());
+			if (moduleParent != null && moduleParent instanceof IFlatFolder) {
+				IFlatResource[] mf_members = ((IFlatFolder)moduleParent).members();
+				for (int i = 0; i < mf_members.length; i++) {
+					if (mf_members[i].getName().equals(mf.getName()))
+						return;
+				}
+				VirtualComponentFlattenUtility.addMembersToModuleFolder((IFlatFolder)moduleParent, new FlatResource[]{mf});
+			} else {
+				if( shouldAddExportableFile(virtualComp, mf)) {
+					if (mf.getModuleRelativePath().isEmpty()) {
+						for( IFlatResource tmp : members) 
+							if( tmp.getName().equals(mf.getName()))
+								return;
+						members.add(mf);
+					} else {
+						if (moduleParent == null) {
+							moduleParent = VirtualComponentFlattenUtility.ensureParentExists(members, mf.getModuleRelativePath(), (IContainer)parent.getRootFolder().getUnderlyingResource());
+						}
+						VirtualComponentFlattenUtility.addMembersToModuleFolder((IFlatFolder)moduleParent, new FlatResource[] {mf});
+					}
+				} else {
+					// Automatically added to children if it needed to be
+				}
+			}
+		}
+	}
+
+	protected boolean shouldAddExportableFile(IVirtualComponent current, FlatFile file) {
+		for( int i = 0; i < participants.length; i++ ) {
+			if ( !participants[i].shouldAddExportableFile(component, current, dataModel, file))
+				return false;
+		}
+		return true;
+	}
+
+	public IVirtualComponent getComponent() {
+		return component;
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IChildModuleReference.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IChildModuleReference.java
new file mode 100644
index 0000000..963f0e5
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IChildModuleReference.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+
+/**
+ * A child module may be based on a file (if binary), 
+ * or on a reference / component if not. 
+ * 
+ * This interface is not intended to be implemented by clients
+ */
+public interface IChildModuleReference {
+	/**
+	 * Will return a file if this can be tracked to one
+	 * @return
+	 */
+	public File getFile();
+	
+	
+	/**
+	 * Return the reference if it exists
+	 * @return
+	 */
+	public IVirtualReference getReference();
+	
+	/**
+	 * Return the component if it exists
+	 * @return
+	 */
+	public IVirtualComponent getComponent();
+	
+	/**
+	 * If this is a single file, return true.
+	 * If a more complex component, return false
+	 * @return
+	 */
+	public boolean isBinary();
+	
+	/**
+	 * Get the relative URI to it's direct parent, 
+	 * including path + filename + extension
+	 * @return
+	 */
+	public IPath getRelativeURI();
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatFile.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatFile.java
new file mode 100644
index 0000000..6a649b7
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatFile.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+/**
+ * 
+ * This interface is not intended to be implemented by clients
+ *
+ */
+public interface IFlatFile extends IFlatResource {
+	/**
+	 * Returns a modification stamp. Whenever the modification
+	 * stamp changes, there may have been a change to the file.
+	 * 
+	 * @return the modification stamp
+	 */
+	public long getModificationStamp();
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatFolder.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatFolder.java
new file mode 100644
index 0000000..aedcf50
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatFolder.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+/**
+ * 
+ * This interface is not intended to be implemented by clients
+ *
+ */
+public interface IFlatFolder extends IFlatResource {
+	/**
+	 * Returns the members (contents) of this folder.
+	 * 
+	 * @return an array containing the module resources contained in this folder
+	 */
+	public IFlatResource[] members();
+	/**
+	 * Sets the members (contents) of this folder.
+	 * 
+	 * @param members the members
+	 */
+	public void setMembers(IFlatResource[] members);
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatResource.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatResource.java
new file mode 100644
index 0000000..fdb9197
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatResource.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+
+/**
+ * 
+ * This interface is not intended to be implemented by clients
+ *
+ */
+public interface IFlatResource extends IAdaptable {
+	/**
+	 * Returns the module relative path to this resource.
+	 * 
+	 * @return the module relative path to this resource
+	 */
+	public IPath getModuleRelativePath();
+
+	/**
+	 * Returns the name of this resource.
+	 * 
+	 * @return the name of this resource
+	 */
+	public String getName();
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatVirtualComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatVirtualComponent.java
new file mode 100644
index 0000000..81b9b85
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlatVirtualComponent.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import org.eclipse.core.runtime.CoreException;
+
+public interface IFlatVirtualComponent {
+	
+	/**
+	 * An options key listing the export participants.
+	 * The value must be a List<IExportUtilParticipant>, 
+	 *  or simply an IExportUtilParticipant
+	 */
+	public static String PARTICIPANT_LIST = "org.eclipse.wst.common.componentcore.export.participantList";
+	
+	/**
+	 * The ExportModel being used; the value of this should be the IFlatVirtualComponent itself. 
+	 */
+	public static String EXPORT_MODEL = "org.eclipse.wst.common.componentcore.export.exportModel";
+
+	/**
+	 * Fetch the list of resources, which include raw files or folders only
+	 * @return
+	 * @throws CoreException
+	 */
+	public IFlatResource[] fetchResources() throws CoreException;
+	
+	/**
+	 * Fetch a list of child module references.
+	 * @return
+	 * @throws CoreException
+	 */
+	public IChildModuleReference[] getChildModules() throws CoreException;
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java
new file mode 100644
index 0000000..7beb7b3
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java
@@ -0,0 +1,175 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import java.util.List;
+
+import org.eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.FlatComponentTaskModel;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+
+/**
+ * This class represents a participant in the process
+ * of traversing the virtual component and deciding which
+ * resources should be exposed by the model, and 
+ * in what fashion.
+ * 
+ * Clients should not implement this class directly, 
+ * but should rather extend AbstractExportParticipant. 
+ */
+public interface IFlattenParticipant {
+	
+	/**
+	 * Seed the list of resources with entries that must be present, 
+	 * specifically files that may be missed by optimizations.
+	 * 
+	 * @param component
+	 * @param dataModel
+	 * @param original
+	 * @return
+	 */
+	public void initialize(IVirtualComponent component, 
+			FlatComponentTaskModel dataModel, List<IFlatResource> resources);
+	
+	/**
+	 * Can this participant return optimized members that
+	 * preclude the need for running the full algorithm?
+	 * 
+	 * Caution is encouraged. If reference types you do not understand
+	 * are present and you mistakenly claim you canOptimize, you may
+	 * leave some references ignored and the archive incompletely assembled.
+	 * 
+	 * Example: if the component satisfies singleRoot requirements, this may return true
+	 * 
+	 * @param component
+	 * @param dataModel
+	 * @return
+	 */
+	public boolean canOptimize(IVirtualComponent component, 
+			FlatComponentTaskModel dataModel);
+	
+	/**
+	 * Return a full and complete list of members to be published.
+	 * The original entries should be included, unless left out intentionally.
+	 * 
+	 * Only the first participant to claim it can optimize will be allowed to do so.
+	 * This will be the final list returned by ExportUtil.
+	 * No finalization or other actions on this list will take place
+	 * 
+	 * @param component
+	 * @param dataModel
+	 * @param original
+	 * @return
+	 */
+	public void optimize(IVirtualComponent component, FlatComponentTaskModel dataModel, 
+			List<IFlatResource> resources, List<IChildModuleReference> children);
+	
+	/**
+	 * Returns true if this participant considers this file to be a child module
+	 * The framework will consider the file a child module if at least one participant
+	 * returns true to this method. 
+	 * 
+	 * The item in question is a flat file which has been found inside the project
+	 * or inside a consumed reference of the project. The framework is asking
+	 * all participants if this file is a child module, to be exposed as such later, 
+	 * or if it is just a generic resource, which should be exposed as a regular member file. 
+	 * 
+	 * @param rootComponent
+	 * @param dataModel
+	 * @param file
+	 * @return
+	 */
+	public boolean isChildModule(IVirtualComponent rootComponent,
+			FlatComponentTaskModel dataModel, IFlatFile file);
+	
+	
+	/**
+	 * Should the proposed file be included in the result set or not.
+	 * If any one participant says no, the file will not be included.
+	 * The default behaviour would be to return true unless you
+	 * have a compelling reason to block the file from inclusion
+	 * 
+	 * Example: If the file is being actively filtered (in a .svn folder) return false
+	 * Caution is encouraged here, as a consumed reference may actively 
+	 * be providing the files you may be trying to filter. It's advised to only
+	 * filter if you know what type currentComponent is and how it works.
+	 * 
+	 * @param rootComponent The root component that is being assembled
+	 * @param currentComponent The component currently being processed, either rootComponent or a consumed reference
+	 * @param dataModel
+	 * @param file
+	 * @return
+	 */
+	public boolean shouldAddExportableFile(IVirtualComponent rootComponent,
+			IVirtualComponent currentComponent, 
+			FlatComponentTaskModel dataModel, IFlatFile file);
+	
+	
+	/**
+	 * Returns true if this participant considers the reference a child module.
+	 * The framework will consider it a child module if at least one participant returns true. 
+	 * 
+	 * The framework is asking whether the referenced component is a child module, 
+	 * which should be added to the list of children modules and exposed as an  
+	 * IChildModuleReference, or if it is just some generic type of entity to be 
+	 * exposed as member resources inside the current flat component. 
+	 * 
+	 * The parameter "referenced" is guaranteed to be a "USED" reference,
+	 * as "CONSUMED" references have already been consumed directly into the project
+	 * as if they were part of it originally.  
+	 * 
+	 * A "USED" reference which is a child module will be exposed as an 
+	 * IChildModuleReference and use the archiveName retrieved from the IVirtualReference. 
+	 * 
+	 * A "USED" reference which is *not* a child module will be represented
+	 * as a folder member resource inside the parent, and the folder's name will
+	 * also be retrieved from the archiveName attribute of the IVirtualReference.
+	 * 
+	 * @param rootComponent
+	 * @param referenced 
+	 * @param dataModel
+	 * @return
+	 */
+	public boolean isChildModule(IVirtualComponent rootComponent, 
+			IVirtualReference referenced, FlatComponentTaskModel dataModel);
+	
+	/**
+	 * Should this reference be ignored, ie handled elsewhere
+	 * @param rootComponent
+	 * @param referenced
+	 * @param dataModel
+	 * @return
+	 */
+	public boolean shouldIgnoreReference(IVirtualComponent rootComponent,
+			IVirtualReference referenced, FlatComponentTaskModel dataModel);
+	/**
+	 * Finalize the list of resources by adding missed resources or 
+	 * removing files added by mistake. 
+	 * 
+	 * @param component
+	 * @param dataModel
+	 * @param original
+	 * @param resources
+	 * @return
+	 */
+	public void finalize(IVirtualComponent component, 
+			FlatComponentTaskModel dataModel, List<IFlatResource> resources);
+	
+	
+	/**
+	 * Return a list of references that this participant believes should be treated as child modules.
+	 * @param rootComponent
+	 * @param dataModel
+	 * @return
+	 */
+	public List<IVirtualReference> getChildModules(IVirtualComponent rootComponent, FlatComponentTaskModel dataModel);
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java
new file mode 100644
index 0000000..01aad61
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java
@@ -0,0 +1,253 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.flat;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualContainer;
+import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
+
+/**
+ * This utility class is almost entirely copied from ComponentDeployable
+ * and deals with the nuts and bolts of creating the model objects when
+ * walking a portion of the tree
+ */
+public class VirtualComponentFlattenUtility {
+	public static interface ShouldIncludeUtilityCallback {
+		public boolean shouldAddComponentFile(IVirtualComponent current, IFlatFile file);
+	}
+	
+	private List<IFlatResource> members;
+	private ShouldIncludeUtilityCallback handler;
+	public VirtualComponentFlattenUtility(
+			List<IFlatResource> members, ShouldIncludeUtilityCallback handler) {
+		this.members = members;
+		this.handler = handler;
+	}
+	
+	public void addMembers(IVirtualComponent current, IVirtualContainer cont, IPath path) throws CoreException {
+		ensureParentExists(members, path, null);
+		FlatResource[] mr = addMembersInternal(current, cont, path);
+		int size = mr.length;
+		for (int j = 0; j < size; j++) {
+			members.add(mr[j]);
+		}
+	}
+	
+	// Add this container's children
+	public void addContainer(IContainer container, IPath path) throws CoreException {
+		IResource[] children = container.members();
+		for( int i = 0; i < children.length; i++ ) {
+			if( children[i] instanceof IContainer ) {
+				addContainerInternal((IContainer)children[i], path);
+			} else if( children[i] instanceof IFile ){
+				addFile(null, (IFile)children[i], path);
+			}
+		}
+	}
+	
+	// Physically adds this container
+	protected void addContainerInternal(IContainer container, IPath path) throws CoreException {
+		IFlatFolder mf = (FlatFolder) getExistingModuleResource(members,path.append(container.getName()).makeRelative());
+		if( mf == null ) {
+			mf = new FlatFolder(container, container.getName(), path);
+			IFlatFolder parent = (FlatFolder) getExistingModuleResource(members, path);
+			if (path.isEmpty())
+				members.add(mf);
+			else {
+				if (parent == null)
+					parent = ensureParentExists(members, path, container);
+				addMembersToModuleFolder(parent, new IFlatResource[] {mf});
+			}
+		}
+		// recurse
+		addContainer(container, path.append(container.getName()));
+	}
+	
+	protected FlatResource[] addMembersInternal(IVirtualComponent current, IVirtualContainer cont, IPath path) throws CoreException {
+		IVirtualResource[] res = cont.members();
+		int size2 = res.length;
+		List list = new ArrayList(size2);
+		for (int j = 0; j < size2; j++) {
+			if (res[j] instanceof IVirtualContainer) {
+				IVirtualContainer cc = (IVirtualContainer) res[j];
+				IFlatFolder mf = addVirtualContainerInternal(cc, path);
+				IFlatResource[] mr = addMembersInternal(current, cc, path.append(cc.getName()));
+				addMembersToModuleFolder(mf, mr);
+			} else {
+				addFile(current, path, (IAdaptable)res[j]);
+			}
+		}
+		FlatResource[] mr = new FlatResource[list.size()];
+		list.toArray(mr);
+		return mr;
+	}
+	
+	public void addFile(IVirtualComponent current, IPath path, IAdaptable file) {
+		IFile f = (IFile)file.getAdapter(IFile.class);
+		IFlatFile mf = null;
+		if( f != null )
+			 mf = createModuleFile(f, path.makeRelative());
+		else {
+			File f2 = (File)file.getAdapter(File.class);
+			if( f2 != null )
+				mf = new FlatFile(f2, f2.getName(), path.makeRelative());
+		}
+		if( mf != null ) {
+			if (handler == null || handler.shouldAddComponentFile(current, mf)) {
+				if( mf.getModuleRelativePath().isEmpty()) {
+					members.remove(mf);
+					members.add(mf);
+				}
+				else {
+					IFlatFolder moduleParent = VirtualComponentFlattenUtility.ensureParentExists(members, mf.getModuleRelativePath(), null);
+					List tempParentMembers = new ArrayList(Arrays.asList(moduleParent.members()));
+					tempParentMembers.remove(mf);
+					tempParentMembers.add(mf);
+					moduleParent.setMembers((IFlatResource[]) tempParentMembers.toArray(new IFlatResource[tempParentMembers.size()]));
+				}
+			}
+		}
+	}
+	
+	public void addFile(IVirtualComponent current, IFile f, IPath path) {
+		addFile(current, path, (IAdaptable)f);
+	}
+	
+	protected IFlatFolder addVirtualContainerInternal(IVirtualContainer cc, IPath path) {
+		// Retrieve already existing module folder if applicable
+		IFlatFolder mf = (FlatFolder) getExistingModuleResource(members,path.append(cc.getName()).makeRelative());
+		if (mf == null) {
+			mf = new FlatFolder((IContainer)cc.getUnderlyingResource(), cc.getName(), path);
+			IFlatFolder parent = (FlatFolder) getExistingModuleResource(members, path);
+			if (path.isEmpty())
+				members.add(mf);
+			else {
+				if (parent == null)
+					parent = ensureParentExists(members, path, (IContainer)cc.getUnderlyingResource());
+				addMembersToModuleFolder(parent, new IFlatResource[] {mf});
+			}
+		}
+		return mf;
+	}
+	
+	public static FlatFile createModuleFile(final IFile file, final IPath path) {
+		return new FlatFile(file, file.getName(), path);
+	}
+
+	
+	/**
+	 * Check the current cache to see if we already have an existing module resource for
+	 * the given path.
+	 * @param aList
+	 * @param path
+	 * @return an existing moduleResource from the cached result
+	 */
+	 
+	public static FlatResource getExistingModuleResource(List aList, IPath path) { 
+    	// If the list is empty, return null
+    	if (aList==null || aList.isEmpty() || path == null)
+    		return null;
+    	// Otherwise recursively check to see if given resource matches current resource or if it is a child
+    	String[] pathSegments = path.segments(); 
+    	FlatResource exportableResource = null;
+    	
+    	if(pathSegments.length == 0)
+    		return null;
+    	for (Iterator iter = aList.iterator(); iter.hasNext();) {
+    		exportableResource = (FlatResource) iter.next();     	
+    		String[] moduleSegments = exportableResource.getModuleRelativePath().segments();
+    		// If the last segment in passed in path equals the module resource name 
+    		// and segment count is the same and the path segments start with the module path segments
+    		// then we have a match and we return the existing moduleResource
+    		if (pathSegments[pathSegments.length - 1].equals(exportableResource.getName()) && 
+		    		(moduleSegments.length + 1) == pathSegments.length && 
+		    		startsWith(moduleSegments, pathSegments))
+		    	return exportableResource; 
+    		
+    		// Otherwise, if it is a folder, check its children for the existing resource path
+    		// but only check if the beginning segments are a match
+	    	if(exportableResource instanceof FlatFolder && 
+	    			startsWith(moduleSegments, pathSegments) && pathSegments.length > moduleSegments.length &&
+	    			exportableResource.getName().equals(pathSegments[moduleSegments.length > 0 ? moduleSegments.length : 0]))	    	  
+    			if (((FlatFolder)exportableResource).members()!=null)
+    				return getExistingModuleResource(Arrays.asList(((FlatFolder)exportableResource).members()),path);
+    	}
+    	return null;
+    }
+	
+	/**
+	 * @return True if beginningSegments[i] == testSegments[i] for all 0<=i<beginningSegments[i] 
+	 */
+	private static boolean startsWith(String[] beginningSegments, String[] testSegments) { 
+		for(int i=0; i < beginningSegments.length; i++) {
+			if(!beginningSegments[i].equals(testSegments[i]))
+				return false;
+		}
+		return true;
+	}
+	
+	public static IFlatFolder ensureParentExists(List<IFlatResource> members, IPath path, IContainer cc) {
+		IFlatFolder parent = (IFlatFolder) getExistingModuleResource(members, path);
+		if (parent == null && path.segmentCount() > 0) {
+			String folderName = path.lastSegment();
+			IPath folderPath = Path.EMPTY;
+			if (path.segmentCount()>1)
+				folderPath = path.removeLastSegments(1);
+			parent = new FlatFolder(cc, folderName, folderPath);
+			if (path.segmentCount()>1)
+				addMembersToModuleFolder(ensureParentExists(members, path.removeLastSegments(1),cc), new IFlatResource[] {parent});
+			else
+				members.add(parent);
+		}
+		return parent;
+	}
+	
+	/**
+	 * Add the resources from mr to the existing resources in Module Folder mf
+	 * @param ModuleFolder mf
+	 * @param IModuleResource[] mr
+	 */
+	public static void addMembersToModuleFolder(IFlatFolder mf, IFlatResource[] mr) {
+		// If the folder is null or the resources to add are null or empty, bail and return
+		if (mf == null || mr == null || mr.length==0) 
+			return;
+		// Get the existing members in the module folder
+		IFlatResource[] mf_members = mf.members();
+		int mf_size = 0;
+		// Get the length of the existing members in the module folder
+		if (mf_members != null)
+			mf_size = mf_members.length;
+		// Create a new array to set on the module folder which will combine the existing and
+		// new module resources
+		IFlatResource[] res = new FlatResource[mf_size + mr.length];
+		// Copy the existing members into the array if there are any
+		if (mf_members != null && mf_size > 0)
+			System.arraycopy(mf_members, 0, res, 0, mf_size);
+		// Copy the new members into the array
+		System.arraycopy(mr, 0, res, mf_size, mr.length);
+		// Set the new members array on the module folder
+		mf.setMembers(res);
+	}
+	
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentCoreURIConverter.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentCoreURIConverter.java
index a2722b6..2739cad 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentCoreURIConverter.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentCoreURIConverter.java
@@ -26,6 +26,7 @@
 import org.eclipse.jem.util.emf.workbench.ResourceSetWorkbenchSynchronizer;
 import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
 import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
 import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
@@ -79,8 +80,8 @@
 		if(PlatformURLModuleConnection.MODULE.equals(aURI.scheme())) { 		
 			try {
 				normalizedURI = PlatformURLModuleConnection.resolve(aURI);
-			} catch(IOException ioe) {
-				ioe.printStackTrace();
+			} catch(IOException e) {
+				ModulecorePlugin.logError(e);
 			} 
 		} else {
 			normalizedURI = super.normalize(aURI);
@@ -109,7 +110,7 @@
 			return URI.createPlatformResourceURI(newFile.getWorkspaceRelativePath().toString());
 			 
 		} catch(Exception e) {
-			e.printStackTrace();
+			ModulecorePlugin.logError(e);
 		}
 		return null;
 	}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentResourceImpl.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentResourceImpl.java
index 9147466..e076bc4 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentResourceImpl.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentResourceImpl.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: ComponentResourceImpl.java,v 1.3 2006/01/11 18:40:31 cbridgha Exp $
+ * $Id: ComponentResourceImpl.java,v 1.5 2011/08/10 21:40:14 rsanchez Exp $
  */
 package org.eclipse.wst.common.componentcore.internal.impl;
 
@@ -23,6 +23,7 @@
 import org.eclipse.wst.common.componentcore.internal.ComponentResource;
 import org.eclipse.wst.common.componentcore.internal.ComponentcorePackage;
 import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
+import org.eclipse.wst.common.internal.emf.utilities.ExtendedEcoreUtil.ESynchronizedAdapterList;
 
 /**
  * <!-- begin-user-doc -->
@@ -36,6 +37,7 @@
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.impl.ComponentResourceImpl#getExclusions <em>Exclusions</em>}</li>
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.impl.ComponentResourceImpl#getComponent <em>Component</em>}</li>
  *   <li>{@link org.eclipse.wst.common.componentcore.internal.impl.ComponentResourceImpl#getResourceType <em>Resource Type</em>}</li>
+ *   <li>{@link org.eclipse.wst.common.componentcore.internal.impl.ComponentResourceImpl#getTag <em>Tag</em>}</li>
  * </ul>
  * </p>
  *
@@ -90,7 +92,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected EList exclusions = null;
+	protected EList exclusions;
 	
 	/**
 	 * The default value of the '{@link #getResourceType() <em>Resource Type</em>}' attribute.
@@ -112,6 +114,26 @@
 	 */
 	protected String resourceType = RESOURCE_TYPE_EDEFAULT;
 
+	/**
+	 * The default value of the '{@link #getTag() <em>Tag</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTag()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TAG_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTag() <em>Tag</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTag()
+	 * @generated
+	 * @ordered
+	 */
+	protected String tag = TAG_EDEFAULT;
+
 	protected IProject owningProject;
 	protected static final int VIRTUAL = 0;
 	protected static final int PERSISTED = 1;
@@ -247,6 +269,27 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public String getTag() {
+		return tag;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTag(String newTag) {
+		String oldTag = tag;
+		tag = newTag;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ComponentcorePackage.COMPONENT_RESOURCE__TAG, oldTag, tag));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
 		if (featureID >= 0) {
 			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
@@ -314,6 +357,8 @@
 				return getComponent();
 			case ComponentcorePackage.COMPONENT_RESOURCE__RESOURCE_TYPE:
 				return getResourceType();
+			case ComponentcorePackage.COMPONENT_RESOURCE__TAG:
+				return getTag();
 		}
 		return eDynamicGet(eFeature, resolve);
 	}
@@ -341,6 +386,9 @@
 			case ComponentcorePackage.COMPONENT_RESOURCE__RESOURCE_TYPE:
 				setResourceType((String)newValue);
 				return;
+			case ComponentcorePackage.COMPONENT_RESOURCE__TAG:
+				setTag((String)newValue);
+				return;
 		}
 		eDynamicSet(eFeature, newValue);
 	}
@@ -367,6 +415,9 @@
 			case ComponentcorePackage.COMPONENT_RESOURCE__RESOURCE_TYPE:
 				setResourceType(RESOURCE_TYPE_EDEFAULT);
 				return;
+			case ComponentcorePackage.COMPONENT_RESOURCE__TAG:
+				setTag(TAG_EDEFAULT);
+				return;
 		}
 		eDynamicUnset(eFeature);
 	}
@@ -388,6 +439,8 @@
 				return getComponent() != null;
 			case ComponentcorePackage.COMPONENT_RESOURCE__RESOURCE_TYPE:
 				return RESOURCE_TYPE_EDEFAULT == null ? resourceType != null : !RESOURCE_TYPE_EDEFAULT.equals(resourceType);
+			case ComponentcorePackage.COMPONENT_RESOURCE__TAG:
+				return TAG_EDEFAULT == null ? tag != null : !TAG_EDEFAULT.equals(tag);
 		}
 		return eDynamicIsSet(eFeature);
 	}
@@ -409,6 +462,8 @@
 		result.append(exclusions);
 		result.append(", resourceType: ");
 		result.append(resourceType);
+		result.append(", tag: ");
+		result.append(tag);
 		result.append(')');
 		return result.toString();
 	}
@@ -430,5 +485,15 @@
 		owningProject = aProject;
 	}
 	
+	@Override
+	public EList eAdapters()
+	  {
+	    if (eAdapters == null)
+	    {
+	      eAdapters =  new ESynchronizedAdapterList(this);
+	    }
+	    return eAdapters;
+	  }
+	
 
 } //ComponentResourceImpl
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcorePackageImpl.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcorePackageImpl.java
index 888ba54..cb71b6a 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcorePackageImpl.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ComponentcorePackageImpl.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: ComponentcorePackageImpl.java,v 1.9 2006/04/27 04:17:40 cbridgha Exp $
+ * $Id: ComponentcorePackageImpl.java,v 1.11 2011/08/10 21:40:14 rsanchez Exp $
  */
 package org.eclipse.wst.common.componentcore.internal.impl;
 
@@ -284,6 +284,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EAttribute getComponentResource_Tag() {
+		return (EAttribute)componentResourceEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getComponentType() {
 		return componentTypeEClass;
 	}
@@ -510,6 +519,7 @@
 		createEAttribute(componentResourceEClass, COMPONENT_RESOURCE__EXCLUSIONS);
 		createEReference(componentResourceEClass, COMPONENT_RESOURCE__COMPONENT);
 		createEAttribute(componentResourceEClass, COMPONENT_RESOURCE__RESOURCE_TYPE);
+		createEAttribute(componentResourceEClass, COMPONENT_RESOURCE__TAG);
 
 		componentTypeEClass = createEClass(COMPONENT_TYPE);
 		createEAttribute(componentTypeEClass, COMPONENT_TYPE__COMPONENT_TYPE_ID);
@@ -567,51 +577,52 @@
 		// Add supertypes to classes
 
 		// Initialize classes and features; add operations and parameters
-		initEClass(workbenchComponentEClass, WorkbenchComponent.class, "WorkbenchComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getWorkbenchComponent_Name(), ecorePackage.getEString(), "name", "", 1, 1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getWorkbenchComponent_Resources(), this.getComponentResource(), this.getComponentResource_Component(), "resources", null, 0, -1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getWorkbenchComponent_ComponentType(), this.getComponentType(), null, "componentType", null, 1, 1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getWorkbenchComponent_ReferencedComponents(), this.getReferencedComponent(), null, "referencedComponents", null, 0, -1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getWorkbenchComponent_Properties(), this.getProperty(), null, "properties", null, 0, -1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getWorkbenchComponent_MetadataResources(), this.getIPath(), "metadataResources", null, 0, -1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(workbenchComponentEClass, WorkbenchComponent.class, "WorkbenchComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getWorkbenchComponent_Name(), ecorePackage.getEString(), "name", "", 1, 1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getWorkbenchComponent_Resources(), this.getComponentResource(), this.getComponentResource_Component(), "resources", null, 0, -1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getWorkbenchComponent_ComponentType(), this.getComponentType(), null, "componentType", null, 1, 1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getWorkbenchComponent_ReferencedComponents(), this.getReferencedComponent(), null, "referencedComponents", null, 0, -1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getWorkbenchComponent_Properties(), this.getProperty(), null, "properties", null, 0, -1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getWorkbenchComponent_MetadataResources(), this.getIPath(), "metadataResources", null, 0, -1, WorkbenchComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
-		initEClass(componentResourceEClass, ComponentResource.class, "ComponentResource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getComponentResource_SourcePath(), this.getIPath(), "sourcePath", null, 1, 1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getComponentResource_RuntimePath(), this.getIPath(), "runtimePath", null, 1, 1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getComponentResource_Exclusions(), ecorePackage.getEString(), "exclusions", "", 0, -1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getComponentResource_Component(), this.getWorkbenchComponent(), this.getWorkbenchComponent_Resources(), "component", null, 1, 1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getComponentResource_ResourceType(), ecorePackage.getEString(), "resourceType", "", 1, 1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(componentResourceEClass, ComponentResource.class, "ComponentResource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getComponentResource_SourcePath(), this.getIPath(), "sourcePath", null, 1, 1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getComponentResource_RuntimePath(), this.getIPath(), "runtimePath", null, 1, 1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getComponentResource_Exclusions(), ecorePackage.getEString(), "exclusions", "", 0, -1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getComponentResource_Component(), this.getWorkbenchComponent(), this.getWorkbenchComponent_Resources(), "component", null, 1, 1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getComponentResource_ResourceType(), ecorePackage.getEString(), "resourceType", "", 1, 1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getComponentResource_Tag(), ecorePackage.getEString(), "tag", null, 0, 1, ComponentResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
-		initEClass(componentTypeEClass, ComponentType.class, "ComponentType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getComponentType_ComponentTypeId(), ecorePackage.getEString(), "componentTypeId", "", 1, 1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getComponentType_Version(), ecorePackage.getEString(), "version", "", 1, 1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getComponentType_Properties(), this.getProperty(), null, "properties", null, 0, -1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getComponentType_MetadataResources(), this.getIPath(), "metadataResources", null, 0, -1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(componentTypeEClass, ComponentType.class, "ComponentType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getComponentType_ComponentTypeId(), ecorePackage.getEString(), "componentTypeId", "", 1, 1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getComponentType_Version(), ecorePackage.getEString(), "version", "", 1, 1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getComponentType_Properties(), this.getProperty(), null, "properties", null, 0, -1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getComponentType_MetadataResources(), this.getIPath(), "metadataResources", null, 0, -1, ComponentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(propertyEClass, Property.class, "Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getProperty_Name(), ecorePackage.getEString(), "name", "", 1, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getProperty_Value(), ecorePackage.getEString(), "value", "", 1, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getProperty_Name(), ecorePackage.getEString(), "name", "", 1, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getProperty_Value(), ecorePackage.getEString(), "value", "", 1, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(referencedComponentEClass, ReferencedComponent.class, "ReferencedComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getReferencedComponent_Handle(), this.getURI(), "handle", null, 1, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getReferencedComponent_RuntimePath(), this.getIPath(), "runtimePath", null, 1, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getReferencedComponent_DependencyType(), this.getDependencyType(), "dependencyType", null, 1, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getReferencedComponent_DependentObject(), ecorePackage.getEObject(), null, "dependentObject", null, 0, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getReferencedComponent_ArchiveName(), ecorePackage.getEString(), "archiveName", null, 0, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getReferencedComponent_Handle(), this.getURI(), "handle", null, 1, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getReferencedComponent_RuntimePath(), this.getIPath(), "runtimePath", null, 1, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getReferencedComponent_DependencyType(), this.getDependencyType(), "dependencyType", null, 1, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getReferencedComponent_DependentObject(), ecorePackage.getEObject(), null, "dependentObject", null, 0, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getReferencedComponent_ArchiveName(), ecorePackage.getEString(), "archiveName", null, 0, 1, ReferencedComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
-		initEClass(projectComponentsEClass, ProjectComponents.class, "ProjectComponents", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getProjectComponents_ProjectName(), ecorePackage.getEString(), "projectName", "", 1, 1, ProjectComponents.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getProjectComponents_Components(), this.getWorkbenchComponent(), null, "components", null, 0, -1, ProjectComponents.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getProjectComponents_Version(), ecorePackage.getEString(), "version", null, 1, 1, ProjectComponents.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(projectComponentsEClass, ProjectComponents.class, "ProjectComponents", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getProjectComponents_ProjectName(), ecorePackage.getEString(), "projectName", "", 1, 1, ProjectComponents.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getProjectComponents_Components(), this.getWorkbenchComponent(), null, "components", null, 0, -1, ProjectComponents.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getProjectComponents_Version(), ecorePackage.getEString(), "version", null, 1, 1, ProjectComponents.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		// Initialize enums and add enum literals
-		initEEnum(dependencyTypeEEnum, DependencyType.class, "DependencyType");
+		initEEnum(dependencyTypeEEnum, DependencyType.class, "DependencyType"); //$NON-NLS-1$
 		addEEnumLiteral(dependencyTypeEEnum, DependencyType.USES_LITERAL);
 		addEEnumLiteral(dependencyTypeEEnum, DependencyType.CONSUMES_LITERAL);
 
 		// Initialize data types
-		initEDataType(iPathEDataType, IPath.class, "IPath", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
-		initEDataType(uriEDataType, org.eclipse.emf.common.util.URI.class, "URI", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+		initEDataType(iPathEDataType, IPath.class, "IPath", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEDataType(uriEDataType, org.eclipse.emf.common.util.URI.class, "URI", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 
 		// Create resource
 		createResource(eNS_URI);
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/IResourceFactoryExtPtConstants.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/IResourceFactoryExtPtConstants.java
index fda1a5c..c6e1e45 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/IResourceFactoryExtPtConstants.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/IResourceFactoryExtPtConstants.java
@@ -26,6 +26,8 @@
 	String ATT_CONTENTTYPEID = "contentTypeId"; //$NON-NLS-1$ 
 	
 	String ATT_ISDEFAULT = "isDefault"; //$NON-NLS-1$ 
+	
+	String ATT_OVERRIDES_FACTORY ="overridesFactoryClass"; //$NON-NLS-1$ 
 		
 
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ModuleURIUtil.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ModuleURIUtil.java
index 170c513..1076676 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ModuleURIUtil.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ModuleURIUtil.java
@@ -200,7 +200,7 @@
 		if (aComponent.isBinary())
 			return ModuleURIUtil.archiveComponentfullyQualifyURI(aComponent.getName()).toString();
 		else
-			return "[" + aComponent.getProject().getFullPath() + "]:" + aComponent.getProject().getName();
+			return "[" + aComponent.getProject().getFullPath() + "]:" + aComponent.getProject().getName(); //$NON-NLS-1$  //$NON-NLS-2$
 	}
 
 	public static String getContentTypeName(URI uri) {
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentXMIResourceFactory.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentXMIResourceFactory.java
index 2a157ad..55d2299 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentXMIResourceFactory.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentXMIResourceFactory.java
@@ -19,7 +19,6 @@
 
 	public ReferencedComponentXMIResourceFactory() {
 		super();
-		// TODO Auto-generated constructor stub
 	}
 	/**
 	 * This is the method that subclasses can override to actually instantiate a new Resource
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentXMIResourceImpl.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentXMIResourceImpl.java
index 333b4b0..ac46885 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentXMIResourceImpl.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/ReferencedComponentXMIResourceImpl.java
@@ -20,12 +20,10 @@
 
 	public ReferencedComponentXMIResourceImpl() {
 		super();
-		// TODO Auto-generated constructor stub
 	}
 
 	public ReferencedComponentXMIResourceImpl(URI uri) {
 		super(uri);
-		// TODO Auto-generated constructor stub
 	}
 	protected MappedXMIHelper doCreateXMLHelper() {
 		return new MappedComponentXMIHelper(this, getPrefixToPackageURIs());
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WTPResourceFactoryRegistry.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WTPResourceFactoryRegistry.java
index e0698b2..71fda2c 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WTPResourceFactoryRegistry.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WTPResourceFactoryRegistry.java
@@ -11,7 +11,11 @@
 package org.eclipse.wst.common.componentcore.internal.impl;
 
 import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Comparator;
 import java.util.Iterator;
+import java.util.Map;
 import java.util.Set;
 
 import org.eclipse.core.resources.IFile;
@@ -26,8 +30,10 @@
 import org.eclipse.core.runtime.SafeRunner;
 import org.eclipse.core.runtime.content.IContentDescription;
 import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.core.runtime.jobs.ILock;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.Resource.Factory;
 import org.eclipse.jem.util.RegistryReader;
 import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.UnresolveableURIException;
@@ -40,6 +46,7 @@
 import org.eclipse.wst.common.internal.emf.resource.ResourceFactoryDescriptor;
 import org.eclipse.wst.common.internal.emf.utilities.DefaultOverridableResourceFactoryRegistry;
 import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper;
+import org.eclipse.wst.common.internal.emfworkbench.edit.EMFWorkbenchEditContextFactory;
 
 /**
  * <p>
@@ -63,26 +70,44 @@
 		return WTPResourceFactoryRegistry.INSTANCE.getFactory(uri);	
 	}   
 
-	public synchronized Resource.Factory getFactory(URI uri, IContentDescription description) {
-		Resource.Factory resourceFactory = null;
-		if(uri != null && uri.lastSegment() != null) {
-			ResourceFactoryDescriptor descriptor = null;
-			if(null == description){
-				descriptor = getDescriptor(uri);
-			} else {
-				descriptor = getDescriptor(uri, description);
-			}
-			
-			if(descriptor != null) {
-				resourceFactory = getFactory(descriptor);	
-			}	
+	public Resource.Factory getFactory(URI uri, IContentDescription description) {
+		IProject componentProject = null;
+		try {
+			componentProject = StructureEdit.getContainingProject(uri);
+		} catch (UnresolveableURIException e) {
+			// don't do anything
 		}
-		if(resourceFactory == null)
-			resourceFactory = super.getFactory(uri);
-		return resourceFactory; 
+		ILock lock = EMFWorkbenchEditContextFactory.getProjectLockObject(componentProject);
+		try{
+			if(null != lock){
+				lock.acquire();
+			}
+			synchronized(this){
+				Resource.Factory resourceFactory = null;
+				if(uri != null && uri.lastSegment() != null) {
+					ResourceFactoryDescriptor descriptor = null;
+					if(null == description){
+						descriptor = getDescriptor(uri);
+					} else {
+						descriptor = getDescriptor(uri, description);
+					}
+					
+					if(descriptor != null) {
+						resourceFactory = getFactory(descriptor);	
+					}	
+				}
+				if(resourceFactory == null)
+					resourceFactory = super.getFactory(uri);
+				return resourceFactory;
+			}
+		} finally{
+			if(null != lock){
+				lock.release();
+			}
+		} 
 	}
 	
-	public synchronized Resource.Factory getFactory(URI uri) {
+	public Resource.Factory getFactory(URI uri) {
 		return getFactory(uri, (IContentDescription)null);
 	}	
 
@@ -115,6 +140,11 @@
 		key.shortName = descriptor.getShortSegment();
 		key.type = descriptor.getContentType();
 		key.isDefault = descriptor.isDefault();
+		if(descriptor instanceof ConfigurationResourceFactoryDescriptor){
+			ConfigurationResourceFactoryDescriptor configurationDescriptor = (ConfigurationResourceFactoryDescriptor)descriptor;
+			key.factoryClassName = configurationDescriptor.getFactoryClassName();
+			key.overridesFactoryClassName = configurationDescriptor.getOverridesFactoryClassName();
+		}
 		return key;
 	}
 	
@@ -126,6 +156,8 @@
 		private String shortSegment;
 		private IContentType contentType;
 		private boolean isDefault = true;
+		private String factoryClassName = null;
+		private String overridesFactoryClassName = null;
 		private final IConfigurationElement element; 
 		
 		public ConfigurationResourceFactoryDescriptor(IConfigurationElement ext) throws CoreException {
@@ -134,16 +166,16 @@
 			init();
 		} 
 		
+		public String getOverridesFactoryClassName() {
+			return overridesFactoryClassName;
+		}
+
+		public String getFactoryClassName() {
+			return factoryClassName;
+		}
+
 		private void init() throws CoreException {
 			shortSegment = element.getAttribute(ATT_SHORT_SEGMENT);
-			if(shortSegment == null || shortSegment.trim().length() == 0)
-				throw new CoreException(
-							ModulecorePlugin.createErrorStatus(0, 
-										"The shortSegment attribute of " + TAG_RESOURCE_FACTORY + //$NON-NLS-1$ 
-										" must specify a valid, non-null, non-empty value in " +   //$NON-NLS-1$
-										element.getNamespaceIdentifier(), null));
-			if ("false".equals(element.getAttribute(ATT_ISDEFAULT)))
-					isDefault = false;
 			
 			IConfigurationElement[] bindings = element.getChildren(TAG_CONTENTTYPE);
 			if (bindings.length > 0) {
@@ -151,14 +183,35 @@
 				contentTypeId = bindings[0].getAttribute(ATT_CONTENTTYPEID);			
 				if (contentTypeId != null)
 					contentType = Platform.getContentTypeManager().getContentType(contentTypeId);
-				}
+			}
+			
+			if ((shortSegment == null || shortSegment.trim().length() == 0)
+						&& contentType == null) {
+				throw new CoreException(
+							ModulecorePlugin.createErrorStatus(0, 
+										"Either the shortSegment attribute or the contentType element of " //$NON-NLS-1$
+										+ TAG_RESOURCE_FACTORY 
+										+ " must be specified in " 
+										+ element.getNamespaceIdentifier()
+										+ ".  The shortSegment attribute is specified with a valid, non-null, " //$NON-NLS-1$
+										+ "non-empty value, and the contentType element is specified with a " //$NON-NLS-1$
+										+ "valid, non-null, non-empty contentTypeId." //$NON-NLS-1$
+										, null));
+			}
+			
+			if ("false".equals(element.getAttribute(ATT_ISDEFAULT)))
+				isDefault = false;
+				
+            factoryClassName = element.getAttribute(ATT_CLASS);
+			overridesFactoryClassName = element.getAttribute(ATT_OVERRIDES_FACTORY);				
 		} 
 
 		public boolean isEnabledFor(URI fileURI) {
-			/* shortSegment must be non-null for the descriptor to be created, 
-			 * a validation check in init() verifies this requirement */
-			if(fileURI != null && fileURI.lastSegment() != null)
+			// Not sure where this is actually used, so not sure what the proper 
+			// implementation should be, so simply checking the short segment for now
+			if (fileURI != null && fileURI.lastSegment() != null && shortSegment != null) {
 				return shortSegment.equals(fileURI.lastSegment());
+			}
 			return false;
 		} 
 		
@@ -186,34 +239,43 @@
 		}
 
 		public IContentType getContentType() {
-			
 			return contentType;
 		}
 
 		public boolean isDefault() {
 			return isDefault;
-		}  
+		}
+		
 		public int hashCode() {
-			if (getContentType() != null)
-				return getShortSegment().hashCode() & getContentType().hashCode();
-			else return super.hashCode();
+			int hashCode = 0;
+			if (getContentType() != null) {
+				hashCode |= getContentType().hashCode();
+			}
+			if (getShortSegment() != null) {
+				hashCode |= getShortSegment().hashCode();
+			}
+			return hashCode;
 		}
 		
 		public boolean equals(Object o) {
-			if(o instanceof ResourceFactoryDescriptor && getContentType() != null)
-				return (getShortSegment().equals(((ResourceFactoryDescriptor)o).getShortSegment()) &&
-						getContentType().equals(((ResourceFactoryDescriptor)o).getContentType()));
-			else if (((ResourceFactoryDescriptor)o).getContentType() != null) return false;
-				
-			return super.equals(o);
+			if (! (o instanceof ResourceFactoryDescriptor)) {
+				return false;
+			}
+			ResourceFactoryDescriptor rfdo = (ResourceFactoryDescriptor) o;
+			boolean equals = true;
+			equals &= (getContentType() == null) ? rfdo.getContentType() == null :
+				getContentType().equals(rfdo.getContentType());
+			equals &= (getShortSegment() == null) ? rfdo.getShortSegment() == null :
+				getShortSegment().equals(rfdo.getShortSegment());
+			return equals;
 		}
-	}  
+	}
 	 
 	
 	private class ResourceFactoryRegistryReader extends RegistryReader implements IResourceFactoryExtPtConstants { 
  		
 		public ResourceFactoryRegistryReader() {
-			super(Platform.getPluginRegistry(), ModulecorePlugin.PLUGIN_ID, EXTPT_RESOURCE_FACTORIES);
+			super(ModulecorePlugin.PLUGIN_ID, EXTPT_RESOURCE_FACTORIES);
 		}
 
 		public boolean readElement(final IConfigurationElement element) {
@@ -239,6 +301,8 @@
 	}
 	private class WTPResourceFactoryRegistryKey { 
  		
+		public String overridesFactoryClassName;
+		public String factoryClassName;
 		public String shortName;
 		public IContentType type;
 		public boolean isDefault = true;
@@ -246,44 +310,116 @@
 			super();
 		}
 		
-		
+		/**
+		 * Sort in the following manner:
+		 * First, sort by shortName, if shortName is null, then it comes last
+		 * If shortNames are equal, then sort by isDefault
+		 * If isDefault is also equal, then the one defining a factoryClassName wins
+		 * If both have factoryClassNames, then check to see if one overrides the other via overridesFactoryClassName
+		 * If neither override the other factory class, then sort by factoryClassname
+		 * @param other
+		 * @return
+		 */
+		public int compareTo(WTPResourceFactoryRegistryKey other){
+			if(this == other){
+				return 0;
+			}
+			if(shortName == null && other.shortName == null){
+				return 0;
+			} else if(shortName == null){
+				return 1;
+			} else if(other.shortName == null){
+				return -1;
+			}
+			
+			int shortNameCompare = this.shortName.compareTo(other.shortName);
+			if(shortNameCompare != 0){
+				return shortNameCompare;
+			} else {
+				if(this.isDefault != other.isDefault){
+					if(this.isDefault){
+						return -1;
+					} else {
+						return 1;
+					}
+				} else {
+					if(this.factoryClassName == null && other.factoryClassName == null){
+						return 0;
+					} else if(other.factoryClassName == null){
+						return -1;
+					} else if (this.factoryClassName == null){
+						return 1;
+					} else if(other.factoryClassName.equals(this.overridesFactoryClassName)){
+						return -1;
+					} else if(this.factoryClassName.equals(other.overridesFactoryClassName)){
+						return 1;
+					} else {
+						return this.factoryClassName.compareTo(other.factoryClassName);
+					}	
+				}
+			}
+		}
 	}
 
 	protected void addDescriptor(ResourceFactoryDescriptor descriptor) {
 		getDescriptors().put(getKey(descriptor), descriptor);
 	}
+	
+	private WTPResourceFactoryRegistryKey []  sortedDescriptors = null;
+	
+	private WTPResourceFactoryRegistryKey []  getSortedDescriptorKeys() {
+		if(sortedDescriptors == null || sortedDescriptors.length != getDescriptors().size()){
+			Set keys = getDescriptors().keySet();
+			WTPResourceFactoryRegistryKey [] array = new WTPResourceFactoryRegistryKey [keys.size()];
+			int count = 0;
+			for (Iterator iterator = keys.iterator(); iterator.hasNext();count++) {
+				WTPResourceFactoryRegistryKey key = (WTPResourceFactoryRegistryKey) iterator.next();
+				array[count] = key;
+			}
+			Arrays.sort(array, new Comparator<WTPResourceFactoryRegistryKey>() {
+				public int compare(WTPResourceFactoryRegistryKey key1,
+						WTPResourceFactoryRegistryKey key2) {
+					return key1.compareTo(key2);
+				}
+			});
+			sortedDescriptors = array;
+		}
+		return sortedDescriptors;
+	}
 
 	protected synchronized ResourceFactoryDescriptor getDescriptor(URI uri, IContentDescription description) {
-		Set keys = getDescriptors().keySet();
-		ResourceFactoryDescriptor defaultDesc = null;
-		for (Iterator iterator = keys.iterator(); iterator.hasNext();) {
-			WTPResourceFactoryRegistryKey key = (WTPResourceFactoryRegistryKey) iterator.next();
-			if (key.shortName.equals(uri.lastSegment())) {
-				ResourceFactoryDescriptor desc = (ResourceFactoryDescriptor)getDescriptors().get(key);
-				if (description == null) {
-					if (key.type == null) 
-						return desc;
-					else if (desc.isDefault()) 
-						return desc;
+		WTPResourceFactoryRegistryKey [] keys = getSortedDescriptorKeys();
+		ResourceFactoryDescriptor defaultDescriptor = null;
+		
+		// first check content type
+		if (description != null) {
+			for (WTPResourceFactoryRegistryKey key : keys) {
+				ResourceFactoryDescriptor descriptor = (ResourceFactoryDescriptor) getDescriptors().get(key);
+				
+				if ((key.type != null) && (description.getContentType().equals(key.type))) {
+					if ((defaultDescriptor == null) || (key.isDefault)) {
+						defaultDescriptor = descriptor;
+					}
 				}
-				//Allow the contentType discrimination to take place
-				if ((key.type != null) && 
-						(description != null) && 
-						(description.getContentType().equals(key.type))) {
-					// If the current describer is "default" then specify
-					if(desc.isDefault())
-						return desc;
-					else 	
-						defaultDesc = desc;
-				}
-					
-				if ((description != null) && (desc.isDefault()) && (defaultDesc == null))
-					defaultDesc = desc;
 			}
 		}
-		return defaultDesc;
+		
+		// then check short name, overriding default if necessary
+		for (WTPResourceFactoryRegistryKey key : keys) {
+			ResourceFactoryDescriptor descriptor = (ResourceFactoryDescriptor) getDescriptors().get(key);
+						
+			if ((key.shortName != null) && (uri.lastSegment().equals(key.shortName))) {
+				if ((defaultDescriptor == null) 
+						|| ((description == null) && (key.isDefault))) {
+					defaultDescriptor = descriptor;
+				}
+			}
+		}
+		
+		return defaultDescriptor;
 	}
-private URI newPlatformURI(URI aNewURI, IProject project) {
+	
+	private URI newPlatformURI(URI aNewURI, IProject project) {
 		
 		if (project == null)
 			return ModuleURIUtil.trimToDeployPathSegment(aNewURI);
@@ -299,7 +435,7 @@
 			return URI.createPlatformResourceURI(newFile.getWorkspaceRelativePath().toString());
 			 
 		} catch(Exception e) {
-			e.printStackTrace();
+			ModulecorePlugin.logError(e);
 		}
 		return null;
 	}
@@ -320,8 +456,7 @@
 			try {
 				description = file.getContentDescription();
 			} catch (CoreException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
+				ModulecorePlugin.logError(e);
 			}
 		}
 		if (description == null) {//Check for optional embedded uri segment, then normalize
@@ -332,15 +467,13 @@
 					try {
 						componentProject = StructureEdit.getContainingProject(uri);
 					} catch (UnresolveableURIException e) {
-						// TODO Auto-generated catch block
-						e.printStackTrace();
+						ModulecorePlugin.logError(e);
 					}
 					uri = PlatformURLModuleConnection.resolve(uri);
 					uri = newPlatformURI(uri,componentProject);
 				} 
 			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
+				ModulecorePlugin.logError(e);
 			}
 		}
 		
@@ -353,4 +486,30 @@
 			return super.getDescriptor(uri);
 		}
 	}
+
+	public Factory getFactory(URI uri, String contentType) {
+		IContentType type = Platform.getContentTypeManager().getContentType(contentType);
+		if (type != null)
+			return getFactory(uri, type.getDefaultDescription());
+		return super.getFactory(uri, contentType);
+	}
+	
+	
+	/**
+	 *  Returns true if the uri is found in the WTPResourceFactoryRegistry descriptor.
+	 *  This will not load any extension points
+	 */
+	public synchronized boolean shortNameRegistered(URI uri) {
+		Map m = getDescriptors();
+		Collection c = m.values();
+		Iterator iter = c.iterator();
+		String uriLastSegment = uri.lastSegment();
+		while(iter.hasNext()) {
+			ResourceFactoryDescriptor descriptor = (ResourceFactoryDescriptor) iter.next();
+			if(descriptor.getShortSegment() != null && descriptor.getShortSegment().equals(uriLastSegment)) {
+				return true;
+			}
+		}
+		return false;
+	}
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WorkbenchComponentImpl.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WorkbenchComponentImpl.java
index 883ebb9..5e65bab 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WorkbenchComponentImpl.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/impl/WorkbenchComponentImpl.java
@@ -1,9 +1,13 @@
-/**
- * <copyright>
- * </copyright>
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
  *
- * $Id: WorkbenchComponentImpl.java,v 1.14 2007/02/14 16:00:52 jsholl Exp $
- */
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
 package org.eclipse.wst.common.componentcore.internal.impl;
 
 import java.util.Collection;
@@ -60,7 +64,12 @@
 	public static class ESynchronizedAdapterList extends EAdapterList
 	  {
 	
-	    public ESynchronizedAdapterList(Notifier notifier) {
+	    @Override
+		public Object[] data() {
+			synchronized (this){return super.data();}
+		}
+
+		public ESynchronizedAdapterList(Notifier notifier) {
 			super(notifier);
 		}
 	
@@ -217,6 +226,17 @@
 		}	
 		return null;
 	}
+	
+	private IPath getFirstTaggedRootSource(){
+		List res = getResources();
+		for (Iterator iter = res.iterator(); iter.hasNext();) {
+			ComponentResource element = (ComponentResource) iter.next();
+			if (element.getRuntimePath().equals(new Path("/")) &&  DEFAULT_ROOT_SOURCE_TAG.equals(element.getTag()))
+				return element.getSourcePath();
+		}	
+		return null;		
+	}
+
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
@@ -552,12 +572,24 @@
 	public void eNotify(Notification notification) {
 		synchronized (eAdapters()) {
 			super.eNotify(notification);
+			switch(notification.getEventType()) {
+				case Notification.REMOVE:
+				case Notification.REMOVE_MANY:
+					defaultSourceRoot = null;
+					handle = null;
+					break;
+				}
 		}
 	}
 	
 	public IPath getDefaultSourceRoot() {
-		if (defaultSourceRoot == null)
-			defaultSourceRoot = getFirstRootSource();
+		if (defaultSourceRoot == null){
+			defaultSourceRoot = getFirstTaggedRootSource();
+			if (defaultSourceRoot == null)
+			{
+				defaultSourceRoot = getFirstRootSource();
+			}
+		}
 		return defaultSourceRoot;
 	}
 	
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/AddReferenceDataModelProvider.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/AddReferenceDataModelProvider.java
new file mode 100644
index 0000000..083cea6
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/AddReferenceDataModelProvider.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.operation;
+
+import java.util.Set;
+
+import org.eclipse.wst.common.componentcore.datamodel.properties.IAddReferenceDataModelProperties;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
+
+/**
+ * This class is meant to be an alternative to CreateReferenceComponentsDataModelProvider
+ * which requires less options and allows for a pre-made IVirtualReference to be stored.
+ */
+public class AddReferenceDataModelProvider extends AbstractDataModelProvider implements IAddReferenceDataModelProperties {
+
+	public AddReferenceDataModelProvider() {
+		super();
+	}
+
+	public Set getPropertyNames() {
+		Set propertyNames = super.getPropertyNames();
+		propertyNames.add(SOURCE_COMPONENT);
+		propertyNames.add(TARGET_REFERENCE_LIST);
+		propertyNames.add(SYNC_PRIMARY_RUNTIME);
+		return propertyNames;
+	}
+
+	public IDataModelOperation getDefaultOperation() {
+		return new AddReferencesOp(model);
+	}
+
+	public Object getDefaultProperty(String propertyName) {
+		Object retVal = super.getDefaultProperty(propertyName);
+		if (SYNC_PRIMARY_RUNTIME.equals(propertyName)){
+			retVal = Boolean.TRUE;
+		}
+		return retVal;
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/AddReferencesOp.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/AddReferencesOp.java
new file mode 100644
index 0000000..a9f9ddf
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/AddReferencesOp.java
@@ -0,0 +1,181 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.operation;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
+import org.eclipse.wst.common.componentcore.datamodel.properties.IAddReferenceDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
+import org.eclipse.wst.common.componentcore.internal.StructureEdit;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.core.util.UIContextDetermination;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.internal.emfworkbench.validateedit.IValidateEditContext;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
+
+public class AddReferencesOp extends AbstractDataModelOperation {
+
+
+	public AddReferencesOp(IDataModel model) {
+		super(model);
+	}
+
+	public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+		if (!validateEdit().isOK())
+			return Status.CANCEL_STATUS;
+		addReferencedComponents(monitor);
+		addProjectReferences(monitor);
+		return OK_STATUS;
+	}
+	
+	/**
+	 * Validate edit for resource state
+	 */
+	protected IStatus validateEdit() {
+		IStatus status = OK_STATUS;
+		IValidateEditContext validator = (IValidateEditContext) UIContextDetermination.createInstance(IValidateEditContext.CLASS_KEY);
+		IVirtualComponent sourceComp = (IVirtualComponent) model.getProperty(IAddReferenceDataModelProperties.SOURCE_COMPONENT);
+		IProject project = sourceComp.getProject();
+
+		if (status.isOK()) {
+			StructureEdit sEdit = null;
+			try {
+				sEdit = StructureEdit.getStructureEditForWrite(project);
+				status = validator.validateState(sEdit.getModuleStructuralModel());
+			} finally {
+				if (sEdit !=null)
+					sEdit.dispose();
+			}
+		}
+		
+		IFile [] files = new IFile[1];
+		files[0] = project.getFile(ProjectUtilities.DOT_PROJECT);
+		status = ResourcesPlugin.getWorkspace().validateEdit(files, null);
+		return status;
+	}
+	
+	public static List<IVirtualReference> getListFromModel(IDataModel model) {
+		Object value = model.getProperty(IAddReferenceDataModelProperties.TARGET_REFERENCE_LIST);
+		List<IVirtualReference> modList = value instanceof List ?  (List<IVirtualReference>)value : Arrays.asList(new IVirtualReference[]{(IVirtualReference)value});
+		return modList;
+	}
+	
+	protected void addProjectReferences() {
+		addProjectReferences(null);
+	}
+
+	protected void addProjectReferences(IProgressMonitor monitor) {
+		IVirtualComponent sourceComp = (IVirtualComponent) model.getProperty(IAddReferenceDataModelProperties.SOURCE_COMPONENT);
+		List modList = getListFromModel(model);
+		List targetprojectList = new ArrayList();
+		for (int i = 0; i < modList.size(); i++) {
+			IVirtualComponent virtualComponent = ((IVirtualReference) modList.get(i)).getReferencedComponent();
+			if(virtualComponent.isBinary()){
+				continue;
+			}
+			IProject targetProject = virtualComponent.getProject();
+			targetprojectList.add(targetProject);
+		}
+		try {
+			ProjectUtilities.addReferenceProjects(sourceComp.getProject(), targetprojectList);
+
+			if (model.getBooleanProperty(IAddReferenceDataModelProperties.SYNC_PRIMARY_RUNTIME))
+			{
+				// set the primary runtime for the child modules to be the parent module's primary runtime, if necessary
+	            IFacetedProject sourceProject = ProjectFacetsManager.create( sourceComp.getProject() );
+	            IRuntime sourceRuntime = sourceProject.getPrimaryRuntime();
+	            for (Iterator tplItr = targetprojectList.iterator(); tplItr.hasNext();)
+	            {
+		            IFacetedProject moduleFacetedProject = ProjectFacetsManager.create( ((IProject)tplItr.next()) );
+		
+		            if( moduleFacetedProject != null && ! equals( sourceRuntime, moduleFacetedProject.getPrimaryRuntime() ) )
+		            {
+		            	boolean supports = true;
+		
+		            	if( sourceRuntime != null )
+		            	{
+		            		for( Iterator itr = moduleFacetedProject.getProjectFacets().iterator(); itr.hasNext(); )
+		            		{
+		            			IProjectFacetVersion fver = (IProjectFacetVersion) itr.next();
+		            			if( ! sourceRuntime.supports( fver ) )
+		            			{
+		            				supports = false;
+		            				break;
+		            			}
+		            		}
+		            	}
+			            if( supports )
+			            {
+			                moduleFacetedProject.setRuntime( sourceRuntime, submon( monitor, 1 ) );
+			            }
+			        }
+	            }
+            }
+		} catch (CoreException e) {
+			ModulecorePlugin.logError(e);
+		}
+
+	}
+
+	protected void addReferencedComponents(IProgressMonitor monitor) {
+		IVirtualComponent sourceComp = (IVirtualComponent) model.getProperty(IAddReferenceDataModelProperties.SOURCE_COMPONENT);
+		List<IVirtualReference> refList = getListFromModel(model);
+		IVirtualReference[] refs = (IVirtualReference[]) refList.toArray(new IVirtualReference[refList.size()]);
+		sourceComp.addReferences(refs);
+	}
+
+	public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+		return null;
+	}
+
+	public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+		return null;
+	}
+
+	private static IProgressMonitor submon(final IProgressMonitor parent, final int ticks) {
+		return (parent == null ? null : new SubProgressMonitor(parent, ticks));
+	}
+
+	private static boolean equals( final Object obj1, final Object obj2 )
+	{
+		if( obj1 == obj2 )
+		{
+			return true;
+		}
+		else if( obj1 == null || obj2 == null )
+		{
+			return false;
+		}
+		else
+		{
+			return obj1.equals( obj2 );
+		}
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ArtifactEditProviderOperation.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ArtifactEditProviderOperation.java
index b956516..b0a46d3 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ArtifactEditProviderOperation.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ArtifactEditProviderOperation.java
@@ -40,7 +40,6 @@
 
 	public ArtifactEditProviderOperation() {
 		super();
-		// TODO Auto-generated constructor stub
 	}
 
 	public ArtifactEditProviderOperation(IDataModel model) {
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/CreateReferenceComponentsDataModelProvider.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/CreateReferenceComponentsDataModelProvider.java
index ff09903..3967a2a 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/CreateReferenceComponentsDataModelProvider.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/CreateReferenceComponentsDataModelProvider.java
@@ -30,6 +30,7 @@
 		propertyNames.add(SOURCE_COMPONENT);
 		propertyNames.add(TARGET_COMPONENT_LIST);
 		propertyNames.add(TARGET_COMPONENTS_DEPLOY_PATH);
+		propertyNames.add(TARGET_COMPONENTS_DEPLOY_PATH_MAP);
 		propertyNames.add(TARGET_COMPONENTS_TO_URI_MAP);
 		return propertyNames;
 	}
@@ -44,6 +45,11 @@
 			setProperty(propertyName, map);
 			return map;
 		}
+		else if (TARGET_COMPONENTS_DEPLOY_PATH_MAP.equals(propertyName)) {
+			Map map = new HashMap();
+			setProperty(propertyName, map);
+			return map;
+		}
 		
 		if (propertyName.equals(TARGET_COMPONENT_LIST))
 			return new ArrayList();
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/CreateReferenceComponentsOp.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/CreateReferenceComponentsOp.java
index 6b159fd..9fcc768 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/CreateReferenceComponentsOp.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/CreateReferenceComponentsOp.java
@@ -29,6 +29,7 @@
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
 import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
 import org.eclipse.wst.common.componentcore.internal.StructureEdit;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
@@ -83,14 +84,17 @@
 		List modList = (List) model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
 		List targetprojectList = new ArrayList();
 		for (int i = 0; i < modList.size(); i++) {
-			IVirtualComponent IVirtualComponent = (IVirtualComponent) modList.get(i);
-			IProject targetProject = IVirtualComponent.getProject();
+			IVirtualComponent virtualComponent = (IVirtualComponent) modList.get(i);
+			if(virtualComponent.isBinary()){
+				continue;
+			}
+			IProject targetProject = virtualComponent.getProject();
 			targetprojectList.add(targetProject);
 		}
 		try {
 			ProjectUtilities.addReferenceProjects(sourceComp.getProject(), targetprojectList);
 		} catch (CoreException e) {
-			e.printStackTrace();
+			ModulecorePlugin.logError(e);
 		}
 
 	}
@@ -99,17 +103,30 @@
 		IVirtualComponent sourceComp = (IVirtualComponent) model.getProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT);
 		List vlist = new ArrayList();
 		List modList = (List) model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
+		Map modDeployPathMap = (Map) model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH_MAP);
 		String deployPathStr = model.getStringProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH);
 		IPath deployPath = null;
+		IPath archiveDeployPath = null;
 		if (deployPathStr != null && deployPathStr.length() > 0){
 			deployPath = new Path(deployPathStr);
 		}
+		else if (deployPathStr.length() == 0) deployPath = new Path("/"); //$NON-NLS-1$);
+	
 		for (int i = 0; i < modList.size(); i++) {
 			IVirtualComponent comp = (IVirtualComponent) modList.get(i);
 			if (!srcComponentContainsReference(sourceComp, comp, deployPath)) {
 				IVirtualReference ref = ComponentCore.createReference(sourceComp, comp);
-				if(deployPath != null){
-					ref.setRuntimePath(new Path(deployPathStr));
+				deployPathStr = (String)modDeployPathMap.get(comp);
+				if (deployPathStr != null)
+				{
+					archiveDeployPath = new Path(deployPathStr);
+				}
+				else
+				{
+					archiveDeployPath = deployPath;
+				}
+				if(archiveDeployPath != null){
+					ref.setRuntimePath(archiveDeployPath);
 				}
 
 				String archiveName = getArchiveName(comp);
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetDataModelOperation.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetDataModelOperation.java
index 1558b11..71d4dc1 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetDataModelOperation.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetDataModelOperation.java
@@ -10,22 +10,29 @@
  *******************************************************************************/
 package org.eclipse.wst.common.componentcore.internal.operation;
 
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
 import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.internal.operations.IProjectCreationPropertiesNew;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action.Type;
+import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
 
 public class FacetDataModelOperation extends AbstractDataModelOperation {
 
@@ -36,7 +43,7 @@
 	public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
 		IFacetedProject facetProj;
 		try {
-			facetProj = ProjectFacetsManager.create(model.getStringProperty(IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME), null, monitor);
+			facetProj = createProject(monitor);
 			Set actions = new HashSet();
 			actions.add(new IFacetedProject.Action((Type) model.getProperty(IFacetDataModelProperties.FACET_TYPE), (IProjectFacetVersion) model.getProperty(IFacetDataModelProperties.FACET_VERSION), model));
 			facetProj.modify(actions, monitor);
@@ -46,4 +53,29 @@
 		return OK_STATUS;
 	}
 
+	public IFacetedProject createProject(IProgressMonitor monitor) throws CoreException {
+		IProject project = ProjectUtilities.getProject((String) model.getProperty(IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME));
+		IFacetedProject facetProj = null;
+
+		if (project.exists()) {
+			facetProj = ProjectFacetsManager.create(project, true, monitor);
+		} else {
+			String location = null;
+			if (model.isProperty(IProjectCreationPropertiesNew.PROJECT_LOCATION))
+			{
+				location = (String) model.getProperty(IProjectCreationPropertiesNew.PROJECT_LOCATION);
+			}
+			IPath locationPath = null == location ? null : new Path(location);
+			facetProj = ProjectFacetsManager.create(model.getStringProperty(IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME), locationPath, monitor);
+		}
+		if (model.isProperty(IFacetProjectCreationDataModelProperties.FACET_RUNTIME))
+		{
+			IRuntime runtime = (IRuntime) model.getProperty(IFacetProjectCreationDataModelProperties.FACET_RUNTIME);
+			IRuntime existingRuntime = facetProj.getPrimaryRuntime();
+			if (runtime != null && (existingRuntime == null || !runtime.equals(existingRuntime))) {
+				facetProj.setTargetedRuntimes(Collections.singleton(runtime), null);
+			}
+		}
+		return facetProj;
+	}
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java
index 851d40c..c85ad06 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java
@@ -25,9 +25,9 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.internal.operations.IProjectCreationPropertiesNew;
@@ -36,6 +36,7 @@
 import org.eclipse.wst.common.project.facet.core.IProjectFacet;
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
 import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
 
 public class FacetProjectCreationOperation extends AbstractDataModelOperation {
@@ -105,26 +106,29 @@
 			}
 
 		} catch (CoreException e) {
-			Logger.getLogger().logError(e);
+			ModulecorePlugin.logError(e);
 			throw new ExecutionException(e.getMessage(), e);
 		} catch (Exception e) {
-			Logger.getLogger().logError(e);
+			ModulecorePlugin.logError(e);
 		}
 		return OK_STATUS;
 	}
-	
-	public static void addDefaultFactets(IFacetedProject facetProj, IRuntime runtime) throws ExecutionException 
-	{
-	    try
-	    {
-    	    final IFacetedProjectWorkingCopy fpjwc = facetProj.createWorkingCopy();
-    	    fpjwc.setSelectedPreset( fpjwc.getDefaultConfiguration().getId() );
-    	    fpjwc.commitChanges( null );
-	    }
-	    catch( CoreException e )
-	    {
-	        throw new ExecutionException( e.getMessage(), e );
-	    }
+
+	private static void addDefaultFacets(IFacetedProject facetProj, Set defaultFacets) {
+		Set actions = new HashSet();
+		for (Iterator iter = defaultFacets.iterator(); iter.hasNext();) {
+			IProjectFacetVersion facetVersion = (IProjectFacetVersion) iter.next();
+			if (!facetProj.hasProjectFacet(facetVersion.getProjectFacet())) {
+				actions.add(new IFacetedProject.Action(Action.Type.INSTALL, facetVersion, null));
+			}
+		}
+
+		try {
+			if (!actions.isEmpty())
+				facetProj.modify(actions, null);
+		} catch (CoreException e) {
+			ModulecorePlugin.logError(e);
+		}
 	}
 
 	public IFacetedProject createProject(IProgressMonitor monitor) throws CoreException {
@@ -146,4 +150,21 @@
 		return facetProj;
 	}
 	
+	public static void addDefaultFactets(IFacetedProject facetProj, IRuntime runtime) throws ExecutionException {
+		
+			if (runtime != null) {
+				IFacetedProjectWorkingCopy fpjwc = null;
+				try{
+					fpjwc = facetProj.createWorkingCopy();
+					Set<IProjectFacetVersion> presetFacets = fpjwc.getDefaultConfiguration().getProjectFacets();
+					addDefaultFacets(facetProj, presetFacets);
+				} finally{
+					if(fpjwc != null){
+						fpjwc.dispose();
+					}
+				}
+			}
+		
+	}
+
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ProjectMigratorDataModelOperation.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ProjectMigratorDataModelOperation.java
index d507389..9587406 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ProjectMigratorDataModelOperation.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ProjectMigratorDataModelOperation.java
@@ -22,6 +22,12 @@
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 
+/**
+ * This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+ * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+ * @deprecated 
+ * @author jsholl
+ */
 public class ProjectMigratorDataModelOperation extends AbstractDataModelOperation {
 
 	public ProjectMigratorDataModelOperation(IDataModel model) {
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceComponentOperation.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceComponentOperation.java
index bb1f2c3..d0ed549 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceComponentOperation.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceComponentOperation.java
@@ -22,8 +22,8 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
 import org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
@@ -60,11 +60,16 @@
 			existingReferences.add(existingReferencesArray[i]);
 		}
 		
-		String deployPath = model.getStringProperty( ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH );
-		IPath path = new Path( deployPath );
+		IPath path = null;
+		//if the deployPath is not explicitly set, then leave it as null so the first reference is removed.
+		if(model.isPropertySet( ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH )){
+			String deployPath = model.getStringProperty( ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH );
+			path = new Path( deployPath );
+		}
 		
 		List modList = (List) model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
     
+		
 		List targetprojectList = new ArrayList();
 
 		for (int i = 0; i < modList.size() && !existingReferences.isEmpty(); i++) {
@@ -90,7 +95,7 @@
 		try {
 			ProjectUtilities.removeReferenceProjects(sourceComp.getProject(),targetprojectList);
 		} catch (CoreException e) {
-			Logger.getLogger().logError(e);
+			ModulecorePlugin.logError(e);
 		}		
 		
 	}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceDataModelProvider.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceDataModelProvider.java
new file mode 100644
index 0000000..58086c4
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceDataModelProvider.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.operation;
+
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
+
+/**
+ * This class is meant to  be an alternative to RemoveReferenceComponentsDataModelProvider
+ * in order to remove pre-made or pre-crafted IVirtualReferences, rather than 
+ * searching for their individual properties
+ */
+public class RemoveReferenceDataModelProvider extends AddReferenceDataModelProvider {
+
+	public RemoveReferenceDataModelProvider() {
+		super();
+	}
+
+	public IDataModelOperation getDefaultOperation() {
+		return new RemoveReferenceOperation(model);
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceOperation.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceOperation.java
new file mode 100644
index 0000000..cd085b3
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceOperation.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.operation;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
+import org.eclipse.wst.common.componentcore.datamodel.properties.IAddReferenceDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+
+/**
+ * This class is meant to be an alternative to RemoveReferenceComponentOperation
+ * in order to remove pre-made or pre-crafted IVirtualReferences, rather than 
+ * searching for their individual properties
+ */
+public class RemoveReferenceOperation extends AbstractDataModelOperation {
+
+	public RemoveReferenceOperation() {
+		super();
+	}
+
+	public RemoveReferenceOperation(IDataModel model) {
+		super(model);
+	}
+
+	public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+		removeReferences(monitor);
+		return OK_STATUS;
+	}
+
+	protected List<IVirtualReference> getListFromModel(IDataModel model) {
+		Object value = model.getProperty(IAddReferenceDataModelProperties.TARGET_REFERENCE_LIST);
+		List<IVirtualReference> modList = value instanceof List ?  (List<IVirtualReference>)value : Arrays.asList(new IVirtualReference[]{(IVirtualReference)value});
+		return modList;
+	}
+
+	protected void removeReferences(IProgressMonitor monitor) {
+		
+		IVirtualComponent sourceComp = (IVirtualComponent) model.getProperty(IAddReferenceDataModelProperties.SOURCE_COMPONENT);
+		if (sourceComp == null || !sourceComp.getProject().isAccessible() || sourceComp.isBinary()) return;
+		
+		Map<String, Object> options = new HashMap<String, Object>();
+		options.put(IVirtualComponent.REQUESTED_REFERENCE_TYPE, IVirtualComponent.DISPLAYABLE_REFERENCES_ALL);
+		IVirtualReference [] existingReferencesArray = sourceComp.getReferences(options);
+		if(existingReferencesArray == null || existingReferencesArray.length == 0){
+			return;
+		}
+		
+		List<IVirtualReference> existingReferences = new ArrayList<IVirtualReference>();
+		existingReferences.addAll(Arrays.asList(existingReferencesArray));
+		List<IVirtualReference> modList = getListFromModel(model);
+		List targetprojectList = new ArrayList();
+		for (int i = 0; i < modList.size() && !existingReferences.isEmpty(); i++) {
+			IVirtualReference ref = modList.get(i);
+			if (ref.getReferencedComponent()==null )
+				continue;
+
+			IVirtualReference existing = findMatchingReference(existingReferences, 
+					ref.getReferencedComponent(), ref.getRuntimePath());
+			//if a ref was found matching the specified deployPath, then remove it
+			if(existing != null){
+				removeRefereneceInComponent(sourceComp, existing);
+				existingReferences.remove(existing);
+				//after removing the ref, check to see if it was the last ref removed to that component
+				//and if it was, then also remove the project reference
+				existing = findMatchingReference(existingReferences, ref.getReferencedComponent());
+				if(existing == null){
+					IProject targetProject = ref.getReferencedComponent().getProject();
+					targetprojectList.add(targetProject);
+				}
+			}
+		}
+		
+		try {
+			ProjectUtilities.removeReferenceProjects(sourceComp.getProject(),targetprojectList);
+		} catch (CoreException e) {
+			ModulecorePlugin.logError(e);
+		}		
+		
+	}
+
+	private IVirtualReference findMatchingReference(List existingReferences, IVirtualComponent comp, IPath path) {
+		for(int i=0;i<existingReferences.size(); i++){
+			IVirtualReference ref = (IVirtualReference)existingReferences.get(i);
+			IVirtualComponent c = ref.getReferencedComponent();
+			if(c != null && c.getName().equals(comp.getName())){
+				if(path == null){
+					return ref;
+				} else if(path.equals(ref.getRuntimePath())){
+					return ref;
+				}
+			}
+		}
+		return null;
+	}
+
+	private IVirtualReference findMatchingReference(List existingReferences, IVirtualComponent comp) {
+		return findMatchingReference(existingReferences, comp, null);
+	}
+
+	protected void removeRefereneceInComponent(IVirtualComponent component, IVirtualReference reference) {
+		((VirtualComponent)component.getComponent()).removeReference(reference);
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ServerContextRootDataModelProvider.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ServerContextRootDataModelProvider.java
new file mode 100644
index 0000000..01ded49
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ServerContextRootDataModelProvider.java
@@ -0,0 +1,39 @@
+package org.eclipse.wst.common.componentcore.internal.operation;
+
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+import java.util.Set;
+
+import org.eclipse.wst.common.componentcore.datamodel.properties.IServerContextRootDataModelProperties;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
+
+public class ServerContextRootDataModelProvider 
+ extends AbstractDataModelProvider
+ implements IServerContextRootDataModelProperties{
+
+	public ServerContextRootDataModelProvider(){
+		super();
+	}
+
+	public Set getPropertyNames() {
+		Set names = super.getPropertyNames();
+		names.add(PROJECT);
+		names.add(CONTEXT_ROOT);
+		return names;
+	}
+	
+	public IDataModelOperation getDefaultOperation() {
+		return new ServerContextRootUpdateOperation(model);
+	}
+	
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ServerContextRootUpdateOperation.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ServerContextRootUpdateOperation.java
new file mode 100644
index 0000000..962b731
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/ServerContextRootUpdateOperation.java
@@ -0,0 +1,45 @@
+package org.eclipse.wst.common.componentcore.internal.operation;
+
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.datamodel.properties.IServerContextRootDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+
+public class ServerContextRootUpdateOperation 
+ extends  AbstractDataModelOperation 
+ implements IServerContextRootDataModelProperties{
+	
+
+	public ServerContextRootUpdateOperation(IDataModel model) {
+		super(model);
+	}
+
+	public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+		IProject project = (IProject)model.getProperty( IServerContextRootDataModelProperties.PROJECT );
+		String contextRoot = model.getStringProperty( IServerContextRootDataModelProperties.CONTEXT_ROOT );
+		if (contextRoot != null) {
+			IVirtualComponent comp = ComponentCore.createComponent(project);
+			comp.setMetaProperty(IModuleConstants.CONTEXTROOT, contextRoot);	
+		}
+		return OK_STATUS;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/AbstractResourceListVirtualComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/AbstractResourceListVirtualComponent.java
new file mode 100644
index 0000000..838187d
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/AbstractResourceListVirtualComponent.java
@@ -0,0 +1,162 @@
+/******************************************************************************* 
+ * Copyright (c) 2009 Red Hat, Inc. 
+ * Distributed under license by Red Hat, Inc. All rights reserved. 
+ * This program is made available under the terms of the 
+ * Eclipse Public License v1.0 which accompanies this distribution, 
+ * and is available at http://www.eclipse.org/legal/epl-v10.html 
+ * 
+ * Contributors: 
+ * Red Hat, Inc. - initial API and implementation 
+ ******************************************************************************/ 
+package org.eclipse.wst.common.componentcore.internal.resources;
+
+import java.util.Map;
+import java.util.Properties;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+
+public abstract class AbstractResourceListVirtualComponent implements IVirtualComponent {
+	protected IProject project;
+	protected IVirtualComponent referencingComp;	
+
+	public AbstractResourceListVirtualComponent(IProject p, IVirtualComponent referencingComponent) {
+		this.project = p;
+		this.referencingComp = referencingComponent;
+	}
+	
+	@Override
+	public boolean equals(Object o) {
+		if(this == o){
+			return true;
+		}
+		if(o == null){
+			return false;
+		}
+		if(!this.getClass().equals(o.getClass())){
+			return false;
+		}
+		AbstractResourceListVirtualComponent other = (AbstractResourceListVirtualComponent)o;
+		return (project == null ? other.project == null : project.equals(other.project)) && 
+			   (referencingComp == null ? other.referencingComp == null : referencingComp.equals(other.referencingComp));
+	}
+	
+	@Override
+	public int hashCode() {
+		return super.hashCode() + (project == null ? 0 : project.hashCode()) + (referencingComp == null ? 0 : referencingComp.hashCode());
+	}
+	
+
+	public void create(int updateFlags, IProgressMonitor aMonitor)
+			throws CoreException {
+		// Ignore
+	}
+
+	public boolean exists() {
+		return true;
+	}
+
+	public IVirtualComponent getComponent() {
+		return this;
+	}
+
+	public String getName() {
+		return getId();
+	}
+
+	public String getDeployedName() {
+		return getName();
+	}
+
+	public String getId() {
+		String firstSegment = getFirstIdSegment();
+		if (project != null && project.equals(
+				referencingComp.getProject()))
+			return firstSegment; 
+		return firstSegment + Path.SEPARATOR + project.getName();
+	}
+
+	protected abstract String getFirstIdSegment();
+	
+	public IProject getProject() {
+		return project;
+	}
+
+	public IVirtualComponent[] getReferencingComponents() {
+		return referencingComp == null ? new IVirtualComponent[] {}
+				: new IVirtualComponent[] { referencingComp };
+	}
+
+	public IVirtualFolder getRootFolder() {
+		// Creates a new instance each time to ensure it's not cached
+		IContainer[] containers = getUnderlyingContainers();
+		IResource[] looseResources = getLooseResources();
+		ResourceListVirtualFolder folder = 
+			new ResourceListVirtualFolder(project, new Path("/"), containers, looseResources); //$NON-NLS-1$
+		return folder;
+	}
+
+	protected abstract IContainer[] getUnderlyingContainers();
+	protected abstract IResource[] getLooseResources();
+	
+	public Properties getMetaProperties() {
+		return null;
+	}
+
+	public IPath[] getMetaResources() {
+		return null;
+	}
+
+	public IVirtualReference getReference(String aComponentName) {
+		// Ignore
+		return null;
+	}
+
+	public IVirtualReference[] getReferences() {
+		// Ignore; no children
+		return new IVirtualReference[] {};
+	}
+
+	public IVirtualReference[] getReferences(Map<String, Object> options) {
+		// Ignore, no children
+		return new IVirtualReference[]{};
+	}
+
+	
+	public boolean isBinary() {
+		return false;
+	}
+
+	public void setMetaProperties(Properties properties) {
+		// Ignore
+	}
+
+	public void setMetaProperty(String name, String value) {
+		// Ignore
+	}
+
+	public void setMetaResources(IPath[] theMetaResourcePaths) {
+		// Ignore
+	}
+
+	public void setReferences(IVirtualReference[] theReferences) {
+		// Ignore
+	}
+
+	public Object getAdapter(Class adapter) {
+		// Ignore
+		return null;
+	}
+
+	public void addReferences(IVirtualReference[] references) {
+		// Ignore
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/NonResolvableVirtualComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/NonResolvableVirtualComponent.java
new file mode 100644
index 0000000..e8ae753
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/NonResolvableVirtualComponent.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.common.componentcore.internal.resources;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.wst.common.componentcore.ModuleCoreNature;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+
+/**
+ * This class is a stub for virtual components whose underlying project is not accessible (e.g the project 
+ * is closed, or was deleted). This class can be returned by virtual component methods to get references 
+ * if the underlying project of the referenced component is not accessible. 
+ */
+
+public class NonResolvableVirtualComponent extends AbstractResourceListVirtualComponent {
+
+	public NonResolvableVirtualComponent(IProject p, IVirtualComponent referencingComponent) {
+		super(p, referencingComponent);
+	}
+	
+	@Override
+	protected IContainer[] getUnderlyingContainers() {
+		return new IContainer[]{};
+	}
+
+	@Override
+	protected IResource[] getLooseResources() {
+		return new IResource[]{};
+	}
+	
+	@Override
+	public boolean exists() { 
+		IProject project = getProject();
+		return (project.isAccessible() && ModuleCoreNature.isFlexibleProject(project));
+	}
+
+	@Override
+	protected String getFirstIdSegment() {
+		return null;
+	}
+	
+	@Override
+	public String getName(){
+		return getProject().getName();
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/ResourceListVirtualFolder.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/ResourceListVirtualFolder.java
new file mode 100644
index 0000000..11d89f3
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/ResourceListVirtualFolder.java
@@ -0,0 +1,150 @@
+/******************************************************************************* 
+ * Copyright (c) 2009 Red Hat, Inc. 
+ * Distributed under license by Red Hat, Inc. All rights reserved. 
+ * This program is made available under the terms of the 
+ * Eclipse Public License v1.0 which accompanies this distribution, 
+ * and is available at http://www.eclipse.org/legal/epl-v10.html 
+ * 
+ * Contributors: 
+ * Red Hat, Inc. - initial API and implementation 
+ ******************************************************************************/ 
+package org.eclipse.wst.common.componentcore.internal.resources;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
+import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
+
+public class ResourceListVirtualFolder extends VirtualFolder {
+
+	public interface ResourceFilter {
+		public boolean accepts(IResource resource);
+	}
+	
+	private ArrayList<IResource> children;
+	private ArrayList<IContainer> underlying;
+	private ResourceFilter filter;
+	public ResourceListVirtualFolder(
+			IProject aComponentProject,
+			IPath aRuntimePath) {
+		super(aComponentProject, aRuntimePath);
+		this.children = new ArrayList<IResource>();
+		this.underlying = new ArrayList<IContainer>();
+	}
+
+	public ResourceListVirtualFolder(
+			IProject aComponentProject,
+			IPath aRuntimePath, IContainer[] underlyingContainers) {
+		this(aComponentProject, aRuntimePath);
+		addUnderlyingResource(underlyingContainers);
+	}
+
+	public ResourceListVirtualFolder(
+			IProject aComponentProject,
+			IPath aRuntimePath, IContainer[] underlyingContainers, 
+			IResource[] looseResources) {
+		this(aComponentProject, aRuntimePath, underlyingContainers);
+		addChildren(looseResources);
+	}
+
+	public void setFilter(ResourceFilter filter) {
+		this.filter = filter;
+	}
+	
+	protected void addUnderlyingResource(IResource resource) {
+		if( resource instanceof IContainer ) { 
+			underlying.add((IContainer)resource);
+			try {
+				IResource[] newChildren = ((IContainer)resource).members();
+				for( int i = 0; i < newChildren.length; i++ ) {
+					children.add(newChildren[i]);
+				}
+			} catch( CoreException ce) {
+				// TODO log
+			}
+		}
+	}
+
+	protected void addUnderlyingResource(IResource[] resources) {
+		for( int i = 0; i < resources.length; i++ ) {
+			addUnderlyingResource(resources[i]);
+		}
+	}
+	
+	protected void addChild(IResource resource) {
+		this.children.add(resource);
+	}
+
+	protected void addChildren(IResource[] resources) {
+		this.children.addAll(Arrays.asList(resources));
+	}
+	
+	@Override
+	public IResource getUnderlyingResource() {
+		return getUnderlyingFolder();
+	}
+	
+	@Override
+	public IResource[] getUnderlyingResources() {
+		return getUnderlyingFolders();
+	}
+
+	@Override
+	public IContainer getUnderlyingFolder() { 
+		return underlying.size() > 0 ? underlying.get(0) : null;
+	}
+	
+	@Override
+	public IContainer[] getUnderlyingFolders() {
+		return underlying.toArray(new IContainer[underlying.size()]);
+	}
+
+	@Override
+	public IVirtualResource[] members(int memberFlags) throws CoreException {
+		HashMap<String, IVirtualResource> virtualResources = new HashMap<String, IVirtualResource>(); // result
+		IResource[] resources = this.children.toArray(new IResource[this.children.size()]);
+		for( int i = 0; i < resources.length; i++ ) {
+			handleResource(resources[i], virtualResources, memberFlags);
+		}
+		Collection c = virtualResources.values();
+		return (IVirtualResource[]) c.toArray(new IVirtualResource[c.size()]);
+	}
+
+	protected void handleResource(IResource resource, HashMap<String, IVirtualResource> map, int memberFlags) throws CoreException {
+		if( filter != null && !filter.accepts(resource))
+			return;
+		
+		if( resource instanceof IFile ) {
+			if( !map.containsKey(resource.getName()) ) {
+				IVirtualFile virtFile = new VirtualFile(getProject(), 
+						getRuntimePath().append(((IFile)resource).getName()), (IFile)resource);
+				map.put(resource.getName(), virtFile);
+				return;
+			} 
+		}// end file
+		else if( resource instanceof IContainer ) {
+			IContainer realContainer = (IContainer) resource;
+			//IResource[] realChildResources = realContainer.members(memberFlags);
+			IVirtualResource previousValue = map.get(resource.getName());
+			if( previousValue != null && previousValue instanceof ResourceListVirtualFolder ) {
+				((ResourceListVirtualFolder)previousValue).addUnderlyingResource(realContainer);
+			} else if( previousValue == null ) {
+				ResourceListVirtualFolder childFolder = 
+					new ResourceListVirtualFolder(getProject(), getRuntimePath().append(resource.getName()));
+				childFolder.addUnderlyingResource(realContainer);
+				if( filter != null )
+					childFolder.setFilter(filter);
+				map.put(resource.getName(), childFolder);
+			}
+		} // end container
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualArchiveComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualArchiveComponent.java
index b0b6d9b..0590619 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualArchiveComponent.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualArchiveComponent.java
@@ -12,6 +12,7 @@
 
 
 import java.io.File;
+import java.util.Map;
 import java.util.Properties;
 
 import org.eclipse.core.resources.IFile;
@@ -42,18 +43,12 @@
 	
 	private static final IVirtualReference[] NO_REFERENCES = new VirtualReference[0];
 	private static final IVirtualComponent[] NO_COMPONENTS = new VirtualComponent[0];
-//	private static final IResource[] NO_RESOURCES = null;
 	private static final IVirtualResource[] NO_VIRTUAL_RESOURCES = null;
 	private static final Properties NO_PROPERTIES = new Properties();
 	private static final IPath[] NO_PATHS = new Path[0];
 
-//	private IPath runtimePath;
+	private IPath runtimePath;
 	private IProject componentProject;
-//	private IVirtualFolder rootFolder;
-	private int flag = 1;
-//	private String archiveLocation;
-
-
 	private IPath archivePath;
 	private String archiveType;
 
@@ -64,10 +59,10 @@
 			throw new NullPointerException();
 		}
 		componentProject = aComponentProject;
-//		runtimePath = aRuntimePath;
+		runtimePath = aRuntimePath;
 
 		String archivePathString = archiveLocation.substring(4, archiveLocation.length());
-		archiveType	= archiveLocation.substring(0, archiveLocation.length() - archivePathString.length() -1);
+		archiveType	= archiveLocation.substring(0, 3);
 		archivePath = new  Path(archivePathString);
 	}
 
@@ -81,6 +76,7 @@
 	
 	public String getDeployedName() {
 		return getName();
+		//return getArchivePath().lastSegment();
 	}
 
 	public void setComponentTypeId(String aComponentTypeId) {
@@ -92,8 +88,8 @@
 	}
 
 	public boolean isBinary() {
-		boolean ret = (flag & BINARY) == 1 ? true : false;
-		return ret;
+		int x = BINARY;
+		return true;
 	}
 
 	public IPath[] getMetaResources() {
@@ -108,10 +104,22 @@
 
 	}
 
+	/**
+	 * The implementation should be protected. Deprecated as of WTP 3.2 
+	 * You should convert to a File or IFile and then get the extension. 
+	 * @return
+	 */
+	@Deprecated
 	public String getFileExtension() {
 		return archivePath.getFileExtension();
 	}
 
+	/**
+	 * The implementation should be protected. Deprecated as of WTP 3.2
+	 * You should convert to an IFile and get it's full path
+	 * @return
+	 */
+	@Deprecated
 	public IPath getWorkspaceRelativePath() {
 		if( archivePath.segmentCount() > 1 ){
 			IFile aFile = ResourcesPlugin.getWorkspace().getRoot().getFile(archivePath);
@@ -121,6 +129,12 @@
 		return null;
 	}
 
+	/**
+	 * The implementation should be protected. Deprecated as of WTP 3.2
+	 * You should convert to an IFile and use IFile.getProjectRelativePath()
+	 * @return
+	 */
+	@Deprecated
 	public IPath getProjectRelativePath() {
 		IFile aFile = ResourcesPlugin.getWorkspace().getRoot().getFile(getWorkspaceRelativePath());
 		if (aFile.exists())
@@ -133,9 +147,13 @@
 	}
 
 	public IPath getRuntimePath() {
-		return ROOT;
+		return runtimePath == null ? ROOT : runtimePath;
 	}
 
+	public IPath getArchivePath() {
+		return archivePath;
+	}
+	
 	public boolean isAccessible() {
 		return true;
 	}
@@ -151,6 +169,10 @@
 	public void create(int updateFlags, IProgressMonitor aMonitor) throws CoreException {
 
 	}
+	
+	public IVirtualReference[] getReferences(Map<String, Object> options) {
+		return NO_REFERENCES;
+	}
 
 	public IVirtualReference[] getReferences() {
 		return NO_REFERENCES;
@@ -169,17 +191,8 @@
 	}
 
 	public boolean exists() {
-		boolean exists = false;
-		java.io.File diskFile = getUnderlyingDiskFile();
-		if( diskFile != null )
-			exists = diskFile.exists();
-		
-		if( !exists ){
-			IFile utilityJar = getUnderlyingWorkbenchFile();
-			if( utilityJar != null )
-				exists =  utilityJar.exists();
-		}
-		return exists;
+		File f = (File)getAdapter(File.class);
+		return f != null && f.exists();
 	}
 
 	public IVirtualFolder getRootFolder() {
@@ -191,7 +204,26 @@
 	}
 
 
+	/**
+	 * Guaranteed accepted adapters and behaviours:
+	 * org.eclipse.core.runtime.IPath - if a workspace file, returns ifile.getFullPath(),  else new Path(java.io.File.getAbsolutePath())
+	 * java.io.File - the file, whether in workspace or out, this will get the actual file if there is one
+	 * org.eclipse.core.resources.IFile - the workspace file, if it exists
+	 */
 	public Object getAdapter(Class adapterType) {
+		if( File.class.equals(adapterType))
+			return getUnderlyingDiskFile();
+		if( IFile.class.equals(adapterType)) {
+			return getUnderlyingWorkbenchFile();
+		}
+		if( IPath.class.equals(adapterType)) {
+			IFile f = getUnderlyingWorkbenchFile();
+			if( f != null ) 
+				return f.getFullPath();
+			File f2 = getUnderlyingDiskFile();
+			if( f2 != null )
+				return new Path(f2.getAbsolutePath());
+		}
 		return Platform.getAdapterManager().getAdapter(this, adapterType);
 	}
 
@@ -224,12 +256,25 @@
 	public void setMetaProperties(Properties properties) {
 
 	}
+	
+	/**
+	 * The implementation should be protected
+	 * You should use getAdapter(IFile.class)
+	 * @return
+	 */
+	@Deprecated
 	public IFile getUnderlyingWorkbenchFile() {
 		if (getWorkspaceRelativePath()==null)
 			return null;
 		return ResourcesPlugin.getWorkspace().getRoot().getFile(getWorkspaceRelativePath());
 	}
 
+	/**
+	 * The implementation should be protected
+	 * You should use getAdapter(File.class)
+	 * @return
+	 */
+	@Deprecated
 	public File getUnderlyingDiskFile() {
 		String osPath = null;
 		IPath loc = null;
@@ -243,7 +288,7 @@
 			IFile file = getProject().getFile(archivePath);
 			if(file.exists())
 				loc  = file.getLocation();
-			else {
+			else if(archivePath.segmentCount() > 1) {
 				file = ResourcesPlugin.getWorkspace().getRoot().getFile(archivePath);
 				if(file.exists())
 					loc = file.getLocation();
@@ -266,5 +311,5 @@
 		}
 		return super.toString();
 	}
-	
+
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualComponent.java
index ce24d69..6a3ea0f 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualComponent.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualComponent.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,9 +12,13 @@
 
 import java.util.ArrayList;
 import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
+import java.util.Set;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
@@ -23,18 +27,24 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.ModuleCoreNature;
+import org.eclipse.wst.common.componentcore.UnresolveableURIException;
 import org.eclipse.wst.common.componentcore.internal.ComponentcoreFactory;
 import org.eclipse.wst.common.componentcore.internal.ComponentcorePackage;
-import org.eclipse.wst.common.componentcore.internal.DependencyType;
 import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
 import org.eclipse.wst.common.componentcore.internal.Property;
 import org.eclipse.wst.common.componentcore.internal.ReferencedComponent;
 import org.eclipse.wst.common.componentcore.internal.StructureEdit;
 import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
-import org.eclipse.wst.common.componentcore.internal.builder.DependencyGraphManager;
+import org.eclipse.wst.common.componentcore.internal.builder.IDependencyGraph;
 import org.eclipse.wst.common.componentcore.internal.impl.ModuleURIUtil;
+import org.eclipse.wst.common.componentcore.resolvers.IReferenceResolver;
+import org.eclipse.wst.common.componentcore.resolvers.ReferenceResolverUtil;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
 import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
@@ -49,7 +59,82 @@
 	String componentTypeId;
 	private int flag = 0;
 	
+	// Cache variables
+	String name = null;
+	String deploymentName = null;
+	Map <String, IVirtualReference> referenceMap = null;
+	IVirtualReference[] rawReferencesArray = null;
+	IVirtualReference[] referencesArray = null;
+	Properties metaProperties = null;
+	IPath[] cacheMetaResources = null;
+	IVirtualReference[] allReferences = null;
+	
+	Resource projectResource;
+	protected ResourceAdapter resourceAdapter = new ResourceAdapter();
+	
+	protected class ResourceAdapter extends AdapterImpl {
+		public void notifyChanged(Notification notification) {
+			if (notification.getFeatureID(null) == Resource.RESOURCE__IS_MODIFIED)
+				resourceChanged((Resource) notification.getNotifier());
+		}
 
+		@Override
+		public boolean equals(Object arg0) {
+			
+			return this.getClass().equals(arg0.getClass());
+		}
+
+		@Override
+		public int hashCode() {
+			
+			return getClass().hashCode();
+		}
+	}
+	
+	protected void resourceChanged(Resource aResource) {
+		clearCache();
+	}
+	
+	private void addManagedResource() {
+		if(projectResource == null)
+			projectResource = createResource();
+		if (projectResource != null && !projectResource.eAdapters().contains(resourceAdapter))
+			projectResource.eAdapters().add(resourceAdapter);
+	}
+	
+	protected void removeResource() {
+		if(projectResource != null) {
+			projectResource.eAdapters().remove(resourceAdapter);
+			projectResource = null;
+		}
+	}
+	
+	protected void initializeResource() {
+		projectResource = createResource();
+		addManagedResource();
+	}
+	
+	protected Resource createResource() {
+		StructureEdit core = null;
+		Resource res = null;
+        try {
+            core = StructureEdit.getStructureEditForRead(getProject());
+            if (core == null)
+            	return null;
+            WorkbenchComponent component = core.getComponent();
+            if(component != null)
+            	res = component.eResource();
+        } finally {
+            if(core != null)
+                core.dispose();
+        }
+        return res;
+	}
+	
+	public void dispose() {
+		removeResource();
+	}
+	
 	protected VirtualComponent(){
 	}
 	
@@ -60,6 +145,7 @@
 		componentProject = aProject;
 		runtimePath = aRuntimePath;
 		rootFolder = ComponentCore.createFolder(componentProject, new Path("/")); //$NON-NLS-1$
+		initializeResource();
 	}
 	
 	public IVirtualComponent getComponent() {
@@ -67,10 +153,17 @@
 	}
 	
 	public String getName() {
-		return getProject().getName();
+		if(name == null){
+			name = getProject().getName();
+		}
+		return name;
 	}
 	
 	public String getDeployedName() {
+		if(deploymentName != null) {
+			return deploymentName;
+		}
+			
 		StructureEdit core = null;
 		IProject project = getProject();
 		try {
@@ -78,15 +171,18 @@
 				core = StructureEdit.getStructureEditForRead(project);
 				if(core != null && core.getComponent() != null){
 					WorkbenchComponent component = core.getComponent();
-					if (component.getName()!=null && component.getName().length()>0)
-						return component.getName();
+					if (component.getName()!=null && component.getName().length()>0) {
+						deploymentName = component.getName();
+						return deploymentName;
+					}
 				}
 			}
 		} finally {
 			if(core != null)
 				core.dispose();
 		}
-		return getProject().getName();
+		deploymentName = getProject().getName();
+		return deploymentName;
 	}
 	
 	public boolean exists() { 
@@ -96,8 +192,13 @@
 	
 
 	public Properties getMetaProperties() {
+		if(metaProperties != null) {
+			return metaProperties;
+		}
+		
         StructureEdit core = null;
         Properties props = new Properties();
+        metaProperties = props;
         try {
             core = StructureEdit.getStructureEditForRead(getProject());
             if (core == null)
@@ -118,7 +219,8 @@
                     props.setProperty(name, value);
                 }
             }
-            return props; 
+            metaProperties =  props; 
+            return props;
         } finally {
             if(core != null)
                 core.dispose();
@@ -149,6 +251,7 @@
 		            // Add new property
 		            propList.add(prop);
 		         }
+		        clearCache();
 			} 
         } finally {
             if(core != null){
@@ -164,6 +267,7 @@
             core = StructureEdit.getStructureEditForWrite(getProject());
             WorkbenchComponent component = core.getComponent(); 
             component.getProperties().clear();
+            clearCache();
         } finally {
             if(core != null){
             	core.saveIfNecessary(null);
@@ -191,7 +295,7 @@
 			prop.setName(key);
 			prop.setValue(value);
 			component.getProperties().add(prop);
-            
+			clearCache();            
         } finally {
             if(core != null){
             	core.saveIfNecessary(null);
@@ -201,6 +305,9 @@
 	}
 	
 	public IPath[] getMetaResources() {
+		if(cacheMetaResources != null)
+			return cacheMetaResources;
+		
 		StructureEdit moduleCore = null;
 		List metaResources = new ArrayList();
 		try {
@@ -215,7 +322,8 @@
 				moduleCore.dispose();
 			}
 		}
-		return (IPath[]) metaResources.toArray(new IPath[metaResources.size()]);
+		cacheMetaResources = (IPath[]) metaResources.toArray(new IPath[metaResources.size()]);
+		return cacheMetaResources;
 	}
 
 	public void setMetaResources(IPath[] theMetaResourcePaths) {
@@ -228,6 +336,7 @@
 					if (!component.getMetadataResources().contains(theMetaResourcePaths[i]))
 						component.getMetadataResources().add(theMetaResourcePaths[i]);
 				}
+				clearCache();
 			}
 		} finally {
 			if (moduleCore != null) {
@@ -267,7 +376,54 @@
 		}
 	}	
 
-	public IVirtualReference[] getReferences() { 
+	/**
+	 * Returns a raw list of references exactly as defined in
+	 * .settings/org.eclipse.wst.common.component. All returned references will
+	 * return a non <code>null</code> for
+	 * {@link IVirtualReference#getReferencedComponent()}, however, it is
+	 * possible that calls to these component's
+	 * {@link IVirtualComponent#exists()} may return <code>false</code>.
+	 * 
+	 * @return
+	 */
+	public final IVirtualReference[] getRawReferences() {
+		if (rawReferencesArray != null) {
+			return rawReferencesArray;
+		}
+		StructureEdit core = null;
+		List references = new ArrayList();
+		try {
+			core = StructureEdit.getStructureEditForRead(getProject());
+			if (core != null && core.getComponent() != null) {
+				WorkbenchComponent component = core.getComponent();
+				if (component != null) {
+					List referencedComponents = component.getReferencedComponents();
+					for (Iterator iter = referencedComponents.iterator(); iter.hasNext();) {
+						ReferencedComponent referencedComponent = (ReferencedComponent) iter.next();
+						if (referencedComponent == null) {
+							continue;
+						}
+						IVirtualReference vReference = StructureEdit.createVirtualReference(this, referencedComponent);
+						if (vReference != null && vReference.getReferencedComponent() != null) {
+							references.add(vReference);
+						}
+					}
+				}
+			}
+			rawReferencesArray = (IVirtualReference[]) references.toArray(new IVirtualReference[references.size()]);
+			return rawReferencesArray;
+		} finally {
+			if (core != null) {
+				core.dispose();
+			}
+		}
+	}
+	
+
+	public IVirtualReference[] getReferences(Map<String, Object> options) {
+		if(referencesArray != null) {
+			return referencesArray;
+		}
 		StructureEdit core = null;
 		List references = new ArrayList();
 		try {
@@ -281,20 +437,29 @@
 						if (referencedComponent==null) 
 							continue;
 						IVirtualReference vReference = StructureEdit.createVirtualReference(this, referencedComponent);
-						if( vReference != null ){
-							vReference.setArchiveName( referencedComponent.getArchiveName() );
-						}
-						if (vReference != null && vReference.getReferencedComponent() != null && vReference.getReferencedComponent().exists())
+						if (vReference != null && vReference.getReferencedComponent() != null && vReference.getReferencedComponent().exists()){
 							references.add(vReference); 
+							customizeCreatedReference(vReference, referencedComponent);
+						}
 					}
 				}
 			}
-			return (IVirtualReference[]) references.toArray(new IVirtualReference[references.size()]);
+			referencesArray = (IVirtualReference[]) references.toArray(new IVirtualReference[references.size()]);
+			return referencesArray;
 		} finally {
 			if(core != null)
 				core.dispose();
 		}		
 	}
+	
+	protected void customizeCreatedReference(IVirtualReference reference, Object dependentObject) {
+		// Do Nothing
+	}
+	
+	public IVirtualReference[] getReferences() { 
+		HashMap<String, Object> map = new HashMap<String, Object>();
+		return getReferences(map);
+	}
 
 	public void addReferences(IVirtualReference[] references) {
 		if (references==null || references.length==0)
@@ -304,28 +469,18 @@
 			core = StructureEdit.getStructureEditForWrite(getProject());
 			if (core == null)
 				return;
+			clearCache();
 			WorkbenchComponent component = core.getComponent();
 			ReferencedComponent referencedComponent = null;
 			ComponentcoreFactory factory = ComponentcorePackage.eINSTANCE.getComponentcoreFactory();
+			IReferenceResolver resolver = null;
 			for (int i=0; i<references.length; i++) {
 				if (references[i] == null)
 					continue;
-				referencedComponent = factory.createReferencedComponent();				
-				referencedComponent.setDependencyType(DependencyType.get(references[i].getDependencyType()));
-				referencedComponent.setRuntimePath(references[i].getRuntimePath());
-
-				IVirtualComponent comp = references[i].getReferencedComponent();
-				if(comp!=null && !comp.isBinary())
-					referencedComponent.setHandle(ModuleURIUtil.fullyQualifyURI(comp.getProject()));
-				else if (comp!=null)
-					referencedComponent.setHandle(ModuleURIUtil.archiveComponentfullyQualifyURI(comp.getName()));
+				resolver = ReferenceResolverUtil.getDefault().getResolver(references[i]);
+				referencedComponent = resolver.resolve(references[i]);
 				if (component != null)
 					component.getReferencedComponents().add(referencedComponent);
-				referencedComponent.setArchiveName(references[i].getArchiveName());
-			}
-			//clean up any old obsolete references
-			if (component != null){
-				cleanUpReferences(component);
 			}
 		} finally {
 			if(core != null) {
@@ -335,41 +490,22 @@
 		}	
 	}
 	
-	private void cleanUpReferences(WorkbenchComponent component) {
-		List referencedComponents = component.getReferencedComponents();
-		for (Iterator iter = referencedComponents.iterator(); iter.hasNext();) {
-			ReferencedComponent referencedComponent = (ReferencedComponent) iter.next();
-			if (referencedComponent==null) 
-				continue;
-			IVirtualReference vReference = StructureEdit.createVirtualReference(this, referencedComponent);
-			if (vReference == null || vReference.getReferencedComponent() == null || !vReference.getReferencedComponent().exists()){
-				iter.remove();
-			}
-		}
-	}
-	
 	public void setReferences(IVirtualReference[] references) { 
 		StructureEdit core = null;
 		try {
 			core = StructureEdit.getStructureEditForWrite(getProject());
 			WorkbenchComponent component = core.getComponent();
 			ReferencedComponent referencedComponent = null;
-			  
+			 
+			clearCache();
 			component.getReferencedComponents().clear();
 			ComponentcoreFactory factory = ComponentcorePackage.eINSTANCE.getComponentcoreFactory();
+			IReferenceResolver resolver = null;
 			for (int i=0; i<references.length; i++) {
-				referencedComponent = factory.createReferencedComponent();				
-				referencedComponent.setDependencyType(DependencyType.get(references[i].getDependencyType()));
-				referencedComponent.setRuntimePath(references[i].getRuntimePath());
-
-				IVirtualComponent comp = references[i].getReferencedComponent();
-				if( !comp.isBinary())
-					referencedComponent.setHandle(ModuleURIUtil.fullyQualifyURI(references[i].getReferencedComponent().getProject()));
-				else
-					referencedComponent.setHandle(ModuleURIUtil.archiveComponentfullyQualifyURI(references[i].getReferencedComponent().getName()));
-				
-				referencedComponent.setArchiveName(references[i].getArchiveName());
-				component.getReferencedComponents().add(referencedComponent);
+				resolver = ReferenceResolverUtil.getDefault().getResolver(references[i]);
+				referencedComponent = resolver.resolve(references[i]);
+				if( referencedComponent != null)
+					component.getReferencedComponents().add(referencedComponent);
 			}
 			 
 		} finally {
@@ -381,6 +517,7 @@
 	}
 
 	public int hashCode() {
+		if(componentProject == null) return super.hashCode();  //If component factory instance, don't use project to hash
 		int hash = HashUtil.SEED;
 		hash = HashUtil.hash(hash, getProject().getName());
 		hash = HashUtil.hash(hash, getName());
@@ -388,7 +525,9 @@
 		return hash;
 	}
 	
-	public boolean equals(Object anOther) { 
+	public boolean equals(Object anOther) {
+		if(componentProject == null) return super.equals(anOther);  //If component factory instance, don't use project to compare
+		if(anOther == this) return true;
 		if(anOther instanceof IVirtualComponent) {
 			IVirtualComponent otherComponent = (IVirtualComponent) anOther;
 			return getProject().equals(otherComponent.getProject()) && 
@@ -399,12 +538,20 @@
 	}
 
 	public IVirtualReference getReference(String aComponentName) {
+		if(referenceMap == null){
+			referenceMap = new Hashtable<String, IVirtualReference>();
+		} else if(referenceMap.containsKey(aComponentName)) {
+			return (IVirtualReference) referenceMap.get(aComponentName);
+		}
+		
 		IVirtualReference[] refs = getReferences();
 		for (int i = 0; i < refs.length; i++) {
 			IVirtualReference reference = refs[i];
 			if( reference.getReferencedComponent() != null ){
-				if (reference.getReferencedComponent().getName().equals(aComponentName))
+				if (reference.getReferencedComponent().getName().equals(aComponentName)) {
+					referenceMap.put(aComponentName, reference);
 					return reference;
+				}
 			}
 		}
 		return null;
@@ -429,10 +576,11 @@
 	 * @return array of components
 	 */
 	public IVirtualComponent[] getReferencingComponents() {
-		IProject[] handles =  DependencyGraphManager.getInstance().getDependencyGraph().getReferencingComponents(getProject());
-		IVirtualComponent[] result = new IVirtualComponent[handles.length];
-		for (int i=0; i<handles.length; i++)
-			result[i] = ComponentCore.createComponent(handles[i]);
+		Set<IProject> projects = IDependencyGraph.INSTANCE.getReferencingComponents(getProject());
+		IVirtualComponent[] result = new IVirtualComponent[projects.size()];
+		Iterator<IProject> i = projects.iterator();
+		for (int j=0; j<projects.size(); j++)
+			result[j] = ComponentCore.createComponent(i.next());
 		return result;
 	}
 	
@@ -445,13 +593,18 @@
 	public void removeReference(IVirtualReference aReference) {
 		StructureEdit core = null;
 		try {
-			core = StructureEdit.getStructureEditForWrite(getProject());
-			if (core == null || aReference == null)
+			if(aReference == null)
 				return;
+			core = StructureEdit.getStructureEditForWrite(getProject());
+			if (core == null) {
+				return;
+			}
+			clearCache();
 			WorkbenchComponent component = core.getComponent();
 			ReferencedComponent refComponent = getWorkbenchReferencedComponent(aReference, component);
-			if (component != null && refComponent != null)
+			if (component != null && refComponent != null) {
 				component.getReferencedComponents().remove(refComponent);
+			}
 		} finally {
 			if(core != null) {
 				core.saveIfNecessary(null);
@@ -472,25 +625,26 @@
 		if (aReference == null || aReference.getReferencedComponent() == null || component == null)
 			return null;
 		List referencedComponents = component.getReferencedComponents();
+		URI uri = ReferenceResolverUtil.getDefault().getResolver(aReference).resolve(aReference).getHandle(); 
 		for (int i=0; i<referencedComponents.size(); i++) {
 			ReferencedComponent ref = (ReferencedComponent) referencedComponents.get(i);
-			if (!aReference.getReferencedComponent().isBinary()) {
-				if (ref.getHandle().equals(ModuleURIUtil.fullyQualifyURI(aReference.getReferencedComponent().getProject())))
-					return ref;	
-			} 
-			else {
-				if (ref.getHandle().equals(ModuleURIUtil.archiveComponentfullyQualifyURI(aReference.getReferencedComponent().getName())))
-					return ref;
-			}	
+			if( ref.getHandle().equals(uri))
+				return ref;
 		}
 		return null;
 	}
 	
+	protected boolean shouldCacheReferences() {
+		return true;
+	}
 	
 	/**
 	 * @return IVirtualReference[] - All the references of this component, including potentially deleted references
 	 */
 	public IVirtualReference[] getAllReferences() { 
+		if(shouldCacheReferences() && allReferences != null)
+			return allReferences;
+		
 		StructureEdit core = null;
 		List references = new ArrayList();
 		try {
@@ -504,21 +658,78 @@
 						if (referencedComponent==null) 
 							continue;
 						IVirtualReference vReference = StructureEdit.createVirtualReference(this, referencedComponent);
-						if( vReference != null ){
+						if (vReference != null && vReference.getReferencedComponent() != null){
 							vReference.setArchiveName( referencedComponent.getArchiveName() );
+							references.add(vReference);
 						}
-						if (vReference != null && vReference.getReferencedComponent() != null)
-							references.add(vReference); 
+						else {
+							if (vReference != null && vReference.getReferencedComponent() == null){
+								// If none of the resolvers used by StructureEdit.createVirtualReference could find a reference with 
+								// a non-null referenced component, try to find it ourselves.  
+								vReference = getReferenceForNonResolvableComponent(this, referencedComponent);
+							}
+							if (vReference != null && vReference.getReferencedComponent() != null){
+								references.add(vReference);
+							}
+						}
 					}
 				}
 			}
-			return (IVirtualReference[]) references.toArray(new IVirtualReference[references.size()]);
+			allReferences = (IVirtualReference[]) references.toArray(new IVirtualReference[references.size()]);
+			return allReferences;
 		} finally {
 			if(core != null)
 				core.dispose();
 		}		
 	}
+		
 	
+	/*
+	 * Similar to org.eclipse.wst.common.componentcore.resolvers.DefaultReferenceResolver#resolve(IVirtualComponent context, ReferencedComponent referencedComponent)
+	 */
+	private IVirtualReference getReferenceForNonResolvableComponent(VirtualComponent context, ReferencedComponent referencedComponent) {
+		IVirtualComponent targetComponent = null;
+		IProject targetProject = null;
+		URI uri = referencedComponent.getHandle();
+		if (uri == null)
+			return null;
+		boolean isClassPathURI = ModuleURIUtil.isClassPathURI(uri);
+		if( !isClassPathURI ){
+			try { 
+				targetProject = StructureEdit.getContainingProject(uri, false);
+			} catch(UnresolveableURIException uurie) {
+				return null;
+			} 
+
+			targetComponent = new NonResolvableVirtualComponent(targetProject, null);
+			VirtualReference vRef = new VirtualReference(context, targetComponent, referencedComponent.getRuntimePath(), referencedComponent.getDependencyType().getValue());
+			vRef.setArchiveName(referencedComponent.getArchiveName());
+			return vRef;
+		}
+		return null;
+	}
+
+	/**
+	 * This is an internal method and should not be called except by the 
+	 * {@link org.eclipse.wst.common.component.internal.builder.DependencyGraphImpl}
+	 */
+	public void flushCache() {
+		clearCache();
+	}
+	
+	protected void clearCache() {
+		name = null;
+		deploymentName = null;
+		if(referenceMap != null) {
+			referenceMap.clear();
+		}
+		rawReferencesArray = null;
+		referencesArray = null;
+		metaProperties = null;
+		cacheMetaResources = null;
+		allReferences = null;
+	}
+		
 	public String toString() {
 		return componentProject.toString();
 	}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualContainer.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualContainer.java
index 51f4f15..b775aca 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualContainer.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualContainer.java
@@ -72,29 +72,29 @@
 	}
 
 	public IVirtualResource findMember(IPath aPath, int theSearchFlags) {
-
 		StructureEdit structureEdit = null;
 		try {
-
 			structureEdit = StructureEdit.getStructureEditForRead(getProject());
-			WorkbenchComponent component = structureEdit.getComponent();
-			if (null != component) {
-				ResourceTreeRoot root = ResourceTreeRoot.getDeployResourceTreeRoot(component);
-				ComponentResource[] resources = root.findModuleResources(getRuntimePath().append(aPath), ResourceTreeNode.CREATE_NONE);
-
-				for (int i = 0; i < resources.length; i++) {
-				// return the resources corresponding to the root, not any of the children if its a folder
-					if (resources[i].getRuntimePath().equals(getRuntimePath().append(aPath))) {
-						IResource platformResource = getProject().findMember(resources[i].getSourcePath());
-						if (platformResource == null)
-							platformResource = ResourcesPlugin.getWorkspace().getRoot().findMember(resources[i].getSourcePath());
-						if (platformResource != null) {
-							switch (platformResource.getType()) {
-								case IResource.FOLDER :
-								case IResource.PROJECT :
-									return ComponentCore.createFolder(getProject(), getRuntimePath().append(aPath));
-								case IResource.FILE :
-									return new VirtualFile(getProject(), getRuntimePath().append(aPath));
+			if(structureEdit != null){
+				WorkbenchComponent component = structureEdit.getComponent();
+				if (null != component) {
+					ResourceTreeRoot root = ResourceTreeRoot.getDeployResourceTreeRoot(component);
+					ComponentResource[] resources = root.findModuleResources(getRuntimePath().append(aPath), ResourceTreeNode.CREATE_NONE);
+	
+					for (int i = 0; i < resources.length; i++) {
+					// return the resources corresponding to the root, not any of the children if its a folder
+						if (resources[i].getRuntimePath().equals(getRuntimePath().append(aPath))) {
+							IResource platformResource = getProject().findMember(resources[i].getSourcePath());
+							if (platformResource == null)
+								platformResource = ResourcesPlugin.getWorkspace().getRoot().findMember(resources[i].getSourcePath());
+							if (platformResource != null) {
+								switch (platformResource.getType()) {
+									case IResource.FOLDER :
+									case IResource.PROJECT :
+										return ComponentCore.createFolder(getProject(), getRuntimePath().append(aPath));
+									case IResource.FILE :
+										return new VirtualFile(getProject(), getRuntimePath().append(aPath));
+								}
 							}
 						}
 					}
@@ -352,11 +352,14 @@
 
 	private IVirtualResource createVirtualResource(ComponentResource aComponentResource) {
 		IResource resource = StructureEdit.getEclipseResource(aComponentResource);
-		switch (resource.getType()) {
-			case IResource.FILE :
-				return ComponentCore.createFile(getProject(), aComponentResource.getRuntimePath());
-			case IResource.FOLDER :
-				return ComponentCore.createFolder(getProject(), aComponentResource.getRuntimePath());
+		if (resource != null)
+		{
+			switch (resource.getType()) {
+				case IResource.FILE :
+					return ComponentCore.createFile(getProject(), aComponentResource.getRuntimePath());
+				case IResource.FOLDER :
+					return ComponentCore.createFolder(getProject(), aComponentResource.getRuntimePath());
+			}
 		}
 		return null;
 	}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java
index ee9ec04..9aa66c6 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java
@@ -119,4 +119,15 @@
 		//Default
 	}
 
+	@Override
+	public Object getAdapter(Class adapter) { 
+		if( java.io.File.class.equals(adapter)) {
+			IFile file = getUnderlyingFile();
+			return file.getLocation().toFile();
+		}
+		if( IFile.class.equals(adapter)) {
+			return getUnderlyingFile();
+		}
+		return null;
+	}
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFolder.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFolder.java
index b3fa912..a3a1617 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFolder.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFolder.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * Copyright (c) 2003, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -24,12 +24,12 @@
 import org.eclipse.wst.common.componentcore.internal.ComponentResource;
 import org.eclipse.wst.common.componentcore.internal.StructureEdit;
 import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
+import org.eclipse.wst.common.componentcore.resources.ITaggedVirtualResource;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
 import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
 
-public class VirtualFolder extends VirtualContainer implements IVirtualFolder { 
-
+public class VirtualFolder extends VirtualContainer implements IVirtualFolder, ITaggedVirtualResource { 
 
 	/**
 	 * p> Creates an unassigned mapping contained by the component identified by aComponentHandle
@@ -147,4 +147,61 @@
 		}
 	}
 
+
+	public boolean tagResource(IPath aProjectRelativeLocation, String tag, IProgressMonitor monitor) {
+		StructureEdit moduleCore = null;
+		try {
+			if (aProjectRelativeLocation.isUNC()){
+				aProjectRelativeLocation = aProjectRelativeLocation.makeUNC(false);
+			}
+			IPath absolutePath = aProjectRelativeLocation.makeAbsolute();
+			moduleCore = StructureEdit.getStructureEditForWrite(getProject());
+			WorkbenchComponent aComponent = moduleCore.getComponent();
+			ComponentResource[] resources = aComponent.findResourcesByRuntimePath(getRuntimePath());
+			for (ComponentResource resource:resources){
+				if (resource.getSourcePath().equals(absolutePath)){
+					resource.setTag(tag);
+					return true;
+				}
+			}
+			return false;
+		}
+		finally {
+			if (moduleCore != null) {
+				moduleCore.saveIfNecessary(monitor);
+				moduleCore.dispose();
+			}
+		}
+		
+	}
+
+	public IPath getFirstTaggedResource(String tag) {
+		WorkbenchComponent aComponent = null;
+		IPath path = null;
+		
+		aComponent = getReadOnlyComponent();
+		ComponentResource[] resources = aComponent.findResourcesByRuntimePath(getRuntimePath());
+		for (ComponentResource resource:resources){
+			if (tag.equals(resource.getTag())){
+				path = resource.getSourcePath();
+				break;
+			}
+		}		
+		return path;
+	}
+
+	public IPath[] getTaggedResources(String tag) {
+		WorkbenchComponent aComponent = null;
+		List<IPath> paths = new ArrayList<IPath>();
+		
+		aComponent = getReadOnlyComponent();
+		ComponentResource[] resources = aComponent.findResourcesByRuntimePath(getRuntimePath());
+		for (ComponentResource resource:resources){
+			if (tag.equals(resource.getTag())){
+				paths.add(resource.getSourcePath());
+			}
+		}		
+		return paths.toArray(new IPath[0]);
+	}
+
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualReference.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualReference.java
index 007b1ce..9e2c736 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualReference.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualReference.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -16,15 +16,16 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.wst.common.componentcore.internal.ComponentcorePackage;
-import org.eclipse.wst.common.componentcore.internal.DependencyType;
 import org.eclipse.wst.common.componentcore.internal.ReferencedComponent;
 import org.eclipse.wst.common.componentcore.internal.StructureEdit;
 import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
-import org.eclipse.wst.common.componentcore.internal.impl.ModuleURIUtil;
+import org.eclipse.wst.common.componentcore.resolvers.IReferenceResolver;
+import org.eclipse.wst.common.componentcore.resolvers.ReferenceResolverUtil;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.frameworks.internal.HashUtil;
 
 public class VirtualReference implements IVirtualReference {
 	
@@ -33,24 +34,31 @@
 	private IPath runtimePath;
 	private int dependencyType;
 	private String archiveName;
-
+	private boolean derived;
 	public VirtualReference() {
 		
 	} 
 	
 	public VirtualReference(IVirtualComponent anEnclosingComponent, IVirtualComponent aReferencedComponent) {
-		this(anEnclosingComponent, aReferencedComponent, new Path(String.valueOf(IPath.SEPARATOR)), DEPENDENCY_TYPE_USES); 
+		this(anEnclosingComponent, aReferencedComponent, new Path(String.valueOf(IPath.SEPARATOR)), DEPENDENCY_TYPE_USES, false); 
 	}
 	
 	public VirtualReference(IVirtualComponent anEnclosingComponent, IVirtualComponent aReferencedComponent, IPath aRuntimePath) {
-		this(anEnclosingComponent, aReferencedComponent, aRuntimePath, DEPENDENCY_TYPE_USES);
+		this(anEnclosingComponent, aReferencedComponent, aRuntimePath, DEPENDENCY_TYPE_USES, false);
 	}
 
-	public VirtualReference(IVirtualComponent anEnclosingComponent, IVirtualComponent aReferencedComponent, IPath aRuntimePath, int aDependencyType) {
+	public VirtualReference(IVirtualComponent anEnclosingComponent, IVirtualComponent aReferencedComponent, 
+			IPath aRuntimePath, int aDependencyType) {
+		this(anEnclosingComponent, aReferencedComponent, aRuntimePath, aDependencyType, false);
+	}
+	
+	public VirtualReference(IVirtualComponent anEnclosingComponent, IVirtualComponent aReferencedComponent, 
+			IPath aRuntimePath, int aDependencyType, boolean isDerived) {
 		enclosingComponent = anEnclosingComponent;
 		referencedComponent = aReferencedComponent;
 		runtimePath = aRuntimePath;
 		dependencyType = aDependencyType;
+		derived = isDerived;
 	}
 
 	public void create(int updateFlags, IProgressMonitor aMonitor) { 
@@ -59,14 +67,8 @@
 			core = StructureEdit.getStructureEditForWrite(enclosingComponent.getProject());
 			WorkbenchComponent component = core.getComponent();
 			List referencedComponents = component.getReferencedComponents();
-			ReferencedComponent refComp = ComponentcorePackage.eINSTANCE.getComponentcoreFactory().createReferencedComponent();
-			if( !referencedComponent.isBinary())
-				refComp.setHandle(ModuleURIUtil.fullyQualifyURI(referencedComponent.getProject()));
-			else
-				refComp.setHandle(ModuleURIUtil.archiveComponentfullyQualifyURI(referencedComponent.getName())); 
-			refComp.setRuntimePath(runtimePath);
-			refComp.setDependencyType(DependencyType.get(dependencyType));
-			refComp.setArchiveName(archiveName);
+			IReferenceResolver resolver = ReferenceResolverUtil.getDefault().getResolver(this);
+			ReferencedComponent refComp = resolver.resolve(this);
 			if(!referencedComponents.contains(refComp)){
 				referencedComponents.add(refComp);
 			}
@@ -123,10 +125,9 @@
 			ReferencedComponent actualReferencedComponent = enclosingCore.findReferencedComponent(enclosingComp, refComp);
 			if (actualReferencedComponent != null) {
 				referencedComponent = aReferencedComponent;
-				if(!referencedComponent.isBinary())
-					actualReferencedComponent.setHandle(ModuleURIUtil.fullyQualifyURI(referencedComponent.getProject()));
-				else
-					actualReferencedComponent.setHandle(ModuleURIUtil.archiveComponentfullyQualifyURI(referencedComponent.getName()));
+				IReferenceResolver resolver = ReferenceResolverUtil.getDefault().getResolver(this);
+				URI uri = resolver.resolve(this).getHandle();
+				actualReferencedComponent.setHandle(uri);
 				actualReferencedComponent.setDependentObject(dependentObject);
 			}
 		} finally {
@@ -148,4 +149,35 @@
 	public void setArchiveName(String archiveName) {
 		this.archiveName = archiveName;
 	}
+	
+	public boolean isDerived() {
+		return derived;
+	}
+	
+	public void setDerived(boolean val) {
+		derived = val;
+	}
+
+	public boolean equals(Object anOther) {
+		if(anOther == null || !(anOther instanceof IVirtualReference)) return false;
+		if(anOther == this) return true;
+		IVirtualReference otherRef = (IVirtualReference) anOther;
+		return (getArchiveName() != null ? getArchiveName().equals(otherRef.getArchiveName()) : (otherRef.getArchiveName() == null ? true : false)) && 
+			   getRuntimePath().equals(otherRef.getRuntimePath()) && 
+			   getEnclosingComponent().equals(otherRef.getEnclosingComponent()) && 
+			   getReferencedComponent().equals(otherRef.getReferencedComponent()) && 
+			   getDependencyType() == otherRef.getDependencyType();
+		
+	}
+
+	public int hashCode() {
+		
+		int hash = HashUtil.SEED;
+		hash = HashUtil.hash(hash, getArchiveName());
+		hash = HashUtil.hash(hash, getRuntimePath());
+		hash = HashUtil.hash(hash, getEnclosingComponent());
+		hash = HashUtil.hash(hash, getReferencedComponent());
+		hash = HashUtil.hash(hash, getDependencyType());
+		return hash;
+	}
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualResource.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualResource.java
index 541a609..c8815de 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualResource.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualResource.java
@@ -297,20 +297,25 @@
 		StructureEdit moduleCore = null;
 		try {
 			moduleCore = StructureEdit.getStructureEditForWrite(getProject());
-			WorkbenchComponent component = moduleCore.getComponent();
-			ResourceTreeRoot root = ResourceTreeRoot.getDeployResourceTreeRoot(component);
-			ComponentResource[] resources = root.findModuleResources(getRuntimePath(), ResourceTreeNode.CREATE_NONE);
-			if (resources.length > 0) {
-				for (int resourceIndx = 0; resourceIndx < resources.length; resourceIndx++) {
-					if (aProjectRelativeLocation.makeAbsolute().equals(resources[resourceIndx].getSourcePath())) {
-						component.getResources().remove(resources[resourceIndx]);
+			if( moduleCore != null ) {
+				WorkbenchComponent component = moduleCore.getComponent();
+				if (component != null) {
+					ResourceTreeRoot root = ResourceTreeRoot.getDeployResourceTreeRoot(component);
+					ComponentResource[] resources = root.findModuleResources(getRuntimePath(), ResourceTreeNode.CREATE_NONE);
+					if (resources.length > 0) {
+						for (int resourceIndx = 0; resourceIndx < resources.length; resourceIndx++) {
+							if (aProjectRelativeLocation.makeAbsolute().equals(resources[resourceIndx].getSourcePath())) {
+								component.getResources().remove(resources[resourceIndx]);
+							}
+						}
 					}
 				}
 			}
 		}
 		finally {
 			if (moduleCore != null) {
-				moduleCore.saveIfNecessary(monitor);
+				if (getComponent() != null)
+					moduleCore.saveIfNecessary(monitor);
 				moduleCore.dispose();
 			}
 		}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentImplManager.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentImplManager.java
index 2cc2fdc..c9755c6 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentImplManager.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentImplManager.java
@@ -10,17 +10,25 @@
  *******************************************************************************/
 package org.eclipse.wst.common.componentcore.internal.util;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.Map;
-
+import java.util.Set;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResourceDelta;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.ISafeRunnable;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.SafeRunner;
 import org.eclipse.jem.util.RegistryReader;
+import org.eclipse.jem.util.emf.workbench.ISynchronizerExtender;
+import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
+import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
 import org.eclipse.wst.common.componentcore.ModuleCoreNature;
 import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
 import org.eclipse.wst.common.componentcore.internal.resources.ResourceTimestampMappings;
@@ -31,16 +39,20 @@
 import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
 import org.eclipse.wst.common.project.facet.core.IProjectFacet;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
 
-public class ComponentImplManager  {
+
+
+public class ComponentImplManager implements ISynchronizerExtender{
 
 	private static final String NO_FACETS = "NONE";//$NON-NLS-1$
-	
+
 	private static final String COMPONENT_IMPL_EXTENSION_POINT = "componentimpl"; //$NON-NLS-1$
 	private static final String TAG_COMPONENT_IMPL = "componentimpl"; //$NON-NLS-1$
 	private static final String ATT_TYPE = "typeID"; //$NON-NLS-1$
 	private static final String ATT_CLASS = "class"; //$NON-NLS-1$
+	private static final String EXTENDED_ELEMENT="extendedTypeID"; //$NON-NLS-1$
 
 	private static final ComponentImplManager instance = new ComponentImplManager();
 //	private static final Object LOAD_FAILED = new Object();
@@ -48,7 +60,7 @@
 	private final Map/* <String, ComponentImplDescriptor> */ descriptors = new Hashtable();
 
 	private final Map/* <ComponentImplDescriptor, IComponentImplFactory> */ instances = new Hashtable();
-	private final ResourceTimestampMappings factoryMap = new ResourceTimestampMappings();
+	private ArrayList<HashSet> sortedDescriptorsKeyList = new ArrayList<HashSet>();
 
 	/**
 	 * @return Returns the instance.
@@ -67,13 +79,25 @@
 
 			public void run() throws Exception {
 				new ComponentImplRegistryReader().readRegistry();
-			}
+				//sort descriptors keys by size, bigger size is at lower index
+				if( descriptors != null ){
 
+					sortedDescriptorsKeyList.addAll(descriptors.keySet());
+					
+					final Comparator<HashSet> comp = new Comparator<HashSet>() {
+						public int compare(final HashSet descriptor1, final HashSet descriptor2) {
+							if( descriptor1.size() == descriptor2.size() )
+								return 0;
+							return descriptor1.size() < descriptor2.size() ? 1 : -1;
+						}
+					};
+					Collections.sort(sortedDescriptorsKeyList, comp);
+				}
+			}
 		});
 	}
-
-
-	private IComponentImplFactory getComponentImplFactory(String typeID) {
+	
+	private IComponentImplFactory getComponentImplFactory(HashSet typeID) {
 
 		ComponentImplDescriptor descriptor = (ComponentImplDescriptor) descriptors.get(typeID);
 		IComponentImplFactory factory = null;
@@ -93,102 +117,318 @@
 		}
 		return factory;
 	}
-	 
-	private IComponentImplFactory findFactoryForProject(IProject project){
-		try {
-			IComponentImplFactory factory = null;		
-			
-			if( !factoryMap.hasChanged(project) ) {				
+	
+	
 
-				if( factoryMap.hasCacheError(project))
-					return null;
-				
-				if( factoryMap.hasCacheData(project)) 
-					return (IComponentImplFactory) factoryMap.getData(project);
-			} 
-			
+	private IComponentImplFactory findFactoryForProject(IProject project, Map descriptors){
+		try {
+			IComponentImplFactory factory = ComponentCacheManager.instance().getComponentImplFactory(project);
+
+			if(factory != null)
+				return factory;
+
 			IFacetedProject facetedProject = ProjectFacetsManager.create(project);
 			if (facetedProject == null){
-				factory = getComponentImplFactory(NO_FACETS);
-				factoryMap.mark(project, factory);
+				HashSet set = new HashSet();
+				set.add(NO_FACETS);
+				factory = getComponentImplFactory(set);
+				ComponentCacheManager.instance().setComponentImplFactory(project, factory);
 				return factory;
 			}
-			Iterator keys = descriptors.keySet().iterator();
-			while (keys.hasNext()) {
-				String typeID = (String) keys.next();
-				if(typeID.equals(NO_FACETS)){
-					continue;
-				}
-				try {
-					IProjectFacet projectFacet = ProjectFacetsManager.getProjectFacet(typeID);
-					if (projectFacet != null && facetedProject.hasProjectFacet(projectFacet)){
-						factory = getComponentImplFactory(typeID);
-						if(null != factory){
-							factoryMap.mark(project, factory);
-							return factory;
-						}
-					}
-				} catch (Exception e) {
-					continue;
-				}
-			}
-			
+			return findFactorySupportingFacetsForProject(facetedProject);
+
 		} catch (Exception e) {
 			ModulecorePlugin.logError(0, "Returning null factory for project: " + project, e); //$NON-NLS-1$
-			factoryMap.markError(project);
+			ComponentCacheManager.instance().markErrorComponentImplFactory(project);
 		}
 		return null;
 	}
-	 
+	
+		
+	private IComponentImplFactory findFactorySupportingFacetsForProject(IFacetedProject facetedProject){
+		Set<IProjectFacetVersion> projectFacets = facetedProject.getProjectFacets();
+
+		IComponentImplFactory factory = null;	
+
+		if( sortedDescriptorsKeyList != null ){
+			for( HashSet key : sortedDescriptorsKeyList ){
+				
+				boolean invalidDescriptor = false;
+				Iterator iterator = key.iterator();
+
+				while (iterator.hasNext()) {
+
+					String typeID = (String) iterator.next();
+					IProjectFacet projectFacet = null;
+					try{
+						projectFacet = ProjectFacetsManager.getProjectFacet(typeID);
+					}catch(Exception e){
+						invalidDescriptor = true;
+						break;
+					}
+					//if a project does not have a facet supported by this type, return 
+					if (projectFacet != null && !facetedProject.hasProjectFacet(projectFacet)){
+						invalidDescriptor = true;
+						break;
+					}
+				}
+				if( !invalidDescriptor ){
+					factory = getComponentImplFactory(key);
+					if(null != factory){
+						ComponentCacheManager.instance().setComponentImplFactory(facetedProject.getProject(), factory);
+						return factory;
+					}
+				}
+			}
+		}
+		return null;
+	}
+
 	
 	
 	public IVirtualFolder createFolder(IProject aProject, IPath aRuntimePath){
 		try {
-			IComponentImplFactory factory = findFactoryForProject(aProject);
+			IComponentImplFactory factory = findFactoryForProject(aProject, descriptors);
 			if(null != factory){
 				return factory.createFolder(aProject, aRuntimePath);
 			}
 		} catch (Exception e) {
 			// Just return a default folder
 		}
+		ComponentCacheManager.instance().setComponentImplFactory(aProject, null);
 		return new VirtualFolder(aProject, aRuntimePath);
 	}
 
 	public IVirtualComponent createComponent(IProject project) {
+		return createComponent(project, true);
+	}
+
+	public IVirtualComponent createComponent(IProject project, boolean checkSettings) {
 		try {
-			IComponentImplFactory factory = findFactoryForProject(project);
+			IVirtualComponent component = ComponentCacheManager.instance().getComponent(project);
+			if(component != null) {
+				return component;
+			}		
+
+			IComponentImplFactory factory = findFactoryForProject(project, descriptors);
 			if(null != factory){
-				return factory.createComponent(project);
+				component = factory.createComponent(project);
+				if(component != null) {
+					ComponentCacheManager.instance().setComponent(project, component);
+					registerListener(project);
+				}
+				return component;
 			}
 		} catch (Exception e) {
 			// Just return a default component
 		}
-		if (!ModuleCoreNature.isFlexibleProject(project)){
-			return null;
+		if(checkSettings) {
+			if (!ModuleCoreNature.isFlexibleProject(project)){
+				return null;
+			}
 		}
-		return new VirtualComponent(project, new Path("/")); //$NON-NLS-1$
+		else {
+			if (ModuleCoreNature.getModuleCoreNature(project) == null){
+				return null;
+			}
+		}
+		IVirtualComponent component = new VirtualComponent(project, new Path("/")); //$NON-NLS-1$
+		if(component != null) {
+			ComponentCacheManager.instance().setComponentImplFactory(project, null);
+			ComponentCacheManager.instance().setComponent(project, component);
+			registerListener(project);
+		}
+
+		return component;
 	}
 
 	public IVirtualComponent createArchiveComponent(IProject aProject, String aComponentName) {
+		return createArchiveComponent(aProject, aComponentName, new Path("/"));
+	}
+	
+	public IVirtualComponent createArchiveComponent(IProject aProject, String aComponentName, IPath path) {
+		path = path == null ? new Path("/") : path; //$NON-NLS-1$
 		try {
-			IComponentImplFactory factory = findFactoryForProject(aProject);
+			IVirtualComponent component = ComponentCacheManager.instance().getArchiveComponent(aProject, aComponentName);
+			if(component != null)
+				return component;
+
+			if(!ComponentCacheManager.instance().isValidComponentImplFactory(aProject)) {
+				registerListener(aProject);
+			}
+
+			IComponentImplFactory factory = findFactoryForProject(aProject, descriptors);
 			if(null != factory){
-				return factory.createArchiveComponent(aProject, aComponentName, new Path("/")); //$NON-NLS-1$
+				IVirtualComponent archiveComponent = factory.createArchiveComponent(aProject, aComponentName, path);
+				ComponentCacheManager.instance().setArchiveComponent(aProject, aComponentName, archiveComponent);
+				return archiveComponent;
 			}
 		} catch (Exception e) {
 			// Just return a default archive component
 		}
-		return new VirtualArchiveComponent(aProject, aComponentName, new Path("/")); //$NON-NLS-1$
+		ComponentCacheManager.instance().setComponentImplFactory(aProject, null);
+		IVirtualComponent archiveComponent = new VirtualArchiveComponent(aProject, aComponentName, path); //$NON-NLS-1$
+		ComponentCacheManager.instance().setArchiveComponent(aProject, aComponentName, archiveComponent);
+		return archiveComponent;
 	}
 	
+	private void registerListener(IProject aProject) {
+		ProjectResourceSet resSet = getResourceSet(aProject);
+		if (resSet == null || resSet.getSynchronizer() == null)
+			return;
+		resSet.getSynchronizer().addExtender(this);
+	}
+
+	protected ProjectResourceSet getResourceSet(IProject proj) {
+		return (ProjectResourceSet)WorkbenchResourceHelperBase.getResourceSet(proj);
+	}
+
+	public void projectChanged(IResourceDelta delta) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public synchronized void projectClosed() {
+		ComponentCacheManager.instance().clearCache();
+	}
+
+	private static class ComponentCacheManager  {
+		private static final ComponentCacheManager instance = new ComponentCacheManager();
+
+		private final ResourceTimestampMappings factoryMap = new ResourceTimestampMappings();	
+		private final Map <IProject , IVirtualComponent> componentsMap = new Hashtable<IProject , IVirtualComponent>();
+		private final Map <IProject , Map<String, IVirtualComponent>> componentsArchivesMap = new Hashtable<IProject , Map<String, IVirtualComponent>>();
+
+		private Object cacheLock = new Object();
+
+		public ComponentCacheManager() {}
+
+		public static ComponentCacheManager instance() {
+			return instance;
+		}
+
+		public IComponentImplFactory getComponentImplFactory(IProject project) {
+			synchronized (cacheLock) {
+				if(isValidComponentImplFactory(project)) {
+					Object data = factoryMap.getData(project);
+					if(data instanceof IComponentImplFactory)
+						return (IComponentImplFactory) data;
+				}
+				return null;
+			}
+		}
+
+		public boolean isValidComponentImplFactory(IProject project) {
+			synchronized (cacheLock) {
+				if(!factoryMap.hasChanged(project) && !factoryMap.hasCacheError(project) && factoryMap.hasCacheData(project))
+					return true;
+				return false;
+			}
+		}
+
+		public void setComponentImplFactory(IProject project, IComponentImplFactory factory){
+			synchronized (cacheLock) {
+				if(factory != null) {
+					factoryMap.mark(project, factory);
+				}
+				else {
+					factoryMap.mark(project, project);
+				}
+			}
+		}
+
+		public void markErrorComponentImplFactory(IProject project){
+			synchronized (cacheLock) {
+				factoryMap.markError(project);
+			}
+		}
+
+		public IVirtualComponent getComponent(IProject project) {
+			synchronized (cacheLock) {
+				if(componentsMap.containsKey(project)) {
+					if(isValidComponentImplFactory(project)) {
+						return componentsMap.get(project);
+					} else {
+						componentsMap.remove(project);
+					}
+				}
+				return null;
+			}
+		}
+
+		public void setComponent(IProject project, IVirtualComponent component) {
+			synchronized (cacheLock) {
+				if(component != null)
+					componentsMap.put(project, component);
+			}
+		}
+
+		public IVirtualComponent getArchiveComponent(IProject project, String componentName) {
+			synchronized (cacheLock) {
+				Map archives = getComponentArchives(project);			
+				if(isValidComponentImplFactory(project)) {
+					if(archives.containsKey(componentName)) {
+						return (IVirtualComponent) archives.get(componentName);
+					}
+				}
+				else {
+					archives = new Hashtable<String, IVirtualComponent>();
+					componentsArchivesMap.put(project, archives);
+				}
+				return null;
+			}
+		}
+
+		public Map getComponentArchives(IProject project) {
+			synchronized (cacheLock) {
+				Map archives = componentsArchivesMap.get(project);
+				if(archives == null) {
+					archives = new Hashtable<String, IVirtualComponent>();
+					componentsArchivesMap.put(project, archives);
+				}
+				return archives;
+			}
+		}
+
+		public void setArchiveComponent(IProject project, String componentName, IVirtualComponent archiveComponent) {
+			synchronized (cacheLock) {
+				if(archiveComponent != null) {
+					Map archives = ComponentCacheManager.instance().getComponentArchives(project);
+					archives.put(componentName, archiveComponent);
+				}
+			}
+		}
+
+
+		public void clearCache() {
+			Object[] components = null;
+			Object[] componentsArchives = null;
+			synchronized (cacheLock) {
+				components = (Object[]) componentsMap.values().toArray();
+				componentsMap.clear();
+				
+				componentsArchives = (Object[]) componentsArchivesMap.values().toArray();
+				componentsArchivesMap.clear();
+			}
+			
+			for(int i = 0; i < components.length; i++) {
+				if(components[i] instanceof VirtualComponent)
+					((VirtualComponent)components[i]).dispose();
+			}
+			
+			for(int i = 0; i < componentsArchives.length; i++) {
+				if(componentsArchives[i] instanceof VirtualComponent)
+					((VirtualComponent)componentsArchives[i]).dispose();
+			}
+		}
+	}
+
 	private class ComponentImplDescriptor {
 
 		private final IConfigurationElement element;
-		private final String type;
-
+		
 		public ComponentImplDescriptor(IConfigurationElement configElement) {
 			element = configElement;
-			type = element.getAttribute(ATT_TYPE);
 		}
 
 		/**
@@ -216,15 +456,6 @@
 
 			return factory[0];
 		}
-
-		/**
-		 * 
-		 * @return The type id of this ArtifactEdit definition
-		 */
-		public String getType() {
-			return type;
-		}
-
 	}
 	
 	private class ComponentImplRegistryReader extends RegistryReader {
@@ -244,9 +475,20 @@
 				 * the registry is initialized in the constructor of this type, other threads cannot
 				 * compete with readElement() for access to <i>descriptors</i>
 				 */
+				
+				HashSet<String> setOfIds = new HashSet<String>();
+				setOfIds.add( element.getAttribute(ATT_TYPE) );
+				
+				IConfigurationElement[] child = element.getChildren(EXTENDED_ELEMENT);
+				if( child.length > 0 ){
+					for( int i=0; i< child.length; i++ ){
+						setOfIds.add(child[i].getValue());
+					}
+				}
 				String type = element.getAttribute(ATT_TYPE);
 				if (type != null)
-					descriptors.put(element.getAttribute(ATT_TYPE), new ComponentImplDescriptor(element));
+					descriptors.put(setOfIds, new ComponentImplDescriptor(element));
+					//descriptors.put(element.getAttribute(ATT_TYPE), new ComponentImplDescriptor(element));
 				else
 					ModulecorePlugin.logError(0, "No type attribute is specified for " + //$NON-NLS-1$
 								ModulecorePlugin.PLUGIN_ID + "." + COMPONENT_IMPL_EXTENSION_POINT + //$NON-NLS-1$ 
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentResolver.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentResolver.java
index 94f8334..0dd0417 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentResolver.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentResolver.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
+ * Copyright (c) 2001, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -31,10 +31,10 @@
 import org.osgi.framework.Bundle;
 
 public class ComponentResolver implements URIResolverExtension {
-	private static boolean _DEBUG = "true".equals(Platform.getDebugOption("org.eclipse.wst.common.modulecore/ComponentResolver")); //$NON-NLS-1$ //$NON-NLS-2$ 
+	private static boolean _DEBUG = Boolean.valueOf(Platform.getDebugOption("org.eclipse.wst.common.modulecore/ComponentResolver")).booleanValue(); //$NON-NLS-1$ 
 	private static final String FILE_PROTOCOL = "file:///"; //$NON-NLS-1$
 	private static final String FILE_PROTOCOL2 = "file://"; //$NON-NLS-1$
-	private static final String ROOT_PATH_STRING = Path.ROOT.toString(); //$NON-NLS-1$
+	private static final String ROOT_PATH_STRING = Path.ROOT.toString();
 	private static final String HTTP_PROTOCOL = "http:"; //$NON-NLS-1$
 
 	/**
@@ -44,46 +44,33 @@
 	 * is the correct number. On Win32, java.io.File.toURL adds only 1 slash,
 	 * and on Unix it adds 2.
 	 * 
-	 * @param uri
-	 * @return The IFile for this file location
+	 * @param location
+	 * @return The IFile for this location
 	 */
-	private IFile recalculateFile(String uri) {
+	private IFile recalculateFile(String location) {
 		IFile file = null;
-		String location = null;
+		String uriLocation = null;
 
 		long time0 = -1;
 		if (_DEBUG)
 			time0 = System.currentTimeMillis();
-		if (uri.startsWith(HTTP_PROTOCOL)) {
-			IFile files[] = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(URI.create(uri));
-			for (int i = 0; i < files.length && file == null; i++) {
-				if (files[i].isAccessible()) {
-					file = files[i];
-				}
-			}
-			if (_DEBUG) {
-				System.out.println("\"" + uri + "\" findFilesForLocationURI:" + (System.currentTimeMillis() - time0));
-				time0 = System.currentTimeMillis();
-			}
+		if (location.startsWith(FILE_PROTOCOL)) {
+			uriLocation = location.substring(FILE_PROTOCOL.length());
+		}
+		else if (location.startsWith(FILE_PROTOCOL2)) {
+			uriLocation = location.substring(FILE_PROTOCOL2.length());
 		}
 		else {
-			if (uri.startsWith(FILE_PROTOCOL)) {
-				location = uri.substring(FILE_PROTOCOL.length());
-			}
-			else if (uri.startsWith(FILE_PROTOCOL2)) {
-				location = uri.substring(FILE_PROTOCOL2.length());
-			}
-			else {
-				location = uri;
-			}
-			IPath path = new Path(location);
-			IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(path);
-			for (int i = 0; i < files.length && file == null; i++) {
-				if (files[i].isAccessible()) {
-					file = files[i];
-				}
+			uriLocation = location;
+		}
+
+		IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(uriLocation));
+		for (int i = 0; i < files.length && file == null; i++) {
+			if (files[i].isAccessible()) {
+				file = files[i];
 			}
 		}
+
 		if (_DEBUG)
 			System.out.println("\"" + location + "\" findFilesForLocation:" + (System.currentTimeMillis() - time0));
 		return file;
@@ -107,9 +94,10 @@
 
 		/* Recompute the IFile, if needed, from the base location. */
 		if (file == null) {
-			if (baseLocation == null || baseLocation.length() == 0) {
+			// Generates Internal Error message if we continue with a http URI: org.eclipse.core.runtime.CoreException: No file system is defined for scheme: http
+			if (baseLocation == null || baseLocation.length() == 0 || baseLocation.startsWith("wbit:") || baseLocation.startsWith(HTTP_PROTOCOL)) { //$NON-NLS-1$
 				/*
-				 * We can't proceed if we lack both an IFile and a system
+				 * We can't proceed if we lack both an IFile and a valid filesystem
 				 * reference
 				 */
 				if (_DEBUG) {
@@ -191,6 +179,10 @@
 				IPath resolvedRuntimePath = null;
 				if (systemId.startsWith(ROOT_PATH_STRING)) {
 					resolvedRuntimePath = new Path(systemId);
+					/* https://bugs.eclipse.org/284017 - ComponentResolver does not resolve absolute references to the context root */
+					if (resolvedRuntimePath.segmentCount() > 1 && resolvedRuntimePath.segment(0).equals(ComponentUtilities.getServerContextRoot(file.getProject()))) {
+						resolvedRuntimePath = resolvedRuntimePath.removeFirstSegments(1);
+					}
 				}
 				else {
 					resolvedRuntimePath = new Path(virtualResources[i].getRuntimePath().removeLastSegments(1).append(systemId).toString());
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentUtilities.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentUtilities.java
index ba5afa0..6150ada 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentUtilities.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentUtilities.java
@@ -12,8 +12,11 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
+import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -23,6 +26,7 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
@@ -31,6 +35,7 @@
 import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.ModuleCoreNature;
 import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
+import org.eclipse.wst.common.componentcore.datamodel.properties.IServerContextRootDataModelProperties;
 import org.eclipse.wst.common.componentcore.internal.Property;
 import org.eclipse.wst.common.componentcore.internal.StructureEdit;
 import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
@@ -110,7 +115,7 @@
 
 
 	public static IFile findFile(IVirtualComponent comp, IPath aPath) throws CoreException {
-		if (comp == null || aPath == null)
+		if (comp == null || aPath == null || comp.isBinary())
 			return null;
 		IVirtualFolder root = comp.getRootFolder();
 		IVirtualResource file = root.findMember(aPath);
@@ -215,6 +220,18 @@
 		modHandlesList.addAll(targetComponentProjects);
 		model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, modHandlesList);
 		model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH,"/WEB-INF/lib"); //$NON-NLS-1$
+		if(modHandlesList != null){
+			Map map = new HashMap();
+			for(int i=0; i<modHandlesList.size();i++){
+				IVirtualComponent comp = (IVirtualComponent)modHandlesList.get(i);
+				String uri = comp.getName().replace(' ', '_') + ".jar";
+				map.put(comp, uri);
+			}
+			if(map.size() > 0){
+				model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP, map);
+			}
+		}
+		
 		return new CreateReferenceComponentsOp(model);
 	}
 
@@ -309,9 +326,19 @@
 	 * 
 	 * @param contextRoot string
 	 */
-	public static void setServerContextRoot(IProject project, String contextRoot) {
-		IVirtualComponent comp = ComponentCore.createComponent(project);
-		comp.setMetaProperty(IModuleConstants.CONTEXTROOT, contextRoot);
+	public static void setServerContextRoot(IProject project, String newContextRoot) {
+		
+		IDataModel model = DataModelFactory.createDataModel(IServerContextRootDataModelProperties.class);
+		model.setProperty(IServerContextRootDataModelProperties.PROJECT, project);
+		model.setStringProperty(IServerContextRootDataModelProperties.CONTEXT_ROOT,
+				newContextRoot);
+		
+		try {
+			model.getDefaultOperation().execute(new NullProgressMonitor(), null);
+		}
+		catch (ExecutionException e) {
+			org.eclipse.wst.common.componentcore.internal.ModulecorePlugin.logError(e);
+		}
 	}
 
 	/**
@@ -332,4 +359,5 @@
 			uri = reference.getRuntimePath() + "/" + reference.getReferencedComponent().getProject().getName() + extension; //$NON-NLS-1$
 		}
 		return uri;
-	}}
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentcoreAdapterFactory.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentcoreAdapterFactory.java
index 3716298..39b9c64 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentcoreAdapterFactory.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentcoreAdapterFactory.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: ComponentcoreAdapterFactory.java,v 1.6 2005/10/18 22:27:18 cbridgha Exp $
+ * $Id: ComponentcoreAdapterFactory.java,v 1.7 2011/08/10 21:40:14 rsanchez Exp $
  */
 package org.eclipse.wst.common.componentcore.internal.util;
 
@@ -66,7 +66,7 @@
 	}
 
 	/**
-	 * The switch the delegates to the <code>createXXX</code> methods.
+	 * The switch that delegates to the <code>createXXX</code> methods.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentcoreSwitch.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentcoreSwitch.java
index f556abc..74a7b67 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentcoreSwitch.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentcoreSwitch.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: ComponentcoreSwitch.java,v 1.6 2005/10/18 22:27:18 cbridgha Exp $
+ * $Id: ComponentcoreSwitch.java,v 1.8 2011/08/10 21:40:14 rsanchez Exp $
  */
 package org.eclipse.wst.common.componentcore.internal.util;
 
@@ -133,13 +133,13 @@
 	}
 
 	/**
-	 * Returns the result of interpretting the object as an instance of '<em>Workbench Component</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Workbench Component</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>Workbench Component</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Workbench Component</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
@@ -148,13 +148,13 @@
 	}
 
 	/**
-	 * Returns the result of interpretting the object as an instance of '<em>Component Resource</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Component Resource</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>Component Resource</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Component Resource</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
@@ -163,13 +163,13 @@
 	}
 
 	/**
-	 * Returns the result of interpretting the object as an instance of '<em>Component Type</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Component Type</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>Component Type</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Component Type</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
@@ -178,13 +178,13 @@
 	}
 
 	/**
-	 * Returns the result of interpretting the object as an instance of '<em>Property</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Property</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>Property</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Property</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
@@ -193,13 +193,13 @@
 	}
 
 	/**
-	 * Returns the result of interpretting the object as an instance of '<em>Referenced Component</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Referenced Component</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>Referenced Component</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Referenced Component</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
@@ -208,13 +208,13 @@
 	}
 
 	/**
-	 * Returns the result of interpretting the object as an instance of '<em>Project Components</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Project Components</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>Project Components</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Project Components</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
@@ -223,13 +223,13 @@
 	}
 
 	/**
-	 * Returns the result of interpretting the object as an instance of '<em>EObject</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch, but this is the last case anyway.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>EObject</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
 	 * @generated
 	 */
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/FacetedProjectUtilities.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/FacetedProjectUtilities.java
new file mode 100644
index 0000000..98263ca
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/FacetedProjectUtilities.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.util;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IProjectFacet;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+
+public class FacetedProjectUtilities {
+	public static boolean isProjectOfType(IProject project, String typeID) {
+		return getProjectFacetVersion(project, typeID) != null;
+	}
+
+	public static IProjectFacetVersion getProjectFacetVersion(IProject project, String typeID){
+		IFacetedProject facetedProject = null;
+		try {
+			facetedProject = ProjectFacetsManager.create(project);
+		} catch (CoreException e) {
+			return null;
+		}
+
+		if (facetedProject != null && ProjectFacetsManager.isProjectFacetDefined(typeID)) {
+			IProjectFacet projectFacet = ProjectFacetsManager.getProjectFacet(typeID);
+			if(projectFacet == null){
+				return null;
+			}
+			return facetedProject.getProjectFacetVersion(projectFacet);
+		}
+		return null;
+	}
+	
+	public static boolean isProjectOfType(IFacetedProject facetedProject, String typeID) {
+		if (facetedProject != null && ProjectFacetsManager.isProjectFacetDefined(typeID)) {
+			IProjectFacet projectFacet = ProjectFacetsManager.getProjectFacet(typeID);
+			return projectFacet != null && facetedProject.hasProjectFacet(projectFacet);
+		}
+		return false;
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/HRefTranslator.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/HRefTranslator.java
index aba016c..acb7c7e 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/HRefTranslator.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/HRefTranslator.java
@@ -28,36 +28,30 @@
 
 	public HRefTranslator(String domNameAndPath, EClass eClass) {
 		super(domNameAndPath, eClass);
-		// TODO Auto-generated constructor stub
 	}
 
 	public HRefTranslator(String domNameAndPath, EStructuralFeature aFeature) {
 		super(domNameAndPath, aFeature);
-		// TODO Auto-generated constructor stub
 	}
 
 	public HRefTranslator(String domNameAndPath, EStructuralFeature aFeature,
 			EClass eClass) {
 		super(domNameAndPath, aFeature, eClass);
-		// TODO Auto-generated constructor stub
 	}
 
 	public HRefTranslator(String domNameAndPath, EStructuralFeature aFeature,
 			TranslatorPath path) {
 		super(domNameAndPath, aFeature, path);
-		// TODO Auto-generated constructor stub
 	}
 
 	public HRefTranslator(String domNameAndPath, EStructuralFeature aFeature,
 			TranslatorPath[] paths) {
 		super(domNameAndPath, aFeature, paths);
-		// TODO Auto-generated constructor stub
 	}
 
 	public HRefTranslator(String domNameAndPath, EStructuralFeature aFeature,
 			int style) {
 		super(domNameAndPath, aFeature, style);
-		// TODO Auto-generated constructor stub
 	}
 	/*
 	 * (non-Javadoc)
@@ -80,7 +74,7 @@
 					if( contentModelRoot != null )
 					{
 						res = contentModelRoot.eResource();
-						if (res != null)
+						if (res != null && res instanceof CompatibilityXMIResource)
 							retVal = res.getEObject(aValue);
 					}
 				}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/IModuleConstants.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/IModuleConstants.java
index f1c98d0..c93d9d7 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/IModuleConstants.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/IModuleConstants.java
@@ -39,6 +39,13 @@
 	public final static String JST_APPCLIENT_MODULE = "jst.appclient"; //$NON-NLS-1$
 	public final static String JST_CONNECTOR_MODULE = "jst.connector"; //$NON-NLS-1$
 	public final static String JST_JAVA = "jst.java"; //$NON-NLS-1$
+	public final static String JST_WEBFRAGMENT_MODULE = "jst.webfragment"; //$NON-NLS-1$
+	
+	// Extensions
+	public final static String EAR_EXTENSION = ".ear"; //$NON-NLS-1$
+	public final static String WAR_EXTENSION = ".war"; //$NON-NLS-1$
+	public final static String RAR_EXTENSION = ".rar"; //$NON-NLS-1$
+	public final static String JAR_EXTENSION = ".jar"; //$NON-NLS-1$
 	
 	public final static String DEPENDENT_MODULE = "dependent"; //$NON-NLS-1$
     
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/VirtualReferenceUtilities.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/VirtualReferenceUtilities.java
new file mode 100644
index 0000000..fe12b66
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/VirtualReferenceUtilities.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.internal.util;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+
+public class VirtualReferenceUtilities implements IModuleConstants {
+	public static VirtualReferenceUtilities INSTANCE = new VirtualReferenceUtilities();
+	private HashMap<String, String> mapping;
+	VirtualReferenceUtilities() {
+		mapping = new HashMap<String, String>();
+		mapping.put(JST_APPCLIENT_MODULE, JAR_EXTENSION); //$NON-NLS-1$
+		mapping.put(JST_WEB_MODULE, WAR_EXTENSION); //$NON-NLS-1$
+		mapping.put(JST_EJB_MODULE, JAR_EXTENSION); //$NON-NLS-1$
+		mapping.put(WST_WEB_MODULE, WAR_EXTENSION); //$NON-NLS-1$
+		mapping.put(JST_EAR_MODULE, EAR_EXTENSION); //$NON-NLS-1$
+		mapping.put(JST_CONNECTOR_MODULE, RAR_EXTENSION); //$NON-NLS-1$
+		mapping.put(JST_UTILITY_MODULE, JAR_EXTENSION); //$NON-NLS-1$
+		mapping.put(JST_WEBFRAGMENT_MODULE, JAR_EXTENSION); //$NON-NLS-1$
+	}
+	
+	/**
+	 * Add a mapping for some facet type to some default extension
+	 * @param facet 
+	 * @param extension
+	 * @return
+	 */
+	public boolean addDefaultExtension(String facet, String extension) {
+		if( !mapping.containsKey(facet)) {
+			if( ProjectFacetsManager.isProjectFacetDefined(facet)) {
+				mapping.put(facet, extension);
+				return true;
+			}
+		}
+		return false;
+	}
+	
+	
+	/**
+	 * This is a utility method clients may or may not choose to make use of
+	 * to ensure that all Project references have some archiveName associated with it.
+	 */
+	public void ensureReferencesHaveNames(IVirtualReference[] refs) {
+		for( int i = 0; i < refs.length; i++ ) {
+			if( refs[i].getArchiveName() == null || refs[i].getArchiveName().equals("")) { //$NON-NLS-1$
+				refs[i].setArchiveName(getDefaultArchiveName(refs[i]));
+			}
+		}
+	}
+
+	/**
+	 * return what the suggested archiveName is 
+	 * @param ref
+	 * @return
+	 */
+	public String getDefaultArchiveName(IVirtualReference ref) {
+		if( !ref.getReferencedComponent().isBinary()) {
+			return getDefaultProjectArchiveName(ref.getReferencedComponent());
+		} 
+		// binary
+		return new Path(ref.getReferencedComponent().getDeployedName()).lastSegment();
+	}
+	
+	public String getDefaultProjectArchiveName(IVirtualComponent component) {
+		Iterator<String> i = mapping.keySet().iterator();
+		String facet;
+		String name = (component.getDeployedName() == null ? component.getName() : component.getDeployedName());
+		while(i.hasNext()) {
+			facet = i.next();
+			if( FacetedProjectUtilities.isProjectOfType(component.getProject(), facet))
+				return name + mapping.get(facet);
+		}
+		return name + JAR_EXTENSION; 
+	}
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesTranslator.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesTranslator.java
index b88af6b..47fa640 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesTranslator.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesTranslator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -107,7 +107,8 @@
 			new IPathTranslator(SOURCE_PATH, MODULE_CORE_PKG.getComponentResource_SourcePath(), DOM_ATTRIBUTE),
 			new IPathTranslator(RUNTIME_PATH, MODULE_CORE_PKG.getComponentResource_RuntimePath(), DOM_ATTRIBUTE),
 			new Translator(RESOURCE_TYPE, MODULE_CORE_PKG.getComponentResource_ResourceType(), DOM_ATTRIBUTE),
-			new Translator(EXCLUSIONS, MODULE_CORE_PKG.getComponentResource_Exclusions())
+			new Translator(EXCLUSIONS, MODULE_CORE_PKG.getComponentResource_Exclusions()),
+			new Translator(TAG, MODULE_CORE_PKG.getComponentResource_Tag(),DOM_ATTRIBUTE)
 		});
 		return result;
 	}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesXmlMapperI.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesXmlMapperI.java
index 9ed9de9..8dc57fa 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesXmlMapperI.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/WTPModulesXmlMapperI.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -32,6 +32,6 @@
 	String PROPERTY_VALUE = "value";//$NON-NLS-1$
 	String RESOURCE_TYPE = "resource-type";//$NON-NLS-1$
 	String ARCHIVE_NAME="archiveName";//$NON-NLS-1$
-	String PROJECT_VERSION="project-version";
-	
+	String PROJECT_VERSION="project-version"; //$NON-NLS-1$
+	String TAG="tag";//$NON-NLS-1$
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resolvers/DefaultReferenceResolver.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resolvers/DefaultReferenceResolver.java
new file mode 100644
index 0000000..e8fcd73
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resolvers/DefaultReferenceResolver.java
@@ -0,0 +1,83 @@
+package org.eclipse.wst.common.componentcore.resolvers;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.UnresolveableURIException;
+import org.eclipse.wst.common.componentcore.internal.ComponentcorePackage;
+import org.eclipse.wst.common.componentcore.internal.DependencyType;
+import org.eclipse.wst.common.componentcore.internal.ReferencedComponent;
+import org.eclipse.wst.common.componentcore.internal.StructureEdit;
+import org.eclipse.wst.common.componentcore.internal.impl.ModuleURIUtil;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualReference;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+
+public class DefaultReferenceResolver implements IReferenceResolver {
+	// Does not need to implement, 
+	// default is always called as last resort
+	public boolean canResolve(IVirtualComponent context,
+			ReferencedComponent referencedComponent) {
+		return false;
+	}
+
+	// Does not need to implement, 
+	// default is always called as last resort
+	public boolean canResolve(IVirtualReference reference) {
+		return false;
+	}
+
+	public IVirtualReference resolve(IVirtualComponent context,
+			ReferencedComponent referencedComponent) {
+		IVirtualComponent targetComponent = null;
+		IProject targetProject = null;
+		URI uri = referencedComponent.getHandle();
+		if (uri == null)
+			return null;
+		boolean isClassPathURI = ModuleURIUtil.isClassPathURI(uri);
+		if( !isClassPathURI ){
+			try { 
+				targetProject = StructureEdit.getContainingProject(uri);
+			} catch(UnresolveableURIException uurie) {
+				//Ignore
+			} 
+			// if the project cannot be resolved, assume it's local - really it probably deleted 
+			
+			targetComponent = ComponentCore.createComponent(targetProject);  
+				
+
+		}else{
+			String archiveType = ""; //$NON-NLS-1$
+			String archiveName = ""; //$NON-NLS-1$
+			try {
+				archiveType = ModuleURIUtil.getArchiveType(uri);
+				archiveName = ModuleURIUtil.getArchiveName(uri);
+				
+			} catch (UnresolveableURIException e) {
+				//Ignore
+			}
+			targetComponent = ComponentCore.createArchiveComponent(context.getProject(), archiveType + IPath.SEPARATOR + archiveName ); 
+		}
+		VirtualReference vRef = new VirtualReference(context, targetComponent, referencedComponent.getRuntimePath(), referencedComponent.getDependencyType().getValue());
+		vRef.setArchiveName(referencedComponent.getArchiveName());
+		return vRef;
+	}
+
+	public ReferencedComponent resolve(IVirtualReference reference) {
+		IVirtualComponent referencedComponent = reference.getReferencedComponent();
+		ReferencedComponent refComp = ComponentcorePackage.eINSTANCE.getComponentcoreFactory().createReferencedComponent();
+		refComp.setRuntimePath(reference.getRuntimePath());
+		refComp.setDependencyType(DependencyType.get(reference.getDependencyType()));
+		refComp.setArchiveName(reference.getArchiveName());
+		if( referencedComponent != null ) {
+			if( !referencedComponent.isBinary())
+				refComp.setHandle(ModuleURIUtil.fullyQualifyURI(referencedComponent.getProject()));
+			else
+				refComp.setHandle(ModuleURIUtil.archiveComponentfullyQualifyURI(referencedComponent.getName())); 
+		}
+		return refComp;
+	}
+
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resolvers/IReferenceResolver.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resolvers/IReferenceResolver.java
new file mode 100644
index 0000000..b1dcd00
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resolvers/IReferenceResolver.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.resolvers;
+
+import org.eclipse.wst.common.componentcore.internal.ReferencedComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+
+public interface IReferenceResolver {
+	public boolean canResolve(IVirtualComponent context, ReferencedComponent referencedComponent);
+	public IVirtualReference resolve(IVirtualComponent context, ReferencedComponent referencedComponent);
+	public boolean canResolve(IVirtualReference reference);
+	public ReferencedComponent resolve(IVirtualReference reference);
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resolvers/ReferenceResolverUtil.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resolvers/ReferenceResolverUtil.java
new file mode 100644
index 0000000..ec9d3f1
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resolvers/ReferenceResolverUtil.java
@@ -0,0 +1,126 @@
+package org.eclipse.wst.common.componentcore.resolvers;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.wst.common.componentcore.internal.ModulecorePlugin;
+import org.eclipse.wst.common.componentcore.internal.ReferencedComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+
+public class ReferenceResolverUtil {
+	public static ReferenceResolverUtil instance = null;
+	public static ReferenceResolverUtil getDefault() {
+		if( instance == null )
+			instance = new ReferenceResolverUtil();
+		return instance;
+	}
+	
+	private HashMap<String, ReferenceResolverWrapper> resolvers = null;
+	private ArrayList<IReferenceResolver> sorted = null;
+	private DefaultReferenceResolver defaultResolver = new DefaultReferenceResolver();
+	public IReferenceResolver[] getResolvers() {
+		if( resolvers == null || sorted == null)
+			loadResolvers();
+		if (sorted.isEmpty()) return new IReferenceResolver[0];
+        return (IReferenceResolver[]) sorted.toArray(new IReferenceResolver[sorted.size()]);
+	}
+	
+	public IReferenceResolver getResolver(IVirtualComponent context, ReferencedComponent reference) {
+		getResolvers();
+		Iterator<IReferenceResolver> i = sorted.iterator();
+		IReferenceResolver resolver;
+		while(i.hasNext()) {
+			resolver = i.next();
+			if( resolver.canResolve(context, reference))
+				return resolver;
+		}
+		return defaultResolver;
+	}
+	
+	public IReferenceResolver getResolver(IVirtualReference reference) {
+		getResolvers();
+		Iterator<IReferenceResolver> i = sorted.iterator();
+		IReferenceResolver resolver;
+		while(i.hasNext()) {
+			resolver = i.next();
+			if( resolver.canResolve(reference))
+				return resolver;
+		}
+		return defaultResolver;
+	}
+	
+	protected void loadResolvers() {
+		HashMap<String, ReferenceResolverWrapper> map = new HashMap<String, ReferenceResolverWrapper>();
+		
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		IConfigurationElement[] cf = registry.getConfigurationElementsFor(ModulecorePlugin.PLUGIN_ID, "referenceResolver"); //$NON-NLS-1$
+		String id = null;
+		for( int j = 0; j < cf.length; j++ ) {
+			id = cf[j].getAttribute("id");
+			try {
+				map.put(id, new ReferenceResolverWrapper(
+						id, (IReferenceResolver)
+							cf[j].createExecutableExtension("class"),
+						cf[j].getAttribute("weight")));
+			} catch( CoreException ce ) {
+				// TODO figure it out
+			}
+		}
+		
+		// Cache the sorted ones
+		List<ReferenceResolverWrapper> list = new ArrayList(map.values());
+		Comparator comparator = new Comparator() { 
+			public int compare(Object o1, Object o2) {
+				if( !(o1 instanceof ReferenceResolverWrapper))
+					return -1;
+				if( !(o2 instanceof ReferenceResolverWrapper))
+					return 1;
+				return ((ReferenceResolverWrapper)o2).getWeight()
+				 	- ((ReferenceResolverWrapper)o1).getWeight();
+			}
+		};
+		
+		Collections.sort(list, comparator);
+		ArrayList<IReferenceResolver> sorted = new ArrayList<IReferenceResolver>();
+		Iterator i = list.iterator();
+		while(i.hasNext())
+			sorted.add(((ReferenceResolverWrapper)i.next()).getResolver());
+		this.sorted = sorted;
+		this.resolvers = map;
+	}
+	
+	
+	protected class ReferenceResolverWrapper {
+		private String id;
+		private IReferenceResolver resolver;
+		private int weight;
+		public ReferenceResolverWrapper(String id, IReferenceResolver resolver, String weight) {
+			this.id = id;
+			this.resolver = resolver;
+			try {
+				this.weight = Integer.parseInt(weight);
+			} catch( NumberFormatException nfe) {
+				this.weight = 1000;
+			}
+		}
+		public int getWeight() {
+			return weight;
+		}
+		public String getId() {
+			return id;
+		}
+		public IReferenceResolver getResolver() {
+			return resolver;
+		}
+	}
+	
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/ITaggedVirtualResource.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/ITaggedVirtualResource.java
new file mode 100644
index 0000000..542cf46
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/ITaggedVirtualResource.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.common.componentcore.resources;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+public interface ITaggedVirtualResource {
+	
+	/**
+	 * Sets the given tag to the path linked to this resource 
+	 * @param aProjectRelativeLocation - path linked to the resource
+	 * @param tag - The tag to be set
+	 * @param monitor - can be null
+	 * @return true if the path was tagged correctly, false otherwise (e.g. the path is not linked to the resource)  
+	 */
+	
+	boolean tagResource(IPath aProjectRelativeLocation, String tag, IProgressMonitor monitor);
+	
+	/**
+	 * Returns the path of the first link to this resource tagged with the given tag
+	 * @param tag
+	 * @return the path linked to this resource tagged with the given tag, or null if no path can be found.
+	 */
+	IPath getFirstTaggedResource(String tag);
+	
+	/**
+	 * Returns the paths of the links to this resource tagged with the given tag
+	 * @param tag
+	 * @return the paths linked to this resource tagged with the given tag, or empty array if no paths can be found.
+	 */
+	IPath[] getTaggedResources(String tag);
+
+}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/IVirtualComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/IVirtualComponent.java
index 7de081d..0df6a67 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/IVirtualComponent.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/IVirtualComponent.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.common.componentcore.resources;
 
+import java.util.Map;
 import java.util.Properties;
 
 import org.eclipse.core.resources.IProject;
@@ -36,8 +37,28 @@
 	 */
 	public static final int BINARY = 0x1;
 	
+	/**
+	 * The key for the property of which reference types we're requesting
+	 */
+	public static final String REQUESTED_REFERENCE_TYPE = "REQUESTED_REFERENCE_TYPE";
+	public static final String HARD_REFERENCES = "HARD_REFERENCES";
+	public static final String NON_DERIVED_REFERENCES = "NON_DERIVED_REFERENCES";
 	
 	/**
+	 * Retrieve all component references displayable to the user, excluding references to components that might not
+	 * exist (i.e. calls to these component's {@link IVirtualComponent#exists()} return false)
+	 */
+	public static final String DISPLAYABLE_REFERENCES = "DISPLAYABLE_REFERENCES";
+	
+	/**
+	 * Retrieve all component references displayable to the user, including references to components that might not
+	 * exist (i.e. calls to these component's {@link IVirtualComponent#exists()} return false)
+	 */
+	public static final String DISPLAYABLE_REFERENCES_ALL = "DISPLAYABLE_REFERENCES_ALL";
+
+	public static final String FLATTENABLE_REFERENCES = "FLATTENABLE_REFERENCES";
+		
+	/**
 	 * The name of the component must be unique within its enclosing project.
 	 * 
 	 * @return The name of the component.
@@ -144,6 +165,19 @@
 	 * @return A by-value copy of the virtual reference array
 	 */
 	IVirtualReference[] getReferences();
+
+	/**
+	 * Virtual components may reference other virtual components to build logical dependency trees. 
+	 * <p>
+	 * Each virtual reference will indicate how the content of the reference will be absorbed 
+	 * by this component. Each virtual reference will always specify an enclosing component that will
+	 * be this component.  
+	 * </p>
+	 * @param options A hashmap full of options
+	 * @return
+	 */
+	IVirtualReference[] getReferences(Map<String, Object> options);
+
 	/**
 	 * Virtual components may reference other virtual components to build logical dependency trees. 
 	 * <p>
@@ -155,6 +189,8 @@
 	 */
 	IVirtualReference getReference(String aComponentName);
 	
+
+	
 	/**
 	 * Virtual components may reference other virtual components to build logical dependency trees. 
 	 * <p>
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/IVirtualReference.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/IVirtualReference.java
index 6ef2274..b5c7c6b 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/IVirtualReference.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/resources/IVirtualReference.java
@@ -107,4 +107,12 @@
 	 */
 	public void setArchiveName(String archiveName);
 	
+	/**
+	 * Is this reference a 'derived' reference? A derived reference
+	 * is a reference that's not persisted in the primary model 
+	 * inside the org.eclipse.wst.component file. 
+	 * 
+	 * @return isDerived false if persisted, true otherwise 
+	 */
+	public boolean isDerived();
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/plugin.properties b/plugins/org.eclipse.wst.common.modulecore/plugin.properties
index abd0a89..883476b 100644
--- a/plugins/org.eclipse.wst.common.modulecore/plugin.properties
+++ b/plugins/org.eclipse.wst.common.modulecore/plugin.properties
@@ -11,3 +11,6 @@
 provider=Eclipse.org
 
 Bundle-Name.0 = Modulecore Plug-in
+ValidationMarker.name=ModuleCore Validation Marker
+Validator.name=ModuleCore Validator
+Nature.name=Web Properties
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.modulecore/plugin.xml b/plugins/org.eclipse.wst.common.modulecore/plugin.xml
index 52abf91..20573da 100644
--- a/plugins/org.eclipse.wst.common.modulecore/plugin.xml
+++ b/plugins/org.eclipse.wst.common.modulecore/plugin.xml
@@ -15,7 +15,7 @@
    <!--============================-->
    <extension
          id="ModuleCoreNature"
-         name="Web Properties"
+         name="%Nature.name"
          point="org.eclipse.core.resources.natures">
       <runtime>
          <run
@@ -34,7 +34,7 @@
       </editModel> 
    </extension>
 	
-	<extension point="org.eclipse.core.runtime.contentTypes">
+	<extension point="org.eclipse.core.contenttype.contentTypes">
  			<file-association
 				content-type="org.eclipse.core.runtime.xml"
 				file-names="org.eclipse.wst.common.component"/>
@@ -55,6 +55,7 @@
 	<extension-point id="artifactedit" name="Component Artifact Edit" schema="schema/artifactedit.exsd"/>
     <extension-point id="componentimpl" name="componentimpl" schema="schema/componentimpl.exsd"/>
 	<extension-point id="resourceFactories" name="Resource Factory Association (Internal)" schema="schema/resourceFactories.exsd"/>
+ <extension-point id="referenceResolver" name="referenceResolver" schema="schema/referenceResolver.exsd"/>
 	
 	<!-- Contribute a URIResolverExtension for flexible projects -->
 	<extension point="org.eclipse.wst.common.uriresolver.resolverExtensions">
@@ -74,63 +75,6 @@
     </factory>
   </extension>
   
-  <extension
-         id="ModuleCoreValidator"
-         name="ModuleCore Validator"
-         point="org.eclipse.wst.validation.validator">
-      <validator>
-      	<projectNature
-               id="org.eclipse.wst.common.modulecore.ModuleCoreNature">
-         </projectNature>
-         <filter
-               objectClass="org.eclipse.core.resources.IFile"
-               caseSensitive="false"
-               nameFilter="*.wtpmodules">
-         </filter>
-         <filter
-               objectClass="org.eclipse.core.resources.IFile"
-               caseSensitive="false"
-               nameFilter="*.component">
-         </filter>
-		   <markerId
-               	   markerIdValue="ModuleCoreValidatorMarker">
-         </markerId>
-         <helper      
-               class="org.eclipse.wst.common.componentcore.internal.ModuleCoreValidatorHelper">
-         </helper>
-         <run
-               class="org.eclipse.wst.common.componentcore.internal.ModuleCoreValidator">
-         </run>
-      </validator>
-   </extension>
-
-<extension
-         id="ModuleCoreValidatorMarker"
-         name="ModuleCore Validation Marker"
-         point="org.eclipse.core.resources.markers">
-      <super
-            type="org.eclipse.wst.validation.problemmarker">
-      </super>
-      <persistent
-            value="true">
-      </persistent>
-      <attribute
-            name="owner">
-      </attribute>
-      <attribute
-            name="validationSeverity">
-      </attribute>
-      <attribute
-            name="targetObject">
-      </attribute>
-      <attribute
-            name="groupName">
-      </attribute>
-      <attribute
-            name="messageId">
-      </attribute>
-</extension> 
-
    <!-- Register the nature id with the EMFNature -->
    <extension
          point="org.eclipse.jem.util.nature_registration">
diff --git a/plugins/org.eclipse.wst.common.modulecore/schema/ComponentProjectMigrator.exsd b/plugins/org.eclipse.wst.common.modulecore/schema/ComponentProjectMigrator.exsd
index 507ed10..edaf17f 100644
--- a/plugins/org.eclipse.wst.common.modulecore/schema/ComponentProjectMigrator.exsd
+++ b/plugins/org.eclipse.wst.common.modulecore/schema/ComponentProjectMigrator.exsd
@@ -1,16 +1,25 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.modulecore">
+<schema targetNamespace="org.eclipse.wst.common.modulecore" xmlns="http://www.w3.org/2001/XMLSchema">
 <annotation>
       <appInfo>
          <meta.schema plugin="org.eclipse.wst.common.modulecore" id="ComponentProjectMigrator" name="Component Project Migrator"/>
       </appInfo>
       <documentation>
-         This allows specific implementations of components to contribute migrators Those plugins have dependencies on the modulecore plugin, but not vice versa. In order for code defined within the modulecore plugin to execute these actions, we need this extension point.
+         This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+@deprecated 
+
+This allows specific implementations of components to contribute migrators Those plugins have dependencies on the modulecore plugin, but not vice versa. In order for code defined within the modulecore plugin to execute these actions, we need this extension point.
       </documentation>
    </annotation>
 
    <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
       <complexType>
          <sequence>
             <element ref="migratorExtension"/>
@@ -53,10 +62,27 @@
 
    <annotation>
       <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+@deprecated 
+
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
          <meta.section type="since"/>
       </appInfo>
       <documentation>
-         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
+         This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+@deprecated 
+
+
+&lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
       </documentation>
    </annotation>
 
@@ -65,16 +91,10 @@
          <meta.section type="examples"/>
       </appInfo>
       <documentation>
-         
-      </documentation>
-   </annotation>
+         This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+@deprecated 
 
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
       </documentation>
    </annotation>
 
@@ -83,7 +103,10 @@
          <meta.section type="implementation"/>
       </appInfo>
       <documentation>
-         
+         This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
+See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
+@deprecated 
+
       </documentation>
    </annotation>
 
diff --git a/plugins/org.eclipse.wst.common.modulecore/schema/componentCore.xsd b/plugins/org.eclipse.wst.common.modulecore/schema/componentCore.xsd
index a2d8828..f6c87e9 100644
--- a/plugins/org.eclipse.wst.common.modulecore/schema/componentCore.xsd
+++ b/plugins/org.eclipse.wst.common.modulecore/schema/componentCore.xsd
@@ -31,6 +31,9 @@
                                     	<attribute name="handle"

                                     		type="string" use="required">

                                     	</attribute>

+                                    	<attribute name="archiveName"

+                                    		type="string" use="optional">

+                                    	</attribute>

                                     	<attribute name="deploy-path"

                                     		type="string" use="required">

                                     	</attribute>

diff --git a/plugins/org.eclipse.wst.common.modulecore/schema/componentimpl.exsd b/plugins/org.eclipse.wst.common.modulecore/schema/componentimpl.exsd
index 667317e..828b78e 100644
--- a/plugins/org.eclipse.wst.common.modulecore/schema/componentimpl.exsd
+++ b/plugins/org.eclipse.wst.common.modulecore/schema/componentimpl.exsd
@@ -2,15 +2,20 @@
 <!-- Schema file written by PDE -->
 <schema targetNamespace="org.eclipse.wst.common.modulecore" xmlns="http://www.w3.org/2001/XMLSchema">
 <annotation>
-      <appinfo>
+      <appInfo>
          <meta.schema plugin="org.eclipse.wst.common.modulecore" id="componentimpl" name="componentimpl"/>
-      </appinfo>
+      </appInfo>
       <documentation>
          [Enter description of this extension point.]
       </documentation>
    </annotation>
 
    <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
       <complexType>
          <sequence>
          </sequence>
@@ -33,9 +38,9 @@
                <documentation>
                   
                </documentation>
-               <appinfo>
+               <appInfo>
                   <meta.attribute translatable="true"/>
-               </appinfo>
+               </appInfo>
             </annotation>
          </attribute>
       </complexType>
@@ -43,6 +48,9 @@
 
    <element name="componentimpl">
       <complexType>
+         <sequence minOccurs="0" maxOccurs="unbounded">
+            <element ref="extendedTypeID" minOccurs="0" maxOccurs="unbounded"/>
+         </sequence>
          <attribute name="typeID" type="string" use="required">
             <annotation>
                <documentation>
@@ -55,46 +63,48 @@
                <documentation>
                   
                </documentation>
-               <appinfo>
+               <appInfo>
                   <meta.attribute kind="java" basedOn=":org.eclipse.wst.common.componentcore.resources.IVirtualComponent"/>
-               </appinfo>
+               </appInfo>
             </annotation>
          </attribute>
       </complexType>
    </element>
 
+   <element name="extendedTypeID" type="string">
+   </element>
+
    <annotation>
-      <appinfo>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
          <meta.section type="since"/>
-      </appinfo>
+      </appInfo>
       <documentation>
          [Enter the first release in which this extension point appears.]
       </documentation>
    </annotation>
 
    <annotation>
-      <appinfo>
+      <appInfo>
          <meta.section type="examples"/>
-      </appinfo>
+      </appInfo>
       <documentation>
          [Enter extension point usage example here.]
       </documentation>
    </annotation>
 
    <annotation>
-      <appinfo>
-         <meta.section type="apiInfo"/>
-      </appinfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appinfo>
+      <appInfo>
          <meta.section type="implementation"/>
-      </appinfo>
+      </appInfo>
       <documentation>
          [Enter information about supplied implementation of this extension point.]
       </documentation>
diff --git a/plugins/org.eclipse.wst.common.modulecore/schema/referenceResolver.exsd b/plugins/org.eclipse.wst.common.modulecore/schema/referenceResolver.exsd
new file mode 100644
index 0000000..8ed7a92
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.modulecore/schema/referenceResolver.exsd
@@ -0,0 +1,116 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.modulecore" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.modulecore" id="referenceResolver" name="referenceResolver"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
+      <complexType>
+         <sequence minOccurs="1" maxOccurs="unbounded">
+            <element ref="resolver"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="resolver">
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  A required id which can be used to reference this resolver
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The implementation class of this extension
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.wst.common.componentcore.resolvers.IReferenceResolver"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="weight" type="string">
+            <annotation>
+               <documentation>
+                  The weight used for sorting the resolvers. Lighter weights float to the top and are tried first.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiinfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.wst.common.modulecore/schema/resourceFactories.exsd b/plugins/org.eclipse.wst.common.modulecore/schema/resourceFactories.exsd
index dd43bdb..f309491 100644
--- a/plugins/org.eclipse.wst.common.modulecore/schema/resourceFactories.exsd
+++ b/plugins/org.eclipse.wst.common.modulecore/schema/resourceFactories.exsd
@@ -1,19 +1,24 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.modulecore">
+<schema targetNamespace="org.eclipse.wst.common.modulecore" xmlns="http://www.w3.org/2001/XMLSchema">
 <annotation>
-      <appInfo>
+      <appinfo>
          <meta.schema plugin="org.eclipse.wst.common.modulecore" id="resourceFactories" name="Resource Factory Association (Internal)"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          An *internal* extension point that declares an association between a short-segment filename and a Resource.Factory.
       </documentation>
    </annotation>
 
    <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
       <complexType>
          <sequence>
-            <element ref="resourceFactory"/>
+            <element ref="resourceFactory" maxOccurs="unbounded"/>
          </sequence>
          <attribute name="point" type="string" use="required">
             <annotation>
@@ -34,9 +39,9 @@
                <documentation>
                   
                </documentation>
-               <appInfo>
+               <appinfo>
                   <meta.attribute translatable="true"/>
-               </appInfo>
+               </appinfo>
             </annotation>
          </attribute>
       </complexType>
@@ -57,15 +62,15 @@
                <documentation>
                   Declares an implementation of &lt;code&gt;org.eclipse.emf.ecore.resource.Resource.Factory&lt;/code&gt;.
                </documentation>
-               <appInfo>
+               <appinfo>
                   <meta.attribute kind="java" basedOn="org.eclipse.emf.ecore.resource.Resource.Factory"/>
-               </appInfo>
+               </appinfo>
             </annotation>
          </attribute>
-         <attribute name="shortSegment" type="string" use="required">
+         <attribute name="shortSegment" type="string">
             <annotation>
                <documentation>
-                  Declares the short segment of a filename that the resource factory applies to (e.g. &quot;web.xml&quot;).
+                  Optionally declares the short segment of a filename that the resource factory applies to (e.g. &quot;web.xml&quot;).
                </documentation>
             </annotation>
          </attribute>
@@ -76,14 +81,24 @@
                </documentation>
             </annotation>
          </attribute>
+         <attribute name="overridesFactoryClass" type="string">
+            <annotation>
+               <documentation>
+                  This optional attribute is to resolve conflicts between multiple defeault factories registered to the same content type and short segments.  The value should be the fully qualified class name of the factory being overridden.
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.emf.ecore.resource.Resource.Factory:"/>
+               </appinfo>
+            </annotation>
+         </attribute>
       </complexType>
    </element>
 
    <element name="contentTypeBinding">
       <annotation>
-         <appInfo>
+         <appinfo>
             <meta.element labelAttribute="contentTypeId"/>
-         </appInfo>
+         </appinfo>
          <documentation>
             Advertises that the containing editor understands the given content type and is suitable for editing files of that type.
          </documentation>
@@ -100,48 +115,40 @@
    </element>
 
    <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="since"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          [Enter the first release in which this extension point appears.]
       </documentation>
    </annotation>
 
    <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="examples"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          [Enter extension point usage example here.]
       </documentation>
    </annotation>
 
    <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="apiInfo"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          [Enter API information here.]
       </documentation>
    </annotation>
 
    <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="implementation"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          [Enter information about supplied implementation of this extension point.]
       </documentation>
    </annotation>
 
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
 
 </schema>
diff --git a/plugins/org.eclipse.wst.common.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.ui/META-INF/MANIFEST.MF
index 4f53d03..65e708e 100644
--- a/plugins/org.eclipse.wst.common.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.ui/META-INF/MANIFEST.MF
@@ -2,17 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.common.ui; singleton:=true
-Bundle-Version: 1.1.301.qualifier
+Bundle-Version: 1.1.500.qualifier
 Bundle-Activator: org.eclipse.wst.common.ui.internal.UIPlugin
 Bundle-Vendor: %pluginProvider
 Bundle-Localization: plugin
 Export-Package: org.eclipse.wst.common.ui.internal;x-internal:=true,
  org.eclipse.wst.common.ui.internal.dialogs;x-internal:=true,
  org.eclipse.wst.common.ui.internal.dnd;x-internal:=true,
+ org.eclipse.wst.common.ui.internal.navigator,
  org.eclipse.wst.common.ui.internal.search;x-internal:=true,
  org.eclipse.wst.common.ui.internal.search.dialogs,
- org.eclipse.wst.common.ui.internal.viewers;x-internal:=true,
- org.eclipse.wst.common.ui.provisional.editors
+ org.eclipse.wst.common.ui.internal.viewers;x-internal:=true
+Import-Package: com.ibm.icu.text; version="3.8"
 Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.ui;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
@@ -20,7 +21,6 @@
  org.eclipse.search;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.wst.common.core;bundle-version="[1.1.101,2.0.0)",
  org.eclipse.jface.text;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.ui.workbench.texteditor;bundle-version="[3.4.0,4.0.0)",
- com.ibm.icu;bundle-version="[3.8.1,4.0.0)"
-Eclipse-LazyStart: true
+ org.eclipse.ui.workbench.texteditor;bundle-version="[3.4.0,4.0.0)"
+Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/plugins/org.eclipse.wst.common.ui/about.html b/plugins/org.eclipse.wst.common.ui/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.ui/about.html
+++ b/plugins/org.eclipse.wst.common.ui/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.ui/src-search/org/eclipse/wst/common/ui/internal/search/dialogs/ComponentSearchListDialog.java b/plugins/org.eclipse.wst.common.ui/src-search/org/eclipse/wst/common/ui/internal/search/dialogs/ComponentSearchListDialog.java
index 01e158b..5eed598 100644
--- a/plugins/org.eclipse.wst.common.ui/src-search/org/eclipse/wst/common/ui/internal/search/dialogs/ComponentSearchListDialog.java
+++ b/plugins/org.eclipse.wst.common.ui/src-search/org/eclipse/wst/common/ui/internal/search/dialogs/ComponentSearchListDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -37,6 +37,7 @@
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.osgi.util.TextProcessor;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
 import org.eclipse.swt.custom.ViewForm;
@@ -120,7 +121,6 @@
         Composite mainComposite = (Composite) super.createDialogArea(parent);
         GridData gData = (GridData) mainComposite.getLayoutData();
         gData.heightHint = 500;
-        gData.widthHint = 400;
         
         configuration.createWidgetAboveQualifierBox(mainComposite);        
         // Subclasses may use this Composite to add desired widgets
@@ -311,7 +311,7 @@
     	filePath = file.getFullPath().toString();
         //locationView.redraw();
         
-        locationLabel.setText(filePath);
+        locationLabel.setText(TextProcessor.process(filePath));
         locationLabel.setImage(lp.getFileIcon(component));
     }
     
@@ -499,12 +499,9 @@
             try {
               // this stuff gets executed on a non-UI thread
               //
-              long time1 = System.currentTimeMillis();
               configuration.getSearchListProvider().populateComponentList(componentList, searchScope, null);              
               // Do a final update of our Input for the component tree viewer.
               fireUpdateList(componentList);
-              long time2 = System.currentTimeMillis();
-              System.out.println("time=" + (time2 - time1) + " items= " + masterComponentList.size());
             }
             catch (Exception e) {
             	e.printStackTrace();
diff --git a/plugins/org.eclipse.wst.common.ui/src-search/org/eclipse/wst/common/ui/internal/search/dialogs/ScopedComponentSearchListDialog.java b/plugins/org.eclipse.wst.common.ui/src-search/org/eclipse/wst/common/ui/internal/search/dialogs/ScopedComponentSearchListDialog.java
index 4bf7d8d..16ca611 100644
--- a/plugins/org.eclipse.wst.common.ui/src-search/org/eclipse/wst/common/ui/internal/search/dialogs/ScopedComponentSearchListDialog.java
+++ b/plugins/org.eclipse.wst.common.ui/src-search/org/eclipse/wst/common/ui/internal/search/dialogs/ScopedComponentSearchListDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -54,6 +54,8 @@
   protected Text workingSetsText;
   
   protected static String valueForWorkingSetsText;
+  // Show (default/true) or hide (false) the current resource scope button
+  private boolean showCurrentResourceScope = true;
   
   // working sets currently chosen by the user
   private static IWorkingSet[] workingSets;
@@ -84,8 +86,6 @@
     bottomComposite.setLayout(layout);
     Group group = new Group(bottomComposite, SWT.NONE);
     GridLayout gridLayout = new GridLayout(3, false);
-    // gridLayout.marginWidth = 0;
-    // gridLayout.marginLeft = 2;
     group.setLayout(gridLayout);
     group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
     group.setText(Messages._UI_LABEL_SEARCH_SCOPE);
@@ -98,6 +98,20 @@
     radioButton[2].setText(SCOPE_CURRENT_RESOURCE);
     radioButton[3] = new Button(group, SWT.RADIO);
     radioButton[3].setText(SCOPE_WORKING_SETS);
+    // https://bugs.eclipse.org/bugs/show_bug.cgi?id=250815 
+    // If the current resource scope button is hidden, it no longer is the default scope.  We must select one of the remaining 
+    // visible radio buttons (Enclosing Project) and make it the default.    
+    radioButton[2].setVisible(showCurrentResourceScope);
+    if (!showCurrentResourceScope)
+    {
+      currentSearchScope = SCOPE_ENCLOSING_PROJECT;
+      if (currentResource != null)
+      {
+        // This is to ensure that once the dialog is invoked, the list is populated with the
+        // appropriate components based on this search scope.
+        populateMasterComponentList(new ProjectSearchScope(currentResource.getFullPath()));
+      } 
+    }
     for (int i = 0; i < radioButton.length; i++)
     {
       if (radioButton[i].getText().equals(currentSearchScope))
@@ -130,11 +144,13 @@
 			if ( dialog.open() == Window.OK){
 				workingSets = dialog.getSelection();
 				valueForWorkingSetsText = "";
-				for (int i = 0; i < workingSets.length; i++){
-					valueForWorkingSetsText += workingSets[i].getLabel();
-					// if not the last item, we add a comma
-					if ( i != workingSets.length - 1) 
-						valueForWorkingSetsText += ", ";
+				if (workingSets != null) {
+					for (int i = 0; i < workingSets.length; i++){
+						valueForWorkingSetsText += workingSets[i].getLabel();
+						// if not the last item, we add a comma
+						if ( i != workingSets.length - 1) 
+							valueForWorkingSetsText += ", ";
+					}
 				}
 				workingSetsText.setText(valueForWorkingSetsText);
 			}
@@ -180,9 +196,11 @@
 			  // Constructs the working sets scope from the working sets the user
 			  // selected
 			  WorkingSetSearchScope workingSetsScope = new WorkingSetSearchScope();
-			  for (int i = 0; i < workingSets.length; i++){
-				  workingSetsScope.addAWorkingSetToScope(workingSets[i].getElements());
-			  }			  
+			  if (workingSets != null) {
+				  for (int i = 0; i < workingSets.length; i++){
+					  workingSetsScope.addAWorkingSetToScope(workingSets[i].getElements());
+				  }
+			  }
 			  scope = workingSetsScope;
 		  }
 		  
@@ -229,4 +247,14 @@
   {
     this.currentResource = currentResource;
   }
+ 
+  /**
+   * This is non-API.  See https://bugs.eclipse.org/bugs/show_bug.cgi?id=250815
+   * Show (by default), or hide the current resource search scope button
+   * @param showCurrentResourceScope.  false to hide.
+   */
+  public void setShowCurrentResourceSearchScopeBug250815(boolean showCurrentResourceScope)
+  {
+    this.showCurrentResourceScope = showCurrentResourceScope;
+  }
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/internal/CommonUIMessages.properties b/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/internal/CommonUIMessages.properties
new file mode 100644
index 0000000..742e35b
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/internal/CommonUIMessages.properties
@@ -0,0 +1,143 @@
+! SelectSingleFilePage and SelectMultiFilePage
+_UI_LABEL_SOURCE_FILES   = Workspace Files
+_UI_LABEL_SELECTED_FILES = Selected Files
+_UI_POPUP_EXPAND_ALL	 = Expand All
+_UI_POPUP_COLLAPSE_ALL	 = Collapse All
+	
+_UI_IMPORT_BUTTON          = Import Files...
+_UI_IMPORT_BUTTON_TOOL_TIP = Import files from file system
+
+
+! SelectMultiFilePage
+! NOTE TO TRANSLATOR: the following three lines refers to _UI_LABEL_SELECTED_FILES label above
+_UI_ADD_BUTTON_TOOL_TIP    = Add files to Selected Files list.
+_UI_REMOVE_BUTTON_TOOL_TIP = Remove files from Selected Files list.
+_UI_REMOVE_ALL_BUTTON_TOOL_TIP =  Remove all files from Selected Files list.
+
+! NOTE TO TRANSLATOR: No translation needed of following three lines
+_UI_ADD_BUTTON             = >
+_UI_REMOVE_BUTTON          = <
+_UI_REMOVE_ALL_BUTTON      = <<
+
+! SelectJavaProjectView
+_UI_LABEL_CHOOSE_FOLDER = Select a project or folder:
+
+! SelectJavaProjectDialog
+_UI_LABEL_FOLDER_SELECTION = Container Selection
+
+! TextViewerOperationAction
+_UI_MENU_COPY         = &Copy
+_UI_MENU_CUT          = Cu&t
+_UI_MENU_DELETE       = Delete
+_UI_MENU_PASTE        = &Paste
+_UI_MENU_PREFIX       = Prefix
+_UI_MENU_REDO         = Redo
+_UI_MENU_SELECT_ALL   = Select All
+_UI_MENU_SHIFT_LEFT   = Shift Left
+_UI_MENU_SHIFT_RIGHT  = Shift Right
+_UI_MENU_STRIP_PREFIX = Strip Prefix
+_UI_MENU_UNDO         = Undo
+
+! SourceViewerGotoLineAction
+_UI_MENU_GOTO_LINE           = Go To Line...
+_UI_GOTO_LINE_DIALOG_TITLE   = Go To Line
+_UI_GOTO_LINE_DIALOG_TEXT    = Enter Line Number
+
+_UI_FILE_CHANGED_TITLE = File Changed
+_UI_FILE_DELETED_SAVE_CHANGES = The file has been deleted from the file system. Do you want to save your changes or close the editor without saving?
+_UI_FILE_DELETED_EDITOR_CLOSED = The file has been deleted from the file system. This editor will be closed.
+_UI_FILE_CHANGED_LOAD_CHANGES = The file has been changed on the file system. Do you want to load the changes?
+_UI_SAVE_BUTTON = Save
+_UI_CLOSE_BUTTON = Close
+
+
+! XSL Prefererence
+_UI_XSLT_SELECT     = Select which element to use for your stylesheet
+_UI_XSLT_STYLESHEET = &Use <xsl:stylesheet>
+_UI_XSLT_TRANSFORM  = U&se <xsl:transform>
+
+! XSL Debug Prefererence
+_UI_XSL_DEBUG_SELECT_LAUNCHER = Set the default XSL launcher for the XSL Debugging and Transformation tool
+_UI_XSL_DEBUG_LOCAL           = &XSL application
+_UI_XSL_DEBUG_REMOTE          = XS&L remote application
+_UI_XSL_TILE_EDITOR           = &Show all debugging files in a tile editor
+_UI_XSL_DEBUG_AND_TRANSFORM   = &Run transformation and open a debugging session
+_UI_XSL_CONTEXT_URI           = Context Path 
+_UI_XSL_CONTEXT               = Specify a &context path for resolving URIs in xsl:import, xsl:include or document()
+
+
+_UI_OVERRIDE_FILE    = Overwrite existing files
+_UI_JAVA_EXIST_FILE1 = The following Java classes already exist.
+_UI_JAVA_EXIST_FILE2 = Do you want to overwrite the existing file?
+      
+! some options strings common to several plugins
+_UI_ERROR_CREATING_FILE_TITLE = Error Creating File
+_UI_ERROR_CREATING_FILE_SHORT_DESC = Error creating file "{0}"
+_UI_ERROR_CREATING_FILE_LONG_DESC = An error occured while attempting to create the file "{0}".
+_UI_PARENT_FOLDER_IS_READ_ONLY = The parent directory "{0}" is read only.
+_UI_UNKNOWN_ERROR_WITH_HINT = Unknown error. Ensure that the parent directory "{0}" is writeable.
+_UI_UNKNOWN_ERROR = Unknown error. Ensure that the parent directory "{0}" is writeable.
+
+! usage - this label is followed by two radio button options for the file location
+_UI_LABEL_INCLUDE_URL_FILE = Select file location
+_UI_RADIO_FILE             = Workspace projects
+_UI_RADIO_URL              = HTTP
+
+_UI_LABEL_COMPONENTS				   = Components:
+_UI_LABEL_QUALIFIER					   = Qualifier:
+
+!- component selection dialogs 
+_UI_LABEL_COMPONENT_NAME			   = Component Name:
+_UI_LABEL_MATCHING_COMPONENTS		   = Matching Components:
+_UI_LABEL_SPECIFIED_FILE			   = Specified File
+_UI_LABEL_ENCLOSING_PROJECT			   = Enclosing Project
+_UI_LABEL_WORKSPACE					   = Workspace
+_UI_LABEL_CURRENT_RESOURCE			   = Current Resource
+_UI_LABEL_SEARCH_SCOPE				   = Search Scope
+_UI_LABEL_NARROW_SEARCH_SCOPE_RESOURCE = Use resource view to narrow search scope
+_UI_LABEL_AVAILABLE_TYPES			   = Available Types
+_UI_LABEL_WORKING_SETS                 = Working Sets
+
+_UI_LABEL_New=New...
+_UI_LABEL_DECLARATION_LOCATION=Declaration Location:
+_UI_LABEL_CHOOSE=Choose...
+
+!======================================================================================
+!
+! Here is the list of Error string that have message IDs - make sure they are unique
+!  Range for b2bgui messageIDs: IWAX1201 - IWAX1400
+!
+!======================================================================================
+
+_ERROR_THE_CONTAINER_NAME = The specified container must exist in the workspace and its path must start at the workspace root.
+
+_ERROR_LOCAL_LOCATION     = The local location of this container cannot be resolved.
+_ERROR_NOT_JAVA_PROJECT   = The specified project is not a Java project.
+
+!NOTE TO TRANSLATOR: this error message text is followed by a message from another plugin
+_ERROR_INVALID_JAVA_PACKAGE = IWAX1201E Invalid package name error:
+
+!NOTE TO TRANSLATOR: (_ERROR_BAD_FILENAME_EXTENSION + string + _UI_LABEL_OR + string) or (_ERROR_BAD_FILENAME_EXTENSION)
+_ERROR_BAD_FILENAME_EXTENSION         = The file name must end with
+_ERROR_FILE_ALREADY_EXISTS            = The same name already exists.
+
+_ERROR_CONTAINER_NOT_JAVA_BUILDPATH = The container is not a Java source folder for this project
+_ERROR_USE_PROJECT_JAVA_SOURCE_FOLDER = The project is not on the build path.  Select a Java source folder for the project.
+
+_UI_ERROR             = Error
+
+!NOTE TO TRANSLATOR: this warning message text is followed by a message from another plugin
+_WARN_INVALID_JAVA_PACKAGE = Invalid package name warning:
+
+_ERROR_ROOT_ELEMENT = The XML schema does not contain any global elements that can be used as a root element.
+_ERROR_SAVING_FILE = Error saving file "{0}"
+
+! File Validator
+_UI_ERROR_VALIDATE_FAIL_TITLE = Failed to check out necessary files
+_UI_ERROR_VALIDATE_FAIL_MESSAGE = Generation failed. Necessary files could not be checked out. 
+
+! PropertyDirtyChangeListener and PropertyResourceChangeListener
+_UI_ERROR_VALIDATE_EDIT_FAIL_ONE_FILE = Error
+
+SaveFilesDialog_save_all_resources=Save All Modified Resources
+SaveFilesDialog_must_save=All modified resources must be saved before this operation.
diff --git a/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/internal/Messages.java b/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/internal/Messages.java
index ce13bb8..0cd816a 100644
--- a/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/internal/Messages.java
+++ b/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/internal/Messages.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -13,7 +13,7 @@
 import org.eclipse.osgi.util.NLS;
 
 public class Messages {
-	private static final String BUNDLE_NAME = "plugin"; //$NON-NLS-1$
+	private static final String BUNDLE_NAME = "org.eclipse.wst.common.ui.internal.CommonUIMessages"; //$NON-NLS-1$
 
 	static {
 		NLS.initializeMessages(BUNDLE_NAME, Messages.class); //$NON-NLS-1$
@@ -149,6 +149,8 @@
 
 	public static String _UI_ERROR;
 
+	public static String _WARN_INVALID_JAVA_PACKAGE;
+	
 	public static String _ERROR_ROOT_ELEMENT;
 	public static String _ERROR_SAVING_FILE;
 
@@ -159,18 +161,6 @@
 //	 PropertyDirtyChangeListener and PropertyResourceChangeListener
 	public static String _UI_ERROR_VALIDATE_EDIT_FAIL_ONE_FILE;
 
-//	public static String ExampleProjectCreationWizard.title;
-//	public static String ExampleProjectCreationWizard.op_error.title;
-//	public static String ExampleProjectCreationWizard.op_error.message;
-//
-//	public static String ExampleProjectCreationWizard.overwritequery.title;
-//	public static String ExampleProjectCreationWizard.overwritequery.message;
-//
-//
-//	public static String ExampleProjectCreationOperation.op_desc;
-//	public static String ExampleProjectCreationOperation.op_desc_proj;
-//
-//	public static String ExampleProjectCreationWizardPage.error.alreadyexists;
 	public static String SaveFilesDialog_save_all_resources;
 	public static String SaveFilesDialog_must_save;
 }
diff --git a/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/internal/navigator/ILoadingDDNode.java b/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/internal/navigator/ILoadingDDNode.java
new file mode 100644
index 0000000..ab310dd
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/internal/navigator/ILoadingDDNode.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.common.ui.internal.navigator;
+
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * 
+ * @author 
+ * An interface used by navigator contribution to display text and image
+ * while loading the model 
+ */
+public interface ILoadingDDNode {
+	
+	/**
+	 * 
+	 * @return
+	 */
+	String getText();
+	
+	/**
+	 * 
+	 * @return
+	 */
+	Image getImage();
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/provisional/editors/PostMultiPageEditorSite.java b/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/provisional/editors/PostMultiPageEditorSite.java
deleted file mode 100644
index ee280ca..0000000
--- a/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/provisional/editors/PostMultiPageEditorSite.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.ui.provisional.editors;
-
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.MultiPageEditorSite;
-
-/**
- * @deprecated - No longer necessary as of 3.2M3.
- */
-public class PostMultiPageEditorSite extends MultiPageEditorSite {
-	/**
-	 * The post selection change listener, initialized lazily;
-	 * <code>null</code> if not yet created.
-	 */
-	private ISelectionChangedListener postSelectionChangedListener = null;
-
-	public PostMultiPageEditorSite(MultiPageEditorPart multiPageEditor, IEditorPart editor) {
-		super(multiPageEditor, editor);
-	}
-
-	/**
-	 * Returns the selection changed listener which listens to the nested
-	 * editor's post selection changes, and calls
-	 * <code>handlePostSelectionChanged</code>.
-	 * 
-	 * @return the selection changed listener
-	 */
-	private ISelectionChangedListener getPostSelectionChangedListener() {
-		if (postSelectionChangedListener == null) {
-			postSelectionChangedListener = new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					PostMultiPageEditorSite.this.handlePostSelectionChanged(event);
-				}
-			};
-		}
-		return postSelectionChangedListener;
-	}
-
-	/**
-	 * Handles a post selection changed event from the nested editor. The
-	 * default implementation gets the selection provider from the multi-page
-	 * editor's site, and calls <code>firePostSelectionChanged</code> on it
-	 * (only if it is an instance of <code>MultiPageSelectionProvider</code>),
-	 * passing a new event object.
-	 * <p>
-	 * Subclasses may extend or reimplement this method.
-	 * </p>
-	 * 
-	 * @param event
-	 *            the event
-	 */
-	protected void handlePostSelectionChanged(SelectionChangedEvent event) {
-		ISelectionProvider parentProvider = getMultiPageEditor().getSite().getSelectionProvider();
-		if (parentProvider instanceof PostMultiPageSelectionProvider) {
-			SelectionChangedEvent newEvent = new SelectionChangedEvent(parentProvider, event.getSelection());
-			((PostMultiPageSelectionProvider) parentProvider).firePostSelectionChanged(newEvent);
-		}
-	}
-
-	/**
-	 * The <code>MultiPageEditorSite</code> implementation of this
-	 * <code>IWorkbenchPartSite</code> method remembers the selection
-	 * provider, and also hooks a listener on it, which calls
-	 * <code>handleSelectionChanged</code> when a selection changed event
-	 * occurs and <code>handlePostSelectionChanged</code> when a post
-	 * selection changed event occurs.
-	 * 
-	 * @param provider
-	 *            The selection provider.
-	 * @see PostMultiPageEditorSite#handleSelectionChanged(SelectionChangedEvent)
-	 */
-	public void setSelectionProvider(ISelectionProvider provider) {
-		ISelectionProvider oldSelectionProvider = getSelectionProvider();
-		if (oldSelectionProvider != null) {
-			if (oldSelectionProvider instanceof IPostSelectionProvider) {
-				((IPostSelectionProvider) oldSelectionProvider).removePostSelectionChangedListener(getPostSelectionChangedListener());
-			}
-		}
-
-		super.setSelectionProvider(provider);
-
-		if (provider != null) {
-			if (provider instanceof IPostSelectionProvider) {
-				((IPostSelectionProvider) provider).addPostSelectionChangedListener(getPostSelectionChangedListener());
-			}
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/provisional/editors/PostMultiPageSelectionProvider.java b/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/provisional/editors/PostMultiPageSelectionProvider.java
deleted file mode 100644
index 3a4f908..0000000
--- a/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/provisional/editors/PostMultiPageSelectionProvider.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.ui.provisional.editors;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.MultiPageSelectionProvider;
-
-/**
- * @deprecated - No longer necessary as of 3.2M3.
- */
-public class PostMultiPageSelectionProvider extends MultiPageSelectionProvider implements IPostSelectionProvider {
-	private ListenerList postListeners;
-
-	public PostMultiPageSelectionProvider(MultiPageEditorPart multiPageEditor) {
-		super(multiPageEditor);
-		postListeners = new ListenerList();
-	}
-
-	public void addPostSelectionChangedListener(ISelectionChangedListener listener) {
-		postListeners.add(listener);
-	}
-
-	public void firePostSelectionChanged(final SelectionChangedEvent event) {
-		Object[] listeners = postListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			final ISelectionChangedListener pl = (ISelectionChangedListener) listeners[i];
-			Platform.run(new SafeRunnable() {
-				public void run() {
-					pl.selectionChanged(event);
-				}
-			});
-		}
-	}
-
-	public void removePostSelectionChangedListener(ISelectionChangedListener listener) {
-		postListeners.remove(listener);
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/provisional/editors/PostSelectionMultiPageEditorPart.java b/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/provisional/editors/PostSelectionMultiPageEditorPart.java
deleted file mode 100644
index bcd2f07..0000000
--- a/plugins/org.eclipse.wst.common.ui/src/org/eclipse/wst/common/ui/provisional/editors/PostSelectionMultiPageEditorPart.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.ui.provisional.editors;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.MultiPageEditorPart;
-
-/**
- * Adds posts selection notifications from contained editor parts to
- * listeners. This part was created as a workaround for
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=108324 and will be removed
- * once WTP is building on a platform milestone that includes a fix.
- * 
- * @deprecated - No longer necessary as of 3.2M3.
- */
-public abstract class PostSelectionMultiPageEditorPart extends MultiPageEditorPart {
-	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		super.init(site, input);
-		site.setSelectionProvider(new PostMultiPageSelectionProvider(this));
-	}
-
-	protected void pageChange(int newPageIndex) {
-		super.pageChange(newPageIndex);
-		IEditorPart activeEditor = getEditor(newPageIndex);
-		if (activeEditor != null) {
-			ISelectionProvider selectionProvider = activeEditor.getSite().getSelectionProvider();
-			if (selectionProvider != null) {
-				SelectionChangedEvent event = new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection());
-				((PostMultiPageSelectionProvider) getSite().getSelectionProvider()).firePostSelectionChanged(event);
-			}
-		}
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF
index 66af992..888cca8 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.common.uriresolver; singleton:=true
-Bundle-Version: 1.1.301.qualifier
+Bundle-Version: 1.1.401.qualifier
 Bundle-Activator: org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.common.uriresolver.internal,
- org.eclipse.wst.common.uriresolver.internal.provisional,
- org.eclipse.wst.common.uriresolver.internal.util
+Export-Package: org.eclipse.wst.common.uriresolver.internal;x-internal:=true,
+ org.eclipse.wst.common.uriresolver.internal.provisional;x-internal:=true,
+ org.eclipse.wst.common.uriresolver.internal.util;x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)"
 Eclipse-LazyStart: true
-Bundle-ClassPath: .
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.wst.common.uriresolver/about.html b/plugins/org.eclipse.wst.common.uriresolver/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/about.html
+++ b/plugins/org.eclipse.wst.common.uriresolver/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.uriresolver/plugin.properties b/plugins/org.eclipse.wst.common.uriresolver/plugin.properties
index 307664b..f4e6c2f 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/plugin.properties
+++ b/plugins/org.eclipse.wst.common.uriresolver/plugin.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
+# Copyright (c) 2005, 2010 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -8,7 +8,7 @@
 # Contributors:
 #     IBM Corporation - initial API and implementation
 ###############################################################################
-providerName=Eclipse.org
+providerName=Eclipse Web Tools Platform
 pluginName=Common URI Resolver Framework
 ###############################################################################
 
diff --git a/plugins/org.eclipse.wst.common.uriresolver/schema/resolverExtensions.exsd b/plugins/org.eclipse.wst.common.uriresolver/schema/resolverExtensions.exsd
index 702bb0c..9156584 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/schema/resolverExtensions.exsd
+++ b/plugins/org.eclipse.wst.common.uriresolver/schema/resolverExtensions.exsd
@@ -63,7 +63,7 @@
                   The class that implements &lt;code&gt;org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver&lt;/code&gt;.
                </documentation>
                <appInfo>
-                  <meta.attribute kind="java"/>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverExtension"/>
                </appInfo>
             </annotation>
          </attribute>
@@ -156,7 +156,7 @@
          <meta.section type="copyright"/>
       </appInfo>
       <documentation>
-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
+         Copyright (c) 2000, 2008 IBM Corporation and others.&lt;br&gt;
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 which accompanies 
 this distribution, and is available at &lt;a
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
index 1403071..e5c22e8 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
+++ b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
@@ -26,6 +26,8 @@
 public class URIResolverExtensionRegistry
 {
 	protected HashMap map = new HashMap();
+	
+	protected List resolverList = new ArrayList();
 
 	public static final int STAGE_PRENORMALIZATION = 1;
 
@@ -84,6 +86,8 @@
 		URIResolverExtensionDescriptor info = new URIResolverExtensionDescriptor(
 				className, pluginId, projectNatureIds, resourceType, stage, priority);
 
+		resolverList.add(info);
+		
 		Iterator idsIter = projectNatureIds.iterator();
 		while (idsIter.hasNext())
 		{
@@ -112,29 +116,33 @@
 	 */
 	public List getExtensionDescriptors(IProject project)
 	{
-	  List result = new ArrayList();
-	  List lowPriorityList = new ArrayList();
-	  List mediumPriorityList = new ArrayList();
-	  List highPriorityList = new ArrayList();          
-	  for (Iterator i = map.keySet().iterator(); i.hasNext();)
-	  {
-	    String key = (String) i.next();
-	    try
-	    {
-	      if (key == NULL_PROJECT_NATURE_ID || project == null || project.hasNature(key))
-	      {
-	        highPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_HIGH));
-	        mediumPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_MEDIUM));
-	        lowPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_LOW));
-	      }
-	    } catch (CoreException e)
-	    {
-	    }
+	  if(project != null) {
+		  List result = new ArrayList();
+		  List lowPriorityList = new ArrayList();
+		  List mediumPriorityList = new ArrayList();
+		  List highPriorityList = new ArrayList();          
+		  for (Iterator i = map.keySet().iterator(); i.hasNext();)
+		  {
+		    String key = (String) i.next();
+		    try
+		    {
+		      if (key == NULL_PROJECT_NATURE_ID || project.hasNature(key))
+		      {
+		        highPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_HIGH));
+		        mediumPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_MEDIUM));
+		        lowPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_LOW));
+		      }
+		    } catch (CoreException e)
+		    {
+		    }
+		  }
+		  result.addAll(highPriorityList);
+		  result.addAll(mediumPriorityList);
+		  result.addAll(lowPriorityList);
+		  return result;
+	  } else {
+		  return resolverList;
 	  }
-	  result.addAll(highPriorityList);
-	  result.addAll(mediumPriorityList);
-	  result.addAll(lowPriorityList);
-	  return result;
 	}
 
 	/**
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java
index a173f28..8f1022e 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java
+++ b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java
@@ -17,8 +17,11 @@
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionPoint;
 import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
+import org.osgi.framework.Bundle;
 
 /**
  * This class reads the URI resolver extension point and registers extension
@@ -92,6 +95,10 @@
 			// String projectNatureId = element.getAttribute(ATT_PROJECT_NATURE_ID);
 			String resourceType = element.getAttribute(ATT_RESOURCE_TYPE);
 			String stage = element.getAttribute(ATT_STAGE);
+			if (stage == null || stage.equals(""))
+			{
+			    stage = VAL_STAGE_POST;
+			}
 			String priority = element.getAttribute(ATT_PRIORITY);
 			if (priority == null || priority.equals(""))
 			{
@@ -127,8 +134,9 @@
 							stageint, priority);
 				} catch (Exception e)
 				{
-					// TODO: Log exception as this will cause an extension resolver
-					//       from loading.
+					Bundle bundle = URIResolverPlugin.getInstance().getBundle();
+					IStatus status = new Status(IStatus.ERROR, bundle.getSymbolicName(), e.getMessage(), e);
+					Platform.getLog(bundle).log( status);
 				}
 			}
 		}
diff --git a/plugins/org.eclipse.wst.internet.cache/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.internet.cache/META-INF/MANIFEST.MF
index c315cde..53fb468 100644
--- a/plugins/org.eclipse.wst.internet.cache/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.internet.cache/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %_PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.internet.cache; singleton:=true
-Bundle-Version: 1.0.301.qualifier
+Bundle-Version: 1.0.400.qualifier
 Bundle-Activator: org.eclipse.wst.internet.cache.internal.CachePlugin
 Bundle-Vendor: %_PLUGIN_PROVIDER
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.internet.cache/about.html b/plugins/org.eclipse.wst.internet.cache/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.internet.cache/about.html
+++ b/plugins/org.eclipse.wst.internet.cache/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.internet.cache/build.properties b/plugins/org.eclipse.wst.internet.cache/build.properties
index dbd4f60..dd443d4 100644
--- a/plugins/org.eclipse.wst.internet.cache/build.properties
+++ b/plugins/org.eclipse.wst.internet.cache/build.properties
@@ -4,7 +4,5 @@
                .,\
                plugin.properties,\
                about.html
-src.includes = exsd/,\
-               .,\
-               build.properties
+src.includes = exsd/
 output.. = bin/
diff --git a/plugins/org.eclipse.wst.internet.cache/plugin.properties b/plugins/org.eclipse.wst.internet.cache/plugin.properties
index 5df72b9..1353df2 100644
--- a/plugins/org.eclipse.wst.internet.cache/plugin.properties
+++ b/plugins/org.eclipse.wst.internet.cache/plugin.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
+# Copyright (c) 2005, 2010 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -9,7 +9,7 @@
 #     IBM Corporation - initial API and implementation
 ###############################################################################
 
-_PLUGIN_PROVIDER                       = Eclipse.org
+_PLUGIN_PROVIDER                       = Eclipse Web Tools Platform
 _PLUGIN_NAME                           = Cache URI Resolver Plug-in
 
 cacheResource                          = Cache Resource
diff --git a/plugins/org.eclipse.wst.validation.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.validation.ui/META-INF/MANIFEST.MF
index 13b38fd..f25773c 100644
--- a/plugins/org.eclipse.wst.validation.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.validation.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
 Bundle-SymbolicName: org.eclipse.wst.validation.ui; singleton:=true
-Bundle-Version: 1.2.0.qualifier
+Bundle-Version: 1.2.204.qualifier
 Bundle-Activator: org.eclipse.wst.validation.internal.ui.plugin.ValidationUIPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.validation.ui/about.html b/plugins/org.eclipse.wst.validation.ui/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.validation.ui/about.html
+++ b/plugins/org.eclipse.wst.validation.ui/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.validation.ui/plugin.properties b/plugins/org.eclipse.wst.validation.ui/plugin.properties
index b8d12f2..887dfc0 100644
--- a/plugins/org.eclipse.wst.validation.ui/plugin.properties
+++ b/plugins/org.eclipse.wst.validation.ui/plugin.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2001, 2007 IBM Corporation and others.
+# Copyright (c) 2001, 2009 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -12,8 +12,8 @@
 # Version 1.3
 #
 VBF_TITLE_PROPERTIES=Validation
-VBF_UI_POPUP_RUNVALIDATION=Validate
+VBF_UI_POPUP_RUNVALIDATION=&Validate
 VBF_TITLE_PREFERENCE=Validation
 
 Bundle-Name.0 = Validation Framework UI
-Bundle-Vendor.0 = Eclipse.org
+Bundle-Vendor.0 = Eclipse Web Tools Platform
diff --git a/plugins/org.eclipse.wst.validation.ui/property_files/org/eclipse/wst/validation/ui/internal/messages.properties b/plugins/org.eclipse.wst.validation.ui/property_files/org/eclipse/wst/validation/ui/internal/messages.properties
index 32db1ce..b08bb43 100644
--- a/plugins/org.eclipse.wst.validation.ui/property_files/org/eclipse/wst/validation/ui/internal/messages.properties
+++ b/plugins/org.eclipse.wst.validation.ui/property_files/org/eclipse/wst/validation/ui/internal/messages.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2001, 2008 IBM Corporation and others.
+# Copyright (c) 2001, 2009 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -56,10 +56,10 @@
 #    VBF_EXC=Exception or error text
 #    VBF_UI=UI label
 #
-PREF_BUTTON_OVERRIDE=Allow projects to override these preference settings
-PREF_BUTTON_ENABLEALL=Enable All
-PREF_BUTTON_DISABLEALL=Disable All
-PREF_VALLIST_TITLE=The selected validators will run when validation is performed:
+PREF_BUTTON_OVERRIDE=Allow projects to &override these preference settings
+PREF_BUTTON_ENABLEALL=E&nable All
+PREF_BUTTON_DISABLEALL=D&isable All
+PREF_VALLIST_TITLE=The selected &validators will run when validation is performed:
 PREF_MNU_MANUAL=&Manual
 PREF_MNU_BUILD=&Build
 PREF_MNU_SETTINGS=&Settings...
@@ -72,11 +72,11 @@
  
 VBF_UI_NO_VALIDATORS_INSTALLED=No validators are installed.
 
-DISABLE_VALIDATION=Suspend all validators
+DISABLE_VALIDATION=S&uspend all validators
 
 DelegatesDialogTitle=Validator Preferences
-DelegatesComboLabel=Implementation:
-ADD_VALIDATION_BUILDER=Add Validation Builder to project
+DelegatesComboLabel=Im&plementation:
+ADD_VALIDATION_BUILDER=Add Validation &Builder to project
 ConfigWsSettings=Configure Workspace Settings...
 VALIDATOR=Validator
 MANUAL=Manual
@@ -89,7 +89,7 @@
 SaveFilesDialog_must_save=All modified resources must be saved before this operation.
 
 PrefPage_always_save=&Save all modified resources automatically prior to validating
-PrefPageConfirmDialog=Show a confirmation dialog when performing manual validations
+PrefPageConfirmDialog=Show a &confirmation dialog when performing manual validations
 
 RunValidationDialogTitle=Running Validation
 
@@ -98,18 +98,18 @@
 ErrConfig=Extension configuration error. An internal error has happened, the validator {0} has incorrectly configured the validation extension point.
 
 FilterHelp=Filter rules are grouped into groups. Inside of any one group the rules are combined by using the logical OR operator. There are two types of groups Include and Exclude. If any of the rules in the Exclude group match, the resource is not validated. If there are Include groups, at least one rule from each group must match before the resource is validated.
-ButtonAddGroupInclude=Add Include Group...
-ButtonAddGroupExclude=Add Exclude Group...
-ButtonAddRule=Add Rule...
-ButtonRemove=Remove 
+ButtonAddGroupInclude=Add &Include Group...
+ButtonAddGroupExclude=Add &Exclude Group...
+ButtonAddRule=Add R&ule...
+ButtonRemove=&Remove 
 
-LabelEnableProjectSpecific=Enable project specific settings
+LabelEnableProjectSpecific=Enable pr&oject specific settings
 
-LabelExtension=File extension
-LabelFile=Folder or file name
-LabelProjects=Project nature
-LabelFacets=Facet
-LabelContentType=Content Type
+LabelExtension=File &extension
+LabelFile=F&older or file name
+LabelProjects=Project &nature
+LabelFacets=&Facet
+LabelContentType=&Content Type
 
 # Note to translators, keep the <A> and </A> tags exactly as they are
 DoNotShowResults=Do not show this dialog in the future.
@@ -122,7 +122,7 @@
 
 ErrorsWarnings=Errors/Warnings
 
-Validation=Validation
+Validation=Validating
 ValidationStatus=Validation Status
 
 ErrSummary=Validation results. Errors={0}, Warnings={1}, Information={2}
@@ -131,21 +131,22 @@
 FrWizard=New Filter Rule Wizard
 FrSelectFilterType=Select Filter Type
 FrFileExtension=File Extension
-FrFileExtensionLabel=File extension, for example html:
-FrCaseSensitive=Is the comparison case sensitive?
-FrExactMatch=Check this if the content type needs to match exactly. Do not check it, if sub types need to match as well.
+FrFileExtensionLabel=File &extension, for example html:
+FrCaseSensitive=Is the comparison case &sensitive?
+FrExactMatch=Check this if the content type needs to &match exactly. Do not check it, if sub types need to match as well.
+FrSimpleFileName=For file based &comparisons, use only the simple file name.
 FrFolderOrFile=Folder or File Name
-FrFolderOrFileLabel=File or folder:
-FrBrowseFile=Browse File...
+FrFolderOrFileLabel=Fil&e or folder:
+FrBrowseFile=Browse &File...
 FrFileFilter=Select the file that will serve as the filter
-FrBrowseFolder=Browse Folder...
+FrBrowseFolder=Browse F&older...
 FrFolderFilter=Select the folder that will serve as the filter
 FrProjectNature=Project Nature
-FrProjectNatureLabel=Project nature:
+FrProjectNatureLabel=Project &nature:
 FrFacit=Facet
-FrFacitLabel=Facet id:
+FrFacitLabel=&Facet id:
 FrContentType=Content Type
-FrContentTypeLabel=Content Type:
+FrContentTypeLabel=&Content Type:
 FrMsgSev=Select the severity level for the following problems
 
 RebuildTitle=Validation Settings Changed
diff --git a/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationMenuAction.java b/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationMenuAction.java
index af083e7..126c407 100644
--- a/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationMenuAction.java
+++ b/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationMenuAction.java
@@ -212,6 +212,7 @@
 					if (DisabledResourceManager.getDefault().isDisabled(res))return false;
 					if (res instanceof IFile)addSelected(res);
 					else if (res instanceof IFolder)addSelected(res);
+					else if (res instanceof IProject)addSelected(res);
 					
 					return true;
 				}
diff --git a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/AdapterFactory.java b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/AdapterFactory.java
index 4337534..750c6fd 100644
--- a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/AdapterFactory.java
+++ b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/AdapterFactory.java
@@ -14,15 +14,17 @@
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.model.IWorkbenchAdapter;
 import org.eclipse.wst.validation.Validator;
+import org.eclipse.wst.validation.internal.ValidatorMutable;
 import org.eclipse.wst.validation.internal.model.FilterGroup;
 import org.eclipse.wst.validation.internal.model.FilterRule;
 
 public class AdapterFactory implements IAdapterFactory {
 
 	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		if (adapterType == IWorkbenchAdapter.class&& adaptableObject instanceof Validator.V2)return _valAdaptor;
+		if (adapterType == IWorkbenchAdapter.class && adaptableObject instanceof Validator.V2)return _valAdaptor;
 		if (adapterType == IWorkbenchAdapter.class && adaptableObject instanceof FilterGroup)return _fgAdaptor;
 		if (adapterType == IWorkbenchAdapter.class && adaptableObject instanceof FilterRule)return _ruleAdaptor;
+		if (adapterType == IWorkbenchAdapter.class && adaptableObject instanceof ValidatorMutable)return _valMutableAdaptor;
 
 		return null;
 	}
@@ -50,6 +52,25 @@
 		}
 
 	};
+	private IWorkbenchAdapter _valMutableAdaptor = new IWorkbenchAdapter() {
+
+		public Object[] getChildren(Object o) {
+			return ((ValidatorMutable) o).getGroups();
+		}
+
+		public ImageDescriptor getImageDescriptor(Object o) {
+			return null;
+		}
+
+		public String getLabel(Object o) {
+			return ((ValidatorMutable) o).getName();
+		}
+
+		public Object getParent(Object o) {
+			return null;
+		}
+
+	};
 
 	private IWorkbenchAdapter _fgAdaptor = new IWorkbenchAdapter() {
 
diff --git a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/HelpContextIds.java b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/HelpContextIds.java
new file mode 100644
index 0000000..1af7aeb
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/HelpContextIds.java
@@ -0,0 +1,18 @@
+package org.eclipse.wst.validation.ui.internal;
+
+import org.eclipse.wst.validation.internal.ui.plugin.ValidationUIPlugin;
+
+public interface HelpContextIds {
+	String PreferencePage = ValidationUIPlugin.VALIDATION_PLUGIN_ID + ".jvgp0000"; //$NON-NLS-1$
+	
+	String FilterRule = ValidationUIPlugin.VALIDATION_PLUGIN_ID + ".jvgp0100";  //$NON-NLS-1$
+	String FRFileExt = ValidationUIPlugin.VALIDATION_PLUGIN_ID + ".jvgp0101";  //$NON-NLS-1$
+	String FRName = ValidationUIPlugin.VALIDATION_PLUGIN_ID + ".jvgp0102";  //$NON-NLS-1$
+	String FRProjectNature = ValidationUIPlugin.VALIDATION_PLUGIN_ID + ".jvgp0103";  //$NON-NLS-1$
+	String FRFacet = ValidationUIPlugin.VALIDATION_PLUGIN_ID + ".jvgp0104";  //$NON-NLS-1$
+	String FRContentType = ValidationUIPlugin.VALIDATION_PLUGIN_ID + ".jvgp0105";  //$NON-NLS-1$
+	
+	String ProjectPage = ValidationUIPlugin.VALIDATION_PLUGIN_ID + ".jvpp0000"; //$NON-NLS-1$
+	String ProjectFilterRule = ValidationUIPlugin.VALIDATION_PLUGIN_ID + ".jvpp0100";  //$NON-NLS-1$
+
+}
diff --git a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/ManualValidationRunner.java b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/ManualValidationRunner.java
index f23b113..f70bcce 100644
--- a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/ManualValidationRunner.java
+++ b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/ManualValidationRunner.java
@@ -20,10 +20,11 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.MultiRule;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.validation.ValidationResult;
 import org.eclipse.wst.validation.internal.ValOperation;
 import org.eclipse.wst.validation.internal.ValType;
+import org.eclipse.wst.validation.internal.ValidationResultSummary;
 import org.eclipse.wst.validation.internal.ValidationRunner;
 import org.eclipse.wst.validation.ui.internal.dialog.ResultsDialog;
 
@@ -53,11 +54,19 @@
 	 *            Is this a build based validation?
 	 * 
 	 * @param showResults
-	 *            When the validation is finished, show the results in a dialog
-	 *            box.
+	 *            When the validation is finished, show the results in a dialog box.
 	 */
 	public static void validate(Map<IProject, Set<IResource>> projects, ValType valType, boolean showResults){
 		ManualValidationRunner me = new ManualValidationRunner(projects, valType, showResults);
+		
+		//TODO optimize this, I don't like the idea of validators having to lock the entire project
+		Set<IProject> keys = projects.keySet();
+		IProject[] projectArray = new IProject[keys.size()];
+		keys.toArray(projectArray);
+		if (projectArray.length == 1)me.setRule(projectArray[0]);
+		else {
+			me.setRule(MultiRule.combine(projectArray));
+		}
 		me.schedule();
 	}
 	
@@ -71,19 +80,19 @@
 	public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
 		
 		long start = System.currentTimeMillis();
-		final ValOperation vo = ValidationRunner.validate(_projects, _valType, monitor);
+		final ValOperation vo = ValidationRunner.validate(_projects, _valType, monitor, false);
 		final long time = System.currentTimeMillis() - start;
 		int resourceCount = 0;
 		for (Set s : _projects.values())resourceCount += s.size();
 		final int finalResourceCount = resourceCount;
-		if (vo.getResult().isCanceled())return Status.CANCEL_STATUS;
+		if (vo.isCanceled())return Status.CANCEL_STATUS;
 		
 		if (_showResults){
 			Display display = Display.getDefault();
 			Runnable run = new Runnable(){
 
 				public void run() {
-					ValidationResult vr = vo.getResult();
+					ValidationResultSummary vr = vo.getResult();
 					ResultsDialog rd = new ResultsDialog(null, vr, time, finalResourceCount);
 					rd.open();
 				}
diff --git a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/ValUIMessages.java b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/ValUIMessages.java
index ae7db15..99da9b9 100644
--- a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/ValUIMessages.java
+++ b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/ValUIMessages.java
@@ -100,6 +100,7 @@
 	public static String FrFolderFilter;
 	public static String FrProjectNature;
 	public static String FrProjectNatureLabel;
+	public static String FrSimpleFileName;
 	public static String FrFacit;
 	public static String FrFacitLabel;
 	public static String FrContentType;
diff --git a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/FilterDialog.java b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/FilterDialog.java
index 78dc444..186eaae 100644
--- a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/FilterDialog.java
+++ b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/FilterDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -45,6 +45,7 @@
 import org.eclipse.wst.validation.Validator;
 import org.eclipse.wst.validation.internal.ValManager;
 import org.eclipse.wst.validation.internal.ValMessages;
+import org.eclipse.wst.validation.internal.ValidatorMutable;
 import org.eclipse.wst.validation.internal.delegates.ValidatorDelegateDescriptor;
 import org.eclipse.wst.validation.internal.delegates.ValidatorDelegatesRegistry;
 import org.eclipse.wst.validation.internal.model.FilterGroup;
@@ -60,7 +61,7 @@
  * @author karasiuk
  *
  */
-public class FilterDialog extends Dialog {
+public final class FilterDialog extends Dialog {
 	
 	/** 
 	 * If we are doing project level filters this will point to the project. This is null if we are doing
@@ -68,14 +69,8 @@
 	 */
 	private IProject	_project;
 	
-	/** 
-	 * A deep copy of the validator, so that we can use it as a model object, and not worry about the
-	 * user not saving their changes.
-	 */
-	private Validator 	_validator;
+	private ValidatorMutable 	_validator;
 	
-	// The V2 version of _validator.
-	private Validator.V2	_v2;
 	private TreeViewer		_tree;
 	private Combo			_delegating;
 	private IAdapterFactory _adaptorFactory = new AdapterFactory();
@@ -86,7 +81,10 @@
 	private Button		_remove;
 	private ISelectionChangedListener	_nodeChangedListener;
 	
+	/** The currently selected group. If a rule is selected instead, then this will be null. */
 	private FilterGroup	_selectedGroup;
+	
+	/** The currently selected rule. If a group is selected instead, then this will be null. */
 	private FilterRule	_selectedRule;
 	
 	private Combo[]		_messageSev;
@@ -106,12 +104,11 @@
 	 * @param project the project that the filters are being added to. If these are workspace
 	 * level filters, then this must be null. 
 	 */
-	public FilterDialog(Shell shell, Validator validator, IProject project){
+	public FilterDialog(Shell shell, ValidatorMutable validator, IProject project){
 		super(shell);
 		_shell = shell;
 		setShellStyle(getShellStyle() | SWT.CLOSE|SWT.MIN|SWT.MAX|SWT.RESIZE);
-		_validator = validator.copy(true);
-		_v2 = _validator.asV2Validator();
+		_validator = validator;
 		_project = project;
 	}
 	
@@ -123,7 +120,7 @@
 	protected Control createDialogArea(Composite parent) {
 		Composite c = (Composite)super.createDialogArea(parent);
 		c.setLayout(new GridLayout(2, false));
-		if (_v2 == null){
+		if (!_validator.isV2Validator()){
 			new Label(c, SWT.NONE).setText(ValUIMessages.fdNoFilters);
 		}
 		else {
@@ -133,17 +130,17 @@
 			
 			_tree = new TreeViewer(c, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
 			_tree.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-			Platform.getAdapterManager().registerAdapters(_adaptorFactory, Validator.V2.class);
+			Platform.getAdapterManager().registerAdapters(_adaptorFactory, ValidatorMutable.class);
 			Platform.getAdapterManager().registerAdapters(_adaptorFactory, FilterGroup.class);
 			Platform.getAdapterManager().registerAdapters(_adaptorFactory, FilterRule.class);
 			_tree.setContentProvider(new BaseWorkbenchContentProvider());
 			_tree.setLabelProvider(new WorkbenchLabelProvider());
-			_tree.setInput(_v2);
+			_tree.setInput(_validator);
 			_tree.expandAll();
 			
 			addButtons(c);
 			
-			String delegatingId = _v2.getDelegatingId();
+			String delegatingId = _validator.getDelegatingId();
 			if (delegatingId != null){
 				addDelegatorSelection(c);
 			}
@@ -233,8 +230,9 @@
 				
 				FilterRule rule = nfr.getRule();
 				if (rule != null){
-					_selectedGroup.add(rule);
-					_v2.bumpChangeCountGroups();
+					FilterGroup newGroup = FilterGroup.addRule(_selectedGroup, rule);
+					_validator.replaceFilterGroup(_selectedGroup, newGroup);
+					_selectedGroup = newGroup;
 					refresh();
 				}
 			}
@@ -272,15 +270,14 @@
 	}
 	
 	private void restoreDefaults() {
-		if (_v2 != null){
+		if (_validator.isV2Validator()){
 			try {
-				String id = _v2.getId();
+				String id = _validator.getId();
 				Validator[] vals = ValManager.getDefaultValidators();
 				for (Validator v : vals){
 					if (v.getId().equals(id)){
-						_validator = v;
-						_v2 = v.asV2Validator();
-						_tree.setInput(_v2);
+						_validator = new ValidatorMutable(v);
+						_tree.setInput(_validator);
 						_tree.expandAll();
 						refresh();
 						return;
@@ -296,7 +293,7 @@
 
 
 	private void addMessageMappings(Composite c) {
-		if (_v2 == null)return;
+		if (!_validator.isV2Validator())return;
 		Map<String,MessageSeveritySetting> mappings = _validator.getMessageSettings();
 		if (mappings == null || mappings.size() == 0)return;
 		
@@ -347,11 +344,12 @@
 	 * Add a combo box so that the user can change which delegating validator to call.
 	 */
 	private void addDelegatorSelection(Composite c) {
-		Map map = ValidatorDelegatesRegistry.getInstance().getDelegateDescriptors(_v2.getValidatorClassname());
+		Map map = ValidatorDelegatesRegistry.getInstance().getDelegateDescriptors(_validator.getValidatorClassname());
 		if (map == null)return;
 		
 		Composite line = new Composite(c, SWT.NONE);
 		line.setLayout(new RowLayout(SWT.HORIZONTAL));
+		line.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));
 
 		Label label = new Label(line, SWT.CENTER);
 		label.setText(ValUIMessages.DelegatesComboLabel);
@@ -366,7 +364,7 @@
 			ValidatorDelegateDescriptor vd = (ValidatorDelegateDescriptor)it.next();
 			items[i] = vd.getName();
 			ids[i] = vd.getId();
-			if (vd.getId().equals(_v2.getDelegatingId())){
+			if (vd.getId().equals(_validator.getDelegatingId())){
 				selected = vd.getName();
 			}
 		}
@@ -379,7 +377,7 @@
 
 			public void widgetSelected(SelectionEvent e) {
 				int sel = _delegating.getSelectionIndex();
-				_v2.setDelegatingId(ids[sel]);
+				_validator.setDelegatingId(ids[sel]);
 			}
 			
 		});
@@ -390,14 +388,16 @@
 	 * @param exclude
 	 */
 	private void addGroup(boolean exclude){
-		if (_v2 == null)return;
-		_v2.add(FilterGroup.create(exclude));
+		if (!_validator.isV2Validator())return;
+		FilterRule[] rules = new FilterRule[0];
+		_validator.add(FilterGroup.create(exclude, rules));
 		refresh();
 		
 	}
 	
 	private void refresh(){
 		_tree.refresh();
+		_tree.expandAll();
 		updateButtons();		
 	}
 	
@@ -406,26 +406,38 @@
 	 */
 	private void remove(){
 		if (_selectedRule != null){
-			FilterGroup[] groups = _v2.getGroups();
-			for (int i=0; i<groups.length; i++){
-				if (groups[i].remove(_selectedRule)){
-					_v2.bumpChangeCountGroups();
-					refresh();
-					return;
-				}
+			FilterGroup group = findGroup(_selectedRule);
+			if (group != null){
+				FilterGroup newGroup = FilterGroup.removeRule(group, _selectedRule);
+				_validator.replaceFilterGroup(group, newGroup);
+				refresh();
 			}
 		}
 		
 		if (_selectedGroup != null){
-			_v2.remove(_selectedGroup);
+			_validator.remove(_selectedGroup);
 			refresh();
 			return;
 		}
 	}
 	
+	/**
+	 * Find the group in the current validator that has this rule.
+	 * @param rule The rule that we are searching for.
+	 * @return null if we can not find the group.
+	 */
+	private FilterGroup findGroup(FilterRule rule) {
+		for (FilterGroup group : _validator.getGroups()){
+			for (FilterRule fr : group.getRules()){
+				if (fr.equals(rule))return group;
+			}
+		}
+		return null;
+	}
+
 	private void updateButtons() {
-		if (_v2 != null){
-			_addGroupExclude.setEnabled(!ValidatorHelper.hasExcludeGroup(_v2));
+		if (_validator.isV2Validator()){
+			_addGroupExclude.setEnabled(!ValidatorHelper.hasExcludeGroup(_validator));
 		}
 		_addRule.setEnabled(_selectedGroup != null);
 		_remove.setEnabled(_selectedGroup != null || _selectedRule != null);
@@ -448,10 +460,10 @@
 	}
 	
 	protected Point getInitialSize() {
-		return new Point(550, 475);
+		return new Point(600, 475);
 	}
 
-	public Validator getValidator() {
+	public ValidatorMutable getValidator() {
 		return _validator;
 	}
 }
diff --git a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/NewFilterRule.java b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/NewFilterRule.java
index 024d271..7f64b96 100644
--- a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/NewFilterRule.java
+++ b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/NewFilterRule.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -37,7 +37,9 @@
 import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.wst.validation.internal.model.FilterRule;
+import org.eclipse.wst.validation.ui.internal.HelpContextIds;
 import org.eclipse.wst.validation.ui.internal.ValUIMessages;
 
 /**
@@ -124,6 +126,8 @@
 		}
 		
 		public void createControl(Composite parent) {
+			String helpId = _project == null ? HelpContextIds.FilterRule : HelpContextIds.ProjectFilterRule;
+			PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, helpId);
 			String[] labels = null;
 			String[] desc = null;
 			if (_project != null){
@@ -172,7 +176,7 @@
 				button.setText(labels[i]);
 				button.setData(new Integer(i));			
 				button.addSelectionListener(listener);
-				(new Label(control, SWT.WRAP)).setText(desc[i]);
+				(new Text(control, SWT.WRAP|SWT.READ_ONLY)).setText(desc[i]);
 				if (i == 0)button.setSelection(true);				
 			}			
 			setControl(control);			
@@ -199,11 +203,12 @@
 		}
 
 		public void createControl(Composite parent) {
+			PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HelpContextIds.FRFileExt);
 			Composite control = new Composite(parent, SWT.NONE);
 			setControl(control);
 			control.setLayout(new GridLayout(2, false));
 			(new Label(control, SWT.NONE)).setText(ValUIMessages.FrFileExtensionLabel);
-			_pattern = new Text(control, SWT.NONE);
+			_pattern = new Text(control, SWT.BORDER);
 			_pattern.setFocus();
 			_pattern.addModifyListener(new ModifyListener(){
 
@@ -238,9 +243,12 @@
 		private Button	_browseFile;
 		private Button	_browseFolder;
 		private Button	_case;
+		private Button	_simpleFileName;
 		
 		private IProject	_project;
-		private int			_type;
+		private int			_type = FilterRule.File.FileTypeFile;
+		private IPath		_fullFileName;
+		private String		_root;
 		
 		public FilePage(IProject project){
 			super("file", ValUIMessages.FrFolderOrFile, null); //$NON-NLS-1$
@@ -248,11 +256,12 @@
 		}
 
 		public void createControl(Composite parent) {
+			PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HelpContextIds.FRName);
 			final Composite control = new Composite(parent, SWT.NONE);
 			setControl(control);
 			control.setLayout(new GridLayout(4, false));
 			(new Label(control, SWT.NONE)).setText(ValUIMessages.FrFolderOrFileLabel);
-			_pattern = new Text(control, SWT.NONE);
+			_pattern = new Text(control, SWT.BORDER);
 			_pattern.setFocus();
 			_pattern.setLayoutData(new GridData(300, SWT.DEFAULT));
 			_pattern.addModifyListener(new ModifyListener(){
@@ -262,9 +271,15 @@
 				}
 				
 			});
-			
+
+			_root = null;
+			IPath base = _project == null ? ResourcesPlugin.getWorkspace().getRoot().getLocation() :
+				_project.getLocation();
+			if (base != null)_root = base.toOSString();
+						
 			_browseFile = new Button(control, SWT.PUSH);
 			_browseFile.setText(ValUIMessages.FrBrowseFile);
+			_browseFile.setEnabled(_root != null);
 			_browseFile.addSelectionListener(new SelectionListener(){
 
 				public void widgetDefaultSelected(SelectionEvent e) {
@@ -278,34 +293,36 @@
 				private void browse(){
 					FileDialog fd = new FileDialog(control.getShell(), SWT.OPEN);
 					fd.setText(ValUIMessages.FrFileFilter);
-					IPath base = _project == null ? 
-						ResourcesPlugin.getWorkspace().getRoot().getLocation() :
-						_project.getLocation();
-					String root = null;
-					if (base != null){
-						root = base.toOSString();
-						fd.setFilterPath(root);
-					}
+					fd.setFilterPath(_root);
 					
 					String file = fd.open();
 					if (file != null){
-						if (root != null && file.startsWith(root) && file.length() > root.length()){
-							file = file.substring(root.length()+1);
-							IPath path = new Path(file);
-							if (_project == null)path = path.removeFirstSegments(1);
+						if (file.startsWith(_root))file = file.substring(_root.length()+1);
+						else file = null;
+					}
+					if (file != null){
+						_fullFileName = new Path(file);
+						if (_project == null)_fullFileName = _fullFileName.removeFirstSegments(1);
+
+						if (_simpleFileName.getSelection()){
 							_type = FilterRule.File.FileTypeFile;
-							_pattern.setText(path.toPortableString());
+							_pattern.setText(_fullFileName.lastSegment());
 						}
 						else {
 							_type = FilterRule.File.FileTypeFull;
-							_pattern.setText(file);
+							_pattern.setText(_fullFileName.toPortableString());
 						}
 					}
+					else {
+						_fullFileName = null;
+						_pattern.setText(""); //$NON-NLS-1$
+					}
 				}				
 			});
 			
 			_browseFolder = new Button(control, SWT.PUSH);
 			_browseFolder.setText(ValUIMessages.FrBrowseFolder);
+			_browseFolder.setEnabled(_root != null);
 			_browseFolder.addSelectionListener(new SelectionListener(){
 
 				public void widgetDefaultSelected(SelectionEvent e) {
@@ -319,25 +336,19 @@
 				private void browse(){
 					DirectoryDialog fd = new DirectoryDialog(control.getShell());
 					fd.setMessage(ValUIMessages.FrFolderFilter);
-					IPath base = _project == null ? 
-						ResourcesPlugin.getWorkspace().getRoot().getLocation() : _project.getLocation();
-					String root = null;
-					if (base != null){
-						root = base.toOSString();
-						fd.setFilterPath(root);
-					}
+					fd.setFilterPath(_root);
 					String dir = fd.open();
 					if (dir != null){
-						if (root != null && dir.startsWith(root) && dir.length() > root.length()){
-							dir = dir.substring(root.length()+1);
+						_fullFileName = null;
+						_type = FilterRule.File.FileTypeFolder;
+						if (dir.startsWith(_root) && dir.length() > _root.length()){
+							dir = dir.substring(_root.length()+1);
 							IPath path = new Path(dir);
 							if (_project == null)path = path.removeFirstSegments(1);
-							_type = FilterRule.File.FileTypeFolder;
 							_pattern.setText(path.toPortableString());
 						}
 						else {
-							_type = FilterRule.File.FileTypeFull;
-							_pattern.setText(dir);				
+							_pattern.setText(""); //$NON-NLS-1$
 						}
 					}
 				}
@@ -347,7 +358,33 @@
 			_case = new Button(control, SWT.CHECK);
 			_case.setText(ValUIMessages.FrCaseSensitive);
 			_case.setSelection(false);
-			_case.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING,false, false, 2, 1));
+			_case.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING,false, false, 4, 1));
+			
+			addSimpleFileNameButton(control);
+		}
+
+		private void addSimpleFileNameButton(final Composite control) {
+			_simpleFileName = new Button(control, SWT.CHECK);
+			_simpleFileName.setText(ValUIMessages.FrSimpleFileName);
+			_simpleFileName.setSelection(_type == FilterRule.File.FileTypeFile);
+			_simpleFileName.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING,false, false, 4, 1));
+			
+			_simpleFileName.addSelectionListener(new SelectionListener(){
+
+				public void widgetDefaultSelected(SelectionEvent e) {
+				}
+
+				public void widgetSelected(SelectionEvent e) {
+					if (_type == FilterRule.File.FileTypeFolder)return;
+					if (_simpleFileName.getSelection()){
+						if (_fullFileName != null)_pattern.setText(_fullFileName.lastSegment());
+						_type = FilterRule.File.FileTypeFile;
+					}
+					else {
+						if (_fullFileName != null)_pattern.setText(_fullFileName.toPortableString());
+						_type = FilterRule.File.FileTypeFull;					}
+					}				
+				});
 		}
 
 		public FilterRule getFilterRule() {
@@ -356,6 +393,8 @@
 		}
 		
 		public boolean isPageComplete() {
+			if (_pattern == null)return false;
+			if (_pattern.getText() == null)return false;
 			return _pattern.getText().trim().length() > 0;
 		}
 		
@@ -371,6 +410,7 @@
 		}
 
 		public void createControl(Composite parent) {
+			PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HelpContextIds.FRProjectNature);
 			Composite control = new Composite(parent, SWT.NONE);
 			setControl(control);
 			control.setLayout(new GridLayout(2, false));
@@ -404,6 +444,8 @@
 		}
 		
 		public boolean isPageComplete() {
+			if (_natures == null)return false;
+			if (_natures.getText() == null)return false;
 			return _natures.getText().trim().length() > 0;
 		}
 	
@@ -418,11 +460,12 @@
 		}
 
 		public void createControl(Composite parent) {
+			PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HelpContextIds.FRFacet);
 			Composite control = new Composite(parent, SWT.NONE);
 			setControl(control);
 			control.setLayout(new GridLayout(2, false));
 			(new Label(control, SWT.NONE)).setText(ValUIMessages.FrFacitLabel);
-			_pattern = new Text(control, SWT.NONE);
+			_pattern = new Text(control, SWT.BORDER);
 			_pattern.setFocus();
 			_pattern.setLayoutData(new GridData(300, SWT.DEFAULT));
 			_pattern.addModifyListener(new ModifyListener(){
@@ -441,6 +484,8 @@
 		}
 		
 		public boolean isPageComplete() {
+			if (_pattern == null)return false;
+			if (_pattern.getText() == null)return false;
 			return _pattern.getText().trim().length() > 0;
 		}
 		
@@ -456,6 +501,7 @@
 		}
 
 		public void createControl(Composite parent) {
+			PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HelpContextIds.FRContentType);
 			Composite control = new Composite(parent, SWT.NONE);
 			setControl(control);
 			control.setLayout(new GridLayout(2, false));
@@ -502,6 +548,8 @@
 		}
 		
 		public boolean isPageComplete() {
+			if (_pattern == null)return false;
+			if (_pattern.getText() == null)return false;
 			return _pattern.getText().trim().length() > 0;
 		}
 		
diff --git a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/ResultsDialog.java b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/ResultsDialog.java
index 4522eea..3534eb7 100644
--- a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/ResultsDialog.java
+++ b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/dialog/ResultsDialog.java
@@ -24,11 +24,12 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.validation.ValidationResult;
 import org.eclipse.wst.validation.internal.Misc;
 import org.eclipse.wst.validation.internal.ValManager;
 import org.eclipse.wst.validation.internal.ValPrefManagerGlobal;
+import org.eclipse.wst.validation.internal.ValidationResultSummary;
 import org.eclipse.wst.validation.internal.model.GlobalPreferences;
+import org.eclipse.wst.validation.internal.model.GlobalPreferencesValues;
 import org.eclipse.wst.validation.internal.ui.ValidationUIMessages;
 import org.eclipse.wst.validation.ui.internal.ValUIMessages;
 
@@ -39,7 +40,7 @@
  */
 public class ResultsDialog extends IconAndMessageDialog {
 	
-	private ValidationResult 	_result;
+	private ValidationResultSummary 	_result;
 	private long				_time;
 	private int					_resourceCount;
 	private Button _hideButton;
@@ -52,7 +53,7 @@
 	 * @param time the time that the validation took in milliseconds
 	 * @param resourceCount the number of resources that were validated
 	 */
-	public ResultsDialog(Shell parentShell, ValidationResult results, long time, int resourceCount) {
+	public ResultsDialog(Shell parentShell, ValidationResultSummary results, long time, int resourceCount) {
 		super(parentShell);
 		_result = results;
 		_time = time;
@@ -62,9 +63,12 @@
 	@Override
 	protected void okPressed() {
 		if(_hideButton!=null) {
-			GlobalPreferences gp = ValManager.getDefault().getGlobalPreferences();
-			gp.setConfirmDialog(!_hideButton.getSelection());
-			ValPrefManagerGlobal.getDefault().savePreferences(gp);
+			ValManager vm = ValManager.getDefault();
+			GlobalPreferences gp = vm.getGlobalPreferences();
+			GlobalPreferencesValues gpv = gp.asValues();
+			gpv.confirmDialog = !_hideButton.getSelection();
+			int changes = vm.replace(gpv);
+			if (changes != 0)ValPrefManagerGlobal.getDefault().savePreferences();
 		}
 		super.okPressed();
 	}
diff --git a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/preferences/ValidationPreferencePage.java b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/preferences/ValidationPreferencePage.java
index 53b4816..2f1da24 100644
--- a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/preferences/ValidationPreferencePage.java
+++ b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/preferences/ValidationPreferencePage.java
@@ -1,7 +1,5 @@
-package org.eclipse.wst.validation.ui.internal.preferences;
-
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,21 +8,19 @@
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
+package org.eclipse.wst.validation.ui.internal.preferences;
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableLayout;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerSorter;
@@ -66,11 +62,12 @@
 import org.eclipse.wst.validation.internal.ValManager;
 import org.eclipse.wst.validation.internal.ValPrefManagerGlobal;
 import org.eclipse.wst.validation.internal.ValidatorMetaData;
+import org.eclipse.wst.validation.internal.ValidatorMutable;
 import org.eclipse.wst.validation.internal.model.GlobalPreferences;
-import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
-import org.eclipse.wst.validation.internal.ui.ContextIds;
+import org.eclipse.wst.validation.internal.model.GlobalPreferencesValues;
 import org.eclipse.wst.validation.internal.ui.DelegatingValidatorPreferencesDialog;
 import org.eclipse.wst.validation.internal.ui.plugin.ValidationUIPlugin;
+import org.eclipse.wst.validation.ui.internal.HelpContextIds;
 import org.eclipse.wst.validation.ui.internal.ImageNames;
 import org.eclipse.wst.validation.ui.internal.ValUIMessages;
 import org.eclipse.wst.validation.ui.internal.dialog.FilterDialog;
@@ -88,22 +85,17 @@
 	private Shell _shell;
 
 	public interface IValidationPage {
+		
 		Composite createPage(Composite parent) throws InvocationTargetException;
-
 		boolean performOk() throws InvocationTargetException;
-
 		boolean performDefaults() throws InvocationTargetException;
-
 		Composite getControl();
-
 		void dispose();
-
 		void loseFocus();
-
 		void gainFocus();
 	}
 
-	public class InvalidPage implements IValidationPage {
+	public final class InvalidPage implements IValidationPage {
 		private Composite page = null;
 
 		private Composite composite = null;
@@ -130,7 +122,6 @@
 			sc1.setContent(composite);
 			layout = new GridLayout();
 			composite.setLayout(layout);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, ContextIds.VALIDATION_PROPERTIES_PAGE);
 
 			messageLabel = new Label(composite, SWT.NONE);
 			messageLabel.setText(ValUIMessages.VBF_EXC_INVALID_REGISTER);
@@ -173,9 +164,8 @@
 		}
 	}
 
-	private class ValidatorListPage implements IValidationPage {
+	private final class ValidatorListPage implements IValidationPage {
 		private Composite _page;
-		private Composite _composite;
 		private TableViewer _validatorList;
 		private Button _enableAllButton;
 		private Button _disableAllButton;
@@ -185,9 +175,11 @@
 		private Button _confirmButton;
 		private Label _listLabel;
 		private Table _validatorsTable;
-		private GlobalPreferences 	_globalPreferences = ValManager.getDefault().getGlobalPreferences();
+		private GlobalPreferencesValues 	_globalPreferences = ValManager.getDefault().getGlobalPreferences().asValues();
 		private GlobalConfiguration _globalConfig;
-		private Validator[] _validators;
+		private ValidatorMutable[] _validators;
+		
+		private int _changeCount;
 
 		/**
 		 * This class is provided for the CheckboxTableViewer in the
@@ -198,8 +190,8 @@
 			}
 
 			public Object[] getElements(Object inputElement) {
-				if (inputElement instanceof Validator[]) {
-					return (Validator[]) inputElement;
+				if (inputElement instanceof ValidatorMutable[]) {
+					return (ValidatorMutable[]) inputElement;
 				}
 				return new Object[0];
 			}
@@ -215,8 +207,8 @@
 		public class ValidationLabelProvider extends LabelProvider implements ITableLabelProvider {
 			public String getText(Object element) {
 				if (element == null)return ""; //$NON-NLS-1$
-				else if (element instanceof Validator)
-					return ((Validator) element).getName();
+				else if (element instanceof ValidatorMutable)
+					return ((ValidatorMutable) element).getName();
 				else
 					return super.getText(element);
 			}
@@ -229,7 +221,7 @@
 			}
 
 			public Image getColumnImage(Object element, int columnIndex) {
-				Validator v = (Validator) element;
+				ValidatorMutable v = (ValidatorMutable) element;
 				if (columnIndex == 1) {
 					return getImage(v.isManualValidation() ? ImageNames.okTable : ImageNames.failTable);
 				} else if (columnIndex == 2) {
@@ -243,7 +235,7 @@
 			}
 
 			public String getColumnText(Object element, int columnIndex) {
-				if (columnIndex == 0)return ((Validator) element).getName();
+				if (columnIndex == 0)return ((ValidatorMutable) element).getName();
 				return null;
 			}
 		}
@@ -266,40 +258,36 @@
 		private void setupTableColumns(Table table) {
 			TableColumn validatorColumn = new TableColumn(table, SWT.NONE);
 			validatorColumn.setText(ValUIMessages.VALIDATOR);
-			validatorColumn.setResizable(false);
-			validatorColumn.setWidth(320);
-			TableColumn manualColumn = new TableColumn(table, SWT.NONE);
+			validatorColumn.setWidth(245);
+			TableColumn manualColumn = new TableColumn(table, SWT.CENTER);
 			manualColumn.setText(ValUIMessages.MANUAL);
-			manualColumn.setResizable(false);
-			manualColumn.setWidth(40);
-			TableColumn buildColumn = new TableColumn(table, SWT.NONE);
+			manualColumn.pack();
+			TableColumn buildColumn = new TableColumn(table, SWT.CENTER);
 			buildColumn.setText(ValUIMessages.BUILD);
-			buildColumn.setResizable(false);
-			buildColumn.setWidth(40);
+			buildColumn.pack();
 			TableColumn settingsColumn = new TableColumn(table, SWT.CENTER);
 			settingsColumn.setText(ValUIMessages.SETTINGS);
-			settingsColumn.setResizable(false);
-			settingsColumn.setWidth(50);
+			settingsColumn.pack();
+		}
+		
+		private ValidatorMutable[] getDefaultValidators(){
+			Validator[] vals = ValManager.getDefault().getValidators();
+			ValidatorMutable[] vms = new ValidatorMutable[vals.length];
+			for (int i=0; i<vals.length; i++)vms[i] = new ValidatorMutable(vals[i]);
+			return vms;
 		}
 
 		public Composite createPage(Composite parent) throws InvocationTargetException {
 			_globalConfig = new GlobalConfiguration(ConfigurationManager.getManager().getGlobalConfiguration());
-			_validators = copyValidators(ValManager.getDefault().getValidators());
+			_validators = getDefaultValidators();
 			
-			final ScrolledComposite sc1 = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-			sc1.setLayoutData(new GridData(GridData.FILL_BOTH));
-			_composite = new Composite(sc1, SWT.NONE);
-			sc1.setContent(_composite);
-			_composite.setLayout(new GridLayout());
-			 PlatformUI.getWorkbench().getHelpSystem().setHelp(_composite, ContextIds.VALIDATION_PREFERENCE_PAGE);
-
-			Composite validatorGroup = new Composite(_composite, SWT.NONE);
+			Composite validatorGroup = new Composite(parent, SWT.NONE);
 
 			GridLayout validatorGroupLayout = new GridLayout();
 			validatorGroupLayout.numColumns = 2;
 			validatorGroup.setLayout(validatorGroupLayout);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(validatorGroup, ContextIds.VALIDATION_PREFERENCE_PAGE);
-
+			GridDataFactory.fillDefaults().grab(true, true).applyTo(validatorGroup);
+			
 			new Label(validatorGroup, SWT.NONE).setLayoutData(new GridData());
 
 			addOverride(validatorGroup);
@@ -312,23 +300,19 @@
 			listLabelData.horizontalSpan = 2;
 			_listLabel.setLayoutData(listLabelData);
 			_listLabel.setText(ValUIMessages.PREF_VALLIST_TITLE);
-
-			_validatorsTable = new Table(validatorGroup, SWT.BORDER | SWT.FULL_SELECTION);
-			TableLayout tableLayout = new TableLayout();
-			tableLayout.addColumnData(new ColumnWeightData(160, true));
-			tableLayout.addColumnData(new ColumnWeightData(40, true));
-			tableLayout.addColumnData(new ColumnWeightData(30, true));
-			tableLayout.addColumnData(new ColumnWeightData(40, true));
+			
+			_validatorsTable = new Table(validatorGroup, SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
+			Point preferredSize = _validatorsTable.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+			GridDataFactory.fillDefaults().grab(true, true).hint(preferredSize)
+				.span(2,1).applyTo(_validatorsTable);
+						
 
 			_validatorsTable.setHeaderVisible(true);
 			_validatorsTable.setLinesVisible(true);
-			_validatorsTable.setLayout(tableLayout);
 
-			_validatorList = new TableViewer(_validatorsTable);
-			GridData validatorListData = new GridData(GridData.FILL_HORIZONTAL);
-			validatorListData.horizontalSpan = 2;
-			_validatorsTable.setLayoutData(validatorListData);
-			_validatorList.getTable().setLayoutData(validatorListData);
+			_validatorList = new TableViewer(_validatorsTable);			
+//			_validatorsTable.setLayoutData(validatorListData);
+//			_validatorList.getTable().setLayoutData(validatorListData);
 			_validatorList.setLabelProvider(new ValidationLabelProvider());
 			_validatorList.setContentProvider(new ValidationContentProvider());
 			_validatorList.setSorter(new ValidationViewerSorter());
@@ -338,15 +322,10 @@
 			_validatorsTable.addMouseListener(new MouseAdapter() {
 
 				public void mouseDown(MouseEvent e) {
-					if (e.button != 1)
-						return;
+					if (e.button != 1)return;
 
-					TableItem tableItem = _validatorsTable.getItem(new Point(
-							e.x, e.y));
-					if (tableItem == null || tableItem.isDisposed()) {
-						// item no longer exists
-						return;
-					}
+					TableItem tableItem = _validatorsTable.getItem(new Point(e.x, e.y));
+					if (tableItem == null || tableItem.isDisposed())return;
 					int columnNumber;
 					int columnsCount = _validatorsTable.getColumnCount();
 					if (columnsCount == 0) {
@@ -362,9 +341,7 @@
 								break;
 							}
 						}
-						if (columnNumber == -1) {
-							return;
-						}
+						if (columnNumber == -1)return;
 					}
 
 					columnClicked(columnNumber);
@@ -382,6 +359,16 @@
 				}
 			});
 
+			addEnableDisable(validatorGroup);
+
+			updateWidgets();
+
+			applyDialogFont(validatorGroup);
+			validatorGroup.setSize(validatorGroup.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+			return validatorGroup;
+		}
+
+		private void addEnableDisable(Composite validatorGroup) {
 			_enableAllButton = new Button(validatorGroup, SWT.PUSH);
 			_enableAllButton.setLayoutData(new GridData());
 			_enableAllButton.setText(ValUIMessages.PREF_BUTTON_ENABLEALL);
@@ -390,13 +377,11 @@
 					try {
 						performEnableAll();
 					} catch (InvocationTargetException exc) {
-						displayAndLogError(
-								ValUIMessages.VBF_EXC_INTERNAL_TITLE,
-								ValUIMessages.VBF_EXC_INTERNAL_PAGE, exc);
+						displayAndLogError(ValUIMessages.VBF_EXC_INTERNAL_TITLE,
+							ValUIMessages.VBF_EXC_INTERNAL_PAGE, exc);
 					}
 				}
 			});
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(_enableAllButton, ContextIds.VALIDATION_PREFERENCE_PAGE);
 
 			_disableAllButton = new Button(validatorGroup, SWT.PUSH);
 			_disableAllButton.setLayoutData(new GridData());
@@ -406,37 +391,13 @@
 					try {
 						performDisableAll();
 					} catch (InvocationTargetException exc) {
-						displayAndLogError(
-								ValUIMessages.VBF_EXC_INTERNAL_TITLE,
-								ValUIMessages.VBF_EXC_INTERNAL_PAGE, exc);
+						displayAndLogError(ValUIMessages.VBF_EXC_INTERNAL_TITLE,
+							ValUIMessages.VBF_EXC_INTERNAL_PAGE, exc);
 					}
 				}
 			});
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(_disableAllButton, ContextIds.VALIDATION_PREFERENCE_PAGE);
-
-			// Have to set the tab order or only the first checkbox in a
-			// Composite can be tabbed to. (Seems to apply only to checkboxes. Have to use the
-			// arrow key to navigate the checkboxes.)
-			validatorGroup.setTabList(new Control[] { _suspend, _autoSave,
-				_validatorList.getTable(), _enableAllButton, _disableAllButton });
-
-			updateWidgets();
-
-			applyDialogFont(_composite);
-			_composite.setSize(_composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
-			return sc1;
 		}
 		
-		/**
-		 * Make a copy of the current validators and store the results.
-		 */
-		private Validator[] copyValidators(Validator[] vals){
-			Validator[] copy = new Validator[vals.length];
-			for (int i=0; i<vals.length; i++)copy[i] = vals[i].copy();
-			return copy;
-		}
-
 		private void addConfirm(Composite validatorGroup) {
 			GridData gd;
 			gd = new GridData(GridData.FILL_HORIZONTAL);
@@ -444,10 +405,11 @@
 			_confirmButton = new Button(validatorGroup, SWT.CHECK);
 			_confirmButton.setLayoutData(gd);
 			_confirmButton.setText(ValUIMessages.PrefPageConfirmDialog);
-			_confirmButton.setSelection(_globalPreferences.getConfirmDialog());
+			_confirmButton.setSelection(_globalPreferences.confirmDialog);
 			_confirmButton.addSelectionListener(new SelectionAdapter() {
 				public void widgetSelected(SelectionEvent e) {
-					_globalPreferences.setConfirmDialog(_confirmButton.getSelection());
+					// do not increment the _changeCount as this by itself should not trigger a build prompt
+					_globalPreferences.confirmDialog = _confirmButton.getSelection();
 					_confirmButton.setFocus();
 				}
 			});
@@ -460,10 +422,11 @@
 			_autoSave = new Button(validatorGroup, SWT.CHECK);
 			_autoSave.setLayoutData(gd);
 			_autoSave.setText(ValUIMessages.PrefPage_always_save);
-			_autoSave.setSelection(_globalPreferences.getSaveAutomatically());
+			_autoSave.setSelection(_globalPreferences.saveAutomatically);
 			_autoSave.addSelectionListener(new SelectionAdapter() {
 				public void widgetSelected(SelectionEvent e) {
-					_globalPreferences.setSaveAutomatically(_autoSave.getSelection());
+					// do not increment the _changeCount as this by itself should not trigger a build prompt
+					_globalPreferences.saveAutomatically = _autoSave.getSelection();
 					_autoSave.setFocus();
 				}
 			});
@@ -477,7 +440,7 @@
 			_suspend = new Button(validatorGroup, SWT.CHECK);
 			_suspend.setLayoutData(gd);
 			_suspend.setText(ValUIMessages.DISABLE_VALIDATION);
-			_suspend.setSelection(_globalPreferences.getDisableAllValidation());
+			_suspend.setSelection(_globalPreferences.disableAllValidation);
 			_suspend.addSelectionListener(new SelectionAdapter() {
 				public void widgetSelected(SelectionEvent e) {
 					_suspend.setFocus();
@@ -497,10 +460,10 @@
 			_override.setLayoutData(gd);
 			_override.setText(ValUIMessages.PREF_BUTTON_OVERRIDE);
 			_override.setEnabled(true);
-			_override.setSelection(_globalPreferences.getOverride());
+			_override.setSelection(_globalPreferences.override);
 			_override.addSelectionListener(new SelectionAdapter() {
 				public void widgetSelected(SelectionEvent e) {
-					_globalPreferences.setOverride(_override.getSelection());
+					_globalPreferences.override = _override.getSelection();
 					_override.setFocus();
 					
 				}
@@ -531,7 +494,7 @@
 			menu.addMenuListener(new MenuAdapter() {
 				public void menuShown(MenuEvent e) {
 					IStructuredSelection selection = (IStructuredSelection) _validatorList.getSelection();
-					Validator vw = (Validator) selection.getFirstElement();
+					ValidatorMutable vw = (ValidatorMutable) selection.getFirstElement();
 					manualItem.setSelection(vw.isManualValidation());
 					buildItem.setSelection(vw.isBuildValidation());
 					settingsItem.setEnabled(hasSettings(vw));
@@ -543,21 +506,26 @@
 
 		protected void columnClicked(int columnToEdit) {
 			IStructuredSelection selection = (IStructuredSelection) _validatorList.getSelection();
-			Validator val = (Validator) selection.getFirstElement();
+			ValidatorMutable val = (ValidatorMutable) selection.getFirstElement();
 
 			switch (columnToEdit) {
 			case 1:
+				_changeCount++;
 				val.setManualValidation(!val.isManualValidation());
 				break;
 			case 2:
+				_changeCount++;
 				val.setBuildValidation(!val.isBuildValidation());
 				break;
 			case 3:
-				Validator.V2 v2 = val.asV2Validator();
-				if (v2 != null){
-					FilterDialog fd = new FilterDialog(_shell, val, null);
+				if (val.isV2Validator()){
+					ValidatorMutable newVal = new ValidatorMutable(val);
+					FilterDialog fd = new FilterDialog(_shell, newVal, null);
 					if (Window.OK == fd.open()){
-						val.become(fd.getValidator());
+						_changeCount++;
+						newVal = fd.getValidator();
+						int i = findit(val);
+						if (i != -1)_validators[i] = newVal;
 					}
 				}
 				else {
@@ -571,11 +539,15 @@
 			_validatorList.refresh();
 		}
 
-		private void handleOldDelegate(Validator val) {
-			Validator.V1 v1 = val.asV1Validator();
-			if (v1 == null)return;
+		private int findit(ValidatorMutable val) {
+			for (int i=0; i<_validators.length; i++)if (_validators[i] == val)return i;
+			return -1;
+		}
+
+		private void handleOldDelegate(ValidatorMutable val) {
+			if (!val.isV1Validator())return;
 			
-			ValidatorMetaData vmd = v1.getVmd();
+			ValidatorMetaData vmd = val.getVmd();
 		    if (!vmd.isDelegating())return;
 		    
 		    String delegateID = _globalConfig.getDelegateUniqueName(vmd);
@@ -587,7 +559,10 @@
 		    dialog.create();
 		
 		    int result = dialog.open();
-	        if (result == Window.OK)_globalConfig.setDelegateUniqueName(vmd, dialog.getDelegateID());
+	        if (result == Window.OK){
+	        	_changeCount++;
+	        	_globalConfig.setDelegateUniqueName(vmd, dialog.getDelegateID());
+	        }
 		}
 		
 		/**
@@ -595,8 +570,8 @@
 		 * @param v
 		 * @return true if it does
 		 */
-		boolean hasSettings(Validator v){
-			if (v.asV2Validator() != null)return true;
+		boolean hasSettings(ValidatorMutable v){
+			if (v.isV2Validator())return true;
 			if (v.getDelegatingId() != null)return true;
 			return false;
 		}
@@ -611,10 +586,10 @@
 		}
 
 		private void updateAllWidgets() throws InvocationTargetException {
-			_suspend.setSelection(_globalPreferences.getDisableAllValidation());
-			_autoSave.setSelection(_globalPreferences.getSaveAutomatically());
-			_confirmButton.setSelection(_globalPreferences.getConfirmDialog());
-			_override.setSelection(_globalPreferences.getOverride());
+			_suspend.setSelection(_globalPreferences.disableAllValidation);
+			_autoSave.setSelection(_globalPreferences.saveAutomatically);
+			_confirmButton.setSelection(_globalPreferences.confirmDialog);
+			_override.setSelection(_globalPreferences.override);
 			_validatorsTable.setEnabled(!_suspend.getSelection());
 			_enableAllButton.setEnabled(!_suspend.getSelection());
 			_disableAllButton.setEnabled(!_suspend.getSelection());
@@ -623,20 +598,21 @@
 		}
 
 		public boolean performOk() throws InvocationTargetException {
-			_globalPreferences.setDisableAllValidation(_suspend.getSelection());
-			_globalPreferences.setSaveAutomatically(_autoSave.getSelection());
+			_globalPreferences.disableAllValidation = _suspend.getSelection();
+			_globalPreferences.saveAutomatically = _autoSave.getSelection();
+			ValManager vm = ValManager.getDefault();
+			int changes = vm.replace(_globalPreferences);
+			if ((changes & GlobalPreferences.BuildChangeMask) != 0)_changeCount++;
+			
 			ValPrefManagerGlobal vpm = ValPrefManagerGlobal.getDefault();
-			vpm.savePreferences(_globalPreferences, _validators);
+			vpm.savePreferences(vm.getGlobalPreferences(), _validators, null);
 			saveV1Preferences();
 			
-			if (MessageDialog.openQuestion(_shell, ValUIMessages.RebuildTitle, ValUIMessages.RebuildMsg)){
+			if (_changeCount > 0 && 
+				MessageDialog.openQuestion(_shell, ValUIMessages.RebuildTitle, ValUIMessages.RebuildMsg)){
+				
 				FullBuildJob fbj = new FullBuildJob();
-				try {
-					fbj.runInWorkspace(new NullProgressMonitor());
-				}
-				catch (CoreException e){
-					ValidationPlugin.getPlugin().handleException(e);
-				}
+				fbj.schedule();
 			}
 			return true;
 		}
@@ -647,11 +623,7 @@
 		private void saveV1Preferences(){
 			try {
 				GlobalConfiguration gc = ConfigurationManager.getManager().getGlobalConfiguration();
-	//			gc.setCanProjectsOverride(overrideButton.getSelection());
-				
-				if (_globalPreferences.getDisableAllValidation())gc.setDisableAllValidation(true);
-				//pagePreferences.setEnabledValidators(getEnabledValidators());
-				
+				gc.setDisableAllValidation(_globalPreferences.disableAllValidation);
 				gc.setEnabledManualValidators(getEnabledManualValidators());				
 				gc.setEnabledBuildValidators(getEnabledBuildValidators());
 	
@@ -660,8 +632,7 @@
 			}
 			catch (InvocationTargetException e){
 				ValidationUIPlugin.getPlugin().handleException(e);
-			}
-			
+			}			
 		}
 
 		/**
@@ -670,13 +641,8 @@
 		 */
 		private ValidatorMetaData[] getEnabledManualValidators() {
 			List<ValidatorMetaData> list = new LinkedList<ValidatorMetaData>();
-			for (Validator v : _validators){
-				if (v.isManualValidation()){
-					Validator.V1 v1 = v.asV1Validator();
-					if (v1 != null){
-						list.add(v1.getVmd());
-					}
-				}
+			for (ValidatorMutable v : _validators){
+				if (v.isManualValidation() && v.isV1Validator())list.add(v.getVmd());
 			}
 			ValidatorMetaData[] result = new ValidatorMetaData[list.size()];
 			list.toArray(result);
@@ -689,11 +655,8 @@
 		 */
 		private ValidatorMetaData[] getEnabledBuildValidators() {
 			List<ValidatorMetaData> list = new LinkedList<ValidatorMetaData>();
-			for (Validator v : _validators){
-				if (v.isBuildValidation()){
-					Validator.V1 v1 = v.asV1Validator();
-					if (v1 != null)list.add(v1.getVmd());
-				}
+			for (ValidatorMutable v : _validators){
+				if (v.isBuildValidation() && v.isV1Validator())list.add(v.getVmd());
 			}
 			ValidatorMetaData[] result = new ValidatorMetaData[list.size()];
 			list.toArray(result);
@@ -701,7 +664,10 @@
 		}
 
 		public boolean performDefaults() throws InvocationTargetException {
-			_validators = copyValidators(ValManager.getDefaultValidators());
+			_changeCount++;
+			Validator[] vals = ValManager.getDefaultValidators();
+			_validators = new ValidatorMutable[vals.length];
+			for (int i=0; i<vals.length; i++)_validators[i] = new ValidatorMutable(vals[i]);
 			updateWidgets();
 			getDefaultsButton().setFocus();
 			return true;
@@ -722,14 +688,15 @@
 		}
 		
 		private void setAllValidators(boolean bool){
-			for (Validator v : _validators){
+			_changeCount++;
+			for (ValidatorMutable v : _validators){
 				v.setBuildValidation(bool);
 				v.setManualValidation(bool);
 			}
 		}
 
 		protected void updateHelp() {
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(_suspend, ContextIds.VALIDATION_PREFERENCE_PAGE_DISABLE_ALL_ENABLED);
+//			PlatformUI.getWorkbench().getHelpSystem().setHelp(_suspend, ContextIds.VALIDATION_PREFERENCE_PAGE_DISABLE_ALL_ENABLED);
 		}
 
 		/*
@@ -748,7 +715,6 @@
 			_listLabel.dispose();
 			_suspend.dispose();
 			_validatorList.getTable().dispose();
-			_composite.dispose();
 		}
 
 		public void loseFocus() {
@@ -762,6 +728,7 @@
 	 * @see PreferencePage#createContents(Composite)
 	 */
 	protected Control createContents(Composite parent) {
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HelpContextIds.PreferencePage);
 		try {
 			_shell = parent.getShell();
 			_pageImpl = new ValidatorListPage(parent);
diff --git a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/preferences/ValidationPropertyPage.java b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/preferences/ValidationPropertyPage.java
index 8028c56..53c574a 100644
--- a/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/preferences/ValidationPropertyPage.java
+++ b/plugins/org.eclipse.wst.validation.ui/vf2/org/eclipse/wst/validation/ui/internal/preferences/ValidationPropertyPage.java
@@ -1,7 +1,5 @@
-package org.eclipse.wst.validation.ui.internal.preferences;
-
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,21 +8,20 @@
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
+package org.eclipse.wst.validation.ui.internal.preferences;
 
 import java.lang.reflect.InvocationTargetException;
-
 import org.eclipse.core.resources.ICommand;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IProjectDescription;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableLayout;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerSorter;
@@ -69,12 +66,14 @@
 import org.eclipse.wst.validation.internal.ValManager;
 import org.eclipse.wst.validation.internal.ValPrefManagerProject;
 import org.eclipse.wst.validation.internal.ValidatorMetaData;
+import org.eclipse.wst.validation.internal.ValidatorMutable;
+import org.eclipse.wst.validation.internal.ValManager.UseProjectPreferences;
 import org.eclipse.wst.validation.internal.model.ProjectPreferences;
 import org.eclipse.wst.validation.internal.operations.ValidatorManager;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
-import org.eclipse.wst.validation.internal.ui.ContextIds;
 import org.eclipse.wst.validation.internal.ui.DelegatingValidatorPreferencesDialog;
 import org.eclipse.wst.validation.internal.ui.plugin.ValidationUIPlugin;
+import org.eclipse.wst.validation.ui.internal.HelpContextIds;
 import org.eclipse.wst.validation.ui.internal.ImageNames;
 import org.eclipse.wst.validation.ui.internal.ValUIMessages;
 import org.eclipse.wst.validation.ui.internal.dialog.FilterDialog;
@@ -90,24 +89,19 @@
 	private Shell 			_shell;
 
 	public interface IValidationPage {
+		
 		Composite createPage(Composite parent) throws InvocationTargetException;
-
 		boolean performOk() throws InvocationTargetException;
-
 		boolean performDefaults() throws InvocationTargetException;
-
 		Composite getControl();
-
 		void dispose();
-
 		void loseFocus();
-
 		void gainFocus();
 	}
 
 	public class InvalidPage implements IValidationPage {
+		
 		private Composite page = null;
-
 		private Composite composite = null;
 		private GridLayout layout = null;
 		private Label messageLabel = null;
@@ -131,7 +125,6 @@
 			sc1.setContent(composite);
 			layout = new GridLayout();
 			composite.setLayout(layout);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, ContextIds.VALIDATION_PROPERTIES_PAGE);
 
 			messageLabel = new Label(composite, SWT.NONE);
 			messageLabel.setText(ValUIMessages.VBF_EXC_INVALID_REGISTER);
@@ -170,10 +163,9 @@
 		}
 	}
 
-	private class ValidatorListPage implements IValidationPage {
+	private final class ValidatorListPage implements IValidationPage {
 		private Composite 		_page;
 
-		private Composite 		_composite;
 		private TableViewer 	_validatorList;
 		private Button 			_enableAllButton;
 		private Button 			_disableAllButton;
@@ -182,7 +174,10 @@
 		private Link			_configLink;
 		private Button			_addValidationBuilder;
 		private Table 			_validatorsTable;
-		private Validator[]		_validators;
+		private ValidatorMutable[]		_validators;
+		
+		/** Number of things that may have changed. */
+		private int				_changes;
 
 		/**
 		 * This class is provided for the CheckboxTableViewer in the
@@ -193,8 +188,8 @@
 			}
 
 			public Object[] getElements(Object inputElement) {
-				if (inputElement instanceof Validator[]) {
-					return (Validator[]) inputElement;
+				if (inputElement instanceof ValidatorMutable[]) {
+					return (ValidatorMutable[]) inputElement;
 				}
 				return new Object[0];
 			}
@@ -212,7 +207,7 @@
 			public String getText(Object element) {
 				if (element == null)return ""; //$NON-NLS-1$
 				else if (element instanceof Validator)
-					return ((Validator) element).getName();
+					return ((ValidatorMutable) element).getName();
 				else
 					return super.getText(element);
 			}
@@ -226,7 +221,7 @@
 			}
 
 			public Image getColumnImage(Object element, int columnIndex) {
-				Validator v = (Validator) element;
+				ValidatorMutable v = (ValidatorMutable) element;
 				if (columnIndex == 1) {
 					return getImage(v.isManualValidation() ? ImageNames.okTable
 							: ImageNames.failTable);
@@ -241,7 +236,7 @@
 			}
 
 			public String getColumnText(Object element, int columnIndex) {
-				if (columnIndex == 0)return ((Validator) element).getName();
+				if (columnIndex == 0)return ((ValidatorMutable) element).getName();
 				return null;
 			}
 		}
@@ -253,40 +248,35 @@
 		private void setupTableColumns(Table table) {
 			TableColumn validatorColumn = new TableColumn(table, SWT.NONE);
 			validatorColumn.setText(ValUIMessages.VALIDATOR);
-			validatorColumn.setResizable(false);
-			validatorColumn.setWidth(320);
-			TableColumn manualColumn = new TableColumn(table, SWT.NONE);
+			validatorColumn.setWidth(245);
+			TableColumn manualColumn = new TableColumn(table, SWT.CENTER);
 			manualColumn.setText(ValUIMessages.MANUAL);
-			manualColumn.setResizable(false);
-			manualColumn.setWidth(40);
-			TableColumn buildColumn = new TableColumn(table, SWT.NONE);
+			manualColumn.pack();
+			TableColumn buildColumn = new TableColumn(table, SWT.CENTER);
 			buildColumn.setText(ValUIMessages.BUILD);
-			buildColumn.setResizable(false);
-			buildColumn.setWidth(40);
-			TableColumn settingsColumn = new TableColumn(table, SWT.NONE);
+			buildColumn.pack();
+			TableColumn settingsColumn = new TableColumn(table, SWT.CENTER);
 			settingsColumn.setText(ValUIMessages.SETTINGS);
-			settingsColumn.setResizable(false);
-			settingsColumn.setWidth(50);
+			settingsColumn.pack();
 		}
 
 		public Composite createPage(Composite parent) throws InvocationTargetException {
-			_validators = copyValidators(ValManager.getDefault().getValidators(getProject(), false));
-			final ScrolledComposite sc1 = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-			sc1.setLayoutData(new GridData(GridData.FILL_BOTH));
-			_composite = new Composite(sc1, SWT.NONE);
-			sc1.setContent(_composite);
-			_composite.setLayout(new GridLayout());
-			 PlatformUI.getWorkbench().getHelpSystem().setHelp(_composite, ContextIds.VALIDATION_PREFERENCE_PAGE);
+			Validator[] vals = ValManager.getDefault()
+				.getValidatorsConfiguredForProject(getProject(), UseProjectPreferences.MustUse);
+			_validators = new ValidatorMutable[vals.length];
+			for (int i=0; i<vals.length; i++)_validators[i] = new ValidatorMutable(vals[i]);
 
-			Composite validatorGroup = new Composite(_composite, SWT.NONE);
+			Composite validatorGroup = new Composite(parent, SWT.NONE);
 
 			GridLayout validatorGroupLayout = new GridLayout();
 			validatorGroupLayout.numColumns = 2;
 			validatorGroup.setLayout(validatorGroupLayout);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(validatorGroup, ContextIds.VALIDATION_PREFERENCE_PAGE);
+			GridDataFactory.fillDefaults().grab(true, true).applyTo(validatorGroup);
 
 			addOverride(validatorGroup);
 			addConfigLink(validatorGroup);
+			//
+			addLine(validatorGroup);
 			addSuspend(validatorGroup);
 			addValidationBuilder(validatorGroup);
 			new Label(validatorGroup, SWT.NONE).setLayoutData(new GridData());
@@ -297,33 +287,15 @@
 			listLabel.setLayoutData(listLabelData);
 			listLabel.setText(ValUIMessages.PREF_VALLIST_TITLE);
 			
-//			ScrolledComposite sc = new ScrolledComposite(validatorGroup, SWT.V_SCROLL);
-//			GridData gd = new GridData(GridData.FILL_BOTH);
-//			gd.horizontalSpan = 2;
-//			sc.setLayoutData(gd);
-//			sc.setLayout(new GridLayout());
-//			Composite table = new Composite(sc, SWT.NONE);
-//			sc.setContent(table);
-//			table.setLayout(new GridLayout());
-
 			_validatorsTable = new Table(validatorGroup, SWT.BORDER | SWT.FULL_SELECTION);
-//			sc.setContent(_validatorsTable);
-			_validatorsTable.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			TableLayout tableLayout = new TableLayout();
-			tableLayout.addColumnData(new ColumnWeightData(160, true));
-			tableLayout.addColumnData(new ColumnWeightData(40, true));
-			tableLayout.addColumnData(new ColumnWeightData(30, true));
-			tableLayout.addColumnData(new ColumnWeightData(40, true));
+			Point preferredSize = _validatorsTable.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+			GridDataFactory.fillDefaults().grab(true, true).hint(preferredSize)
+				.span(2,1).applyTo(_validatorsTable);
 
 			_validatorsTable.setHeaderVisible(true);
 			_validatorsTable.setLinesVisible(true);
-			_validatorsTable.setLayout(tableLayout);
 
 			_validatorList = new TableViewer(_validatorsTable);
-			GridData validatorListData = new GridData(GridData.FILL_HORIZONTAL);
-			validatorListData.horizontalSpan = 2;
-			_validatorsTable.setLayoutData(validatorListData);
-			_validatorList.getTable().setLayoutData(validatorListData);
 			_validatorList.setLabelProvider(new ValidationLabelProvider());
 			_validatorList.setContentProvider(new ValidationContentProvider());
 			_validatorList.setSorter(new ViewerSorter());
@@ -333,11 +305,9 @@
 			_validatorsTable.addMouseListener(new MouseAdapter() {
 
 				public void mouseDown(MouseEvent e) {
-					if (e.button != 1)
-						return;
+					if (e.button != 1)return;
 
-					TableItem tableItem = _validatorsTable.getItem(new Point(
-							e.x, e.y));
+					TableItem tableItem = _validatorsTable.getItem(new Point(e.x, e.y));
 					if (tableItem == null || tableItem.isDisposed()) {
 						// item no longer exists
 						return;
@@ -357,9 +327,7 @@
 								break;
 							}
 						}
-						if (columnNumber == -1) {
-							return;
-						}
+						if (columnNumber == -1)return;
 					}
 
 					columnClicked(columnNumber);
@@ -378,20 +346,13 @@
 			});
 			
 			addButtons(validatorGroup);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(_disableAllButton, ContextIds.VALIDATION_PREFERENCE_PAGE);
-
-			// Have to set the tab order or only the first checkbox in a
-			// Composite can be tabbed to. (Seems to apply only to checkboxes. Have to use the
-			// arrow key to navigate the checkboxes.)
-			validatorGroup.setTabList(new Control[] { _override, _suspend,
-				});
 
 			updateWidgets();
 
-			applyDialogFont(_composite);
-			_composite.setSize(_composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+			applyDialogFont(validatorGroup);
+			validatorGroup.setSize(validatorGroup.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 
-			return _composite;
+			return validatorGroup;
 		}
 
 		private void addButtons(Composite validatorGroup) {
@@ -436,12 +397,23 @@
 			_suspend.addSelectionListener(new SelectionAdapter() {
 				public void widgetSelected(SelectionEvent e) {
 					_suspend.setFocus();
+					_changes++;
 					enableDisableWidgets();
 					_validatorList.refresh();
 				}
 			});
 		}
 		
+		//Add a line separator
+		private void addLine(Composite validatorGroup) {
+			GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+			gd.horizontalSpan = 2;
+			Label line = new Label(validatorGroup,SWT.SEPARATOR | SWT.SHADOW_OUT | SWT.HORIZONTAL);
+			line.setLayoutData(gd);
+			
+			
+		}
+		
 		private void addConfigLink(Composite validatorGroup){
 			_configLink = new Link(validatorGroup,SWT.None);
 			GridData layout = new GridData(GridData.HORIZONTAL_ALIGN_END);
@@ -497,23 +469,14 @@
 			_addValidationBuilder.setText(ValUIMessages.ADD_VALIDATION_BUILDER);
 			_addValidationBuilder.setSelection(false);
 		}
-		
-		/**
-		 * Make a copy of the current validators and store the results.
-		 */
-		private Validator[] copyValidators(Validator[] vals){
-			Validator[] validators = new Validator[vals.length];
-			for (int i=0; i<vals.length; i++)validators[i] = vals[i].copy();
-			return validators;
-		}
-		
+				
 		/**
 		 * Does this validator have extra settings that can be configured?
 		 * @param v
 		 * @return true if it does
 		 */
-		boolean hasSettings(Validator v){
-			if (v.asV2Validator() != null)return true;
+		boolean hasSettings(ValidatorMutable v){
+			if (v.isV2Validator())return true;
 			if (v.getDelegatingId() != null)return true;
 			return false;
 		}
@@ -548,7 +511,14 @@
 			_override.addSelectionListener(new SelectionAdapter() {
 				public void widgetSelected(SelectionEvent e) {
 					_override.setFocus();
-					if (ValManager.getDefault().getGlobalPreferences().getOverride()){
+					_changes++;
+					ValManager vm = ValManager.getDefault();
+					if (vm.getGlobalPreferences().getOverride()){
+//						IProject project = getProject();
+//						UseProjectPreferences useProject = UseProjectPreferences.Normal;
+//						if (_override.getSelection())useProject = UseProjectPreferences.MustUse;
+//						_validators = copyValidators(vm.getValidatorsConfiguredForProject(project, useProject));
+//						_validatorList.setInput(_validators);
 						enableDisableWidgets();
 						_validatorList.refresh();
 					}
@@ -585,7 +555,7 @@
 			menu.addMenuListener(new MenuAdapter() {
 				public void menuShown(MenuEvent e) {
 					IStructuredSelection selection = (IStructuredSelection) _validatorList.getSelection();
-					Validator val = (Validator) selection.getFirstElement();
+					ValidatorMutable val = (ValidatorMutable) selection.getFirstElement();
 					manualItem.setSelection(val.isManualValidation());
 					buildItem.setSelection(val.isBuildValidation());
 					settingsItem.setEnabled(hasSettings(val));
@@ -597,7 +567,7 @@
 
 		protected void columnClicked(int columnToEdit) {
 			IStructuredSelection selection = (IStructuredSelection) _validatorList.getSelection();
-			Validator val = (Validator) selection.getFirstElement();
+			ValidatorMutable val = (ValidatorMutable) selection.getFirstElement();
 
 			switch (columnToEdit) {
 			case 1:
@@ -607,11 +577,14 @@
 				val.setBuildValidation(!val.isBuildValidation());
 				break;
 			case 3:
-				Validator.V2 v2 = val.asV2Validator();
-				if (v2 != null){
-					FilterDialog fd = new FilterDialog(_shell, val, getProject());
+				if (val.isV2Validator()){
+					ValidatorMutable newVal = new ValidatorMutable(val);
+					FilterDialog fd = new FilterDialog(_shell, newVal, getProject());
 					if (Window.OK == fd.open()){
-						val.become(fd.getValidator());
+						_changes++;
+						newVal = fd.getValidator();
+						int i = findit(val);
+						if (i != -1)_validators[i] = newVal;
 					}
 				}
 				else {
@@ -625,12 +598,16 @@
 			_validatorList.refresh();
 		}
 
-		private void handleOldDelegate(Validator val) {
+		private int findit(ValidatorMutable val) {
+			for (int i=0; i<_validators.length; i++)if (_validators[i] == val)return i;
+			return -1;
+		}
+		
+		private void handleOldDelegate(ValidatorMutable val) {
 			try {
-				Validator.V1 v1 = val.asV1Validator();
-				if (v1 == null)return;
+				if (!val.isV1Validator())return;
 				
-				ValidatorMetaData vmd = v1.getVmd();
+				ValidatorMetaData vmd = val.getVmd();
 			    if (!vmd.isDelegating())return;
 			    
 			    GlobalConfiguration gc = ConfigurationManager.getManager().getGlobalConfiguration();
@@ -643,7 +620,10 @@
 			    dialog.create();
 			
 			    int result = dialog.open();
-		        if (result == Window.OK)gc.setDelegateUniqueName(vmd, dialog.getDelegateID());
+		        if (result == Window.OK){
+		        	_changes++;
+		        	gc.setDelegateUniqueName(vmd, dialog.getDelegateID());
+		        }
 			}
 			catch (InvocationTargetException e){
 				
@@ -660,8 +640,11 @@
 		}
 
 		protected void updateWidgetsForDefaults() throws InvocationTargetException {
-			updateAllWidgets();
-			updateHelp();
+			_suspend.setSelection(false);
+			_override.setSelection(false);
+			enableDisableWidgets();
+			_validatorList.setInput(_validators);
+			_validatorList.refresh();
 		}
 
 		private void updateAllWidgets() throws InvocationTargetException {
@@ -675,19 +658,19 @@
 		public boolean performOk() throws InvocationTargetException {
 			
 			addBuilder();
+			for (ValidatorMutable vm : _validators)if (vm.isChanged())_changes++;
+			if (_changes == 0)return true;
 			// [213631] this warning should only be shown if the user actually tried to override
 			// the validators
 			if (!ValManager.getDefault().getGlobalPreferences().getOverride() && _override.getSelection()){
-				MessageDialog.openWarning(_shell, ValUIMessages.Validation, 
-					ValUIMessages.ProjectOverridesNotAllowed);
+				MessageDialog.openWarning(_shell, ValUIMessages.Validation, ValUIMessages.ProjectOverridesNotAllowed);
 				return false;
 			}
 			updateV1ProjectSettings();
-			getProjectPreferences().setSuspend(_suspend.getSelection());
-			getProjectPreferences().setOverride(_override.getSelection());
 			IProject project = getProject();
+			ProjectPreferences pp = new ProjectPreferences(project, _override.getSelection(), _suspend.getSelection(), null);
 			ValPrefManagerProject vpm = new ValPrefManagerProject(project);
-			vpm.savePreferences(getProjectPreferences(), _validators);
+			vpm.savePreferences(pp, _validators);
 			return true;
 		}
 		
@@ -715,7 +698,12 @@
 		}
 
 		public boolean performDefaults() throws InvocationTargetException {
-			_validators = copyValidators(ValManager.getDefaultValidators(getProject()));
+			Validator[] vals = ValManager.getDefault()
+				.getValidatorsConfiguredForProject(getProject(), UseProjectPreferences.MustNotUse);
+			_validators = new ValidatorMutable[vals.length];
+			for (int i=0; i<vals.length; i++)_validators[i] = new ValidatorMutable(vals[i]);
+
+			_changes++;
 			updateWidgetsForDefaults();
 			getDefaultsButton().setFocus();
 			return true;
@@ -730,7 +718,7 @@
 
 		private void setAllValidators(boolean bool) {
 			for (TableItem item : _validatorsTable.getItems()) {
-				Validator val = (Validator) item.getData();
+				ValidatorMutable val = (ValidatorMutable) item.getData();
 				val.setManualValidation(bool);
 				val.setBuildValidation(bool);
 			}
@@ -744,7 +732,7 @@
 		}
 
 		protected void updateHelp() {
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(_suspend, ContextIds.VALIDATION_PREFERENCE_PAGE_DISABLE_ALL_ENABLED);
+//			PlatformUI.getWorkbench().getHelpSystem().setHelp(_suspend, ContextIds.VALIDATION_PREFERENCE_PAGE_DISABLE_ALL_ENABLED);
 		}
 
 		/*
@@ -762,7 +750,6 @@
 			_disableAllButton.dispose();
 			_enableAllButton.dispose();
 			_validatorList.getTable().dispose();
-			_composite.dispose();
 		}
 		
 		/**
@@ -788,6 +775,7 @@
 
 	protected Control createContents(Composite parent) {
 		try {
+			PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HelpContextIds.ProjectPage);
 			_shell = parent.getShell();
 			_pageImpl = new ValidatorListPage(parent);
 		} catch (Exception exc) {
diff --git a/plugins/org.eclipse.wst.validation/.options b/plugins/org.eclipse.wst.validation/.options
index a5fb429..e0cc192 100644
--- a/plugins/org.eclipse.wst.validation/.options
+++ b/plugins/org.eclipse.wst.validation/.options
@@ -10,5 +10,26 @@
 # they will be written to stderr. When logged to a file the results are in a
 # CSV (comma separated values) form. When logged to stderr they are in a more 
 # human readable form.
-# org.eclipse.wst.validation/timings/tracefile=
+org.eclipse.wst.validation/timings/tracefile=
 
+# By default times that are written to the trace file are in milliseconds for elapsed
+# time and nanoseconds for cpu time. If you find these times easier to read as seconds
+# as expressed by a double, the following flag can be turned on.
+org.eclipse.wst.validation/timings/useDoubles=false
+
+# If extra detail is needed for a particular validator it's id can be specified here.
+# For example, if you wanted more detail on the XML validator you would use
+# org.eclipse.wst.xml.core.xml 
+org.eclipse.wst.validation/extraValDetail=
+
+# To make debugging easier, you can make it appear is if only one validator has been 
+# registered via the extension points. You do this by setting the following filter
+# to validator id of the one validator that you want registered.
+#
+# As an example, you could use this plug-in id for a v1 validator: org.eclipse.jst.j2ee.ejb.EJBValidator
+# and org.eclipse.wst.html.ui.HTMLValidator for a v2 validator
+org.eclipse.wst.validation/filter/allExcept=
+
+# The tracing level. If not supplied a default of zero is used. The higher the number the
+# more verbose the tracing.
+org.eclipse.wst.validation/trace/level=
diff --git a/plugins/org.eclipse.wst.validation/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.validation/.settings/org.eclipse.jdt.core.prefs
index 9aeb746..58507dd 100644
--- a/plugins/org.eclipse.wst.validation/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.wst.validation/.settings/org.eclipse.jdt.core.prefs
@@ -1,70 +1,78 @@
-#Mon Oct 15 15:15:47 EDT 2007
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+#Fri Apr 11 07:15:44 EDT 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
 org.eclipse.jdt.core.codeComplete.fieldPrefixes=_
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
 org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=_
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.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.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=_
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=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.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+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.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=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.redundantSuperinterface=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.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+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.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.wst.validation/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.validation/META-INF/MANIFEST.MF
index b849201..1a028d1 100644
--- a/plugins/org.eclipse.wst.validation/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.validation/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
 Bundle-SymbolicName: org.eclipse.wst.validation; singleton:=true
-Bundle-Version: 1.2.0.qualifier
+Bundle-Version: 1.2.302.qualifier
 Bundle-Activator: org.eclipse.wst.validation.internal.plugin.ValidationPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.validation/about.html b/plugins/org.eclipse.wst.validation/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.validation/about.html
+++ b/plugins/org.eclipse.wst.validation/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.validation/plugin.properties b/plugins/org.eclipse.wst.validation/plugin.properties
index d7722e4..0fcb3b5 100644
--- a/plugins/org.eclipse.wst.validation/plugin.properties
+++ b/plugins/org.eclipse.wst.validation/plugin.properties
@@ -21,6 +21,7 @@
 ValidatorDelegates=Validator Delegates
 
 Bundle-Name.0 = Validation Framework
-Bundle-Vendor.0 = Eclipse.org
+Bundle-Vendor.0 = Eclipse Web Tools Platform
 
 Extension.validator=Validator (Version 2)
+removeV2Validator=Remove V2 Validator
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.validation/plugin.xml b/plugins/org.eclipse.wst.validation/plugin.xml
index 7695c74..b8a430a 100644
--- a/plugins/org.eclipse.wst.validation/plugin.xml
+++ b/plugins/org.eclipse.wst.validation/plugin.xml
@@ -9,6 +9,9 @@
    <extension-point id="validationSelectionHandler" name="%validationSelectionHandler" schema="xsds/validationSelectionHandler.exsd"/>
    <extension-point id="validationHelper" name="validationHelper" schema="xsds/validationHelper.exsd"/>
    <extension-point id="validatorDelegates" name="%ValidatorDelegates" schema="xsds/validatorDelegates.exsd"/>   
+   <extension-point id="validatorGroup" name="Validator Group" schema="xsds/validatorgroup.exsd"/>   
+   <extension-point id="exclude" name="Validator Exclusions" schema="xsds/exclude.exsd"/>
+   <extension-point id="removeV2Validator" name="%removeV2Validator" schema="xsds/removeV2Validator.exsd"/>   
    
 <!--============================-->
 <!-- Validation Contributions   -->
diff --git a/plugins/org.eclipse.wst.validation/property_files/org/eclipse/wst/validation/internal/messages.properties b/plugins/org.eclipse.wst.validation/property_files/org/eclipse/wst/validation/internal/messages.properties
index 492c49b..8a77220 100644
--- a/plugins/org.eclipse.wst.validation/property_files/org/eclipse/wst/validation/internal/messages.properties
+++ b/plugins/org.eclipse.wst.validation/property_files/org/eclipse/wst/validation/internal/messages.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2005, 2008 IBM Corporation and others.
+# Copyright (c) 2005, 2011 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -10,7 +10,7 @@
 ###############################################################################
 ErrConfig=IWAE0100E Extension configuration error. An internal error has happened, the validator {0} has incorrectly configured the validation extension point.
 ErrGroupName=IWAE0101E Invalid element, expect either the element "include" or "exclude".
-ErrFilterRule=IWAE0102E An invalid filter rule has been encountered.
+ErrFilterRule=IWAE0102E An invalid filter rule has been encountered. Contributing plug-in: {0}, element name: {1}
 
 ErrGroupNoType=IWAE0103E Groups must have a valid type, no type was returned
 ErrGroupInvalidType=IWAE0104E Groups must have a valid type, the following invalid type was returned: {0}
@@ -28,6 +28,7 @@
 
 DecodeError1=IWAE0019E There was a problem deserializing a string. A boolean was expected but not found. 
 Error20=IWAE0020E Internal error, the incoming validator must be a v2 validator
+Error21=The following dependency could not be restored because the following resource {0} could no longer be found.
 GroupInclude=Include Group
 GroupExclude=Exclude Group
 
@@ -35,6 +36,7 @@
 TypeExclude=exclude
 
 JobName=Validation
+JobNameWithProjectName=Validating {0}
 JobNameMonitor=Validation Monitor
 JobIndexSave=Index Save
 
@@ -46,6 +48,8 @@
 RuleContentType=Content Type
 RuleFacet=Facet
 RuleFolder=Folder
+RuleFull=Qualified File
+RulePattern=Pattern
 
 FileExtWithCase={0}: {1} (case sensitive)
 FileExtWithoutCase={0}: {1}
@@ -53,8 +57,8 @@
 ContentTypeExact={0}: {1} (excludes subtypes)
 ContentTypeNotExact={0}: {1} (includes subtypes)
 
-LogValStart=Validator {0} starting to validate: {1}
-LogValEnd=Validator {0} finished validating: {1}
+LogValStart={0} starting to validate: {1}
+LogValEnd={0} finished validating: {1}
 LogValEndTime=Validator {0} with id {1} finished validating: {2} in {3}
 LogValSummary=Validator {0} with id {1} validated {2} resources in {3}
 LogValSummary2=Validator {0} with id {1} validated {2} resources in {3} using {4} of CPU time
@@ -70,3 +74,5 @@
 TimeSec={0} seconds
 TimeMin={0} minutes
 
+RogueValidator=Rogue validator delegate from contributor {0}
+
diff --git a/plugins/org.eclipse.wst.validation/property_files/validate_base.properties b/plugins/org.eclipse.wst.validation/property_files/validate_base.properties
index 4c10a41..9e2583d 100644
--- a/plugins/org.eclipse.wst.validation/property_files/validate_base.properties
+++ b/plugins/org.eclipse.wst.validation/property_files/validate_base.properties
@@ -79,7 +79,6 @@
 
 VBF_EXC_RUNTIME=IWAE0010E Run-time exception {0} occurred during validation. The validator being run was {1} and the message thrown was {2}.
 
-VBF_EXC_SYNTAX_NULL_NAME=IWAE0011E Resource {0} cannot be added to file list because IWorkbenchContext.getPortableName() returns null. This resource will not be validated by the validator named {1}.
 VBF_EXC_SYNTAX_NO_HELPER=IWAE0012E No <helper> element is specified in the plugin.xml file for validator {0}. Since the helper cannot be created, the validator will not be loaded.
 VBF_EXC_SYNTAX_NO_HELPER_CLASS=IWAE0013E No "class" attribute in the <helper> element is specified in the plugin.xml file for validator {0}. The helper cannot be created without the name of the class that implements it. Since the helper cannot be created, the validator will not be loaded.
 VBF_EXC_SYNTAX_NO_HELPER_THROWABLE=IWAE0014E The helper {0} cannot be created because a Throwable was caught.
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ConfigurationConstants.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ConfigurationConstants.java
index 18e6d44..16aef08 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ConfigurationConstants.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ConfigurationConstants.java
@@ -35,8 +35,7 @@
 	String ELEMENT_SEPARATOR = ";"; //$NON-NLS-1$ // separates the name of one IValidator from the next in the list of enabled validators for a project or preference
 	String DELEGATES_SEPARATOR = "="; //$NON-NLS-1$ // Separates the delegating validator id from the delegate validator id in the list of delegates
 
-	// The following values must match the attributes in the preference marker as shown in
-	// plugin.xml
+	// The following values must match the attributes in the preference marker as shown in plugin.xml
 	// Even though the plugin.xml values are not used to create new Preference or Project markers,
 	// maintaining one local name ensures that there's no confusion writing the migration code.
 	// These are the QualifiedNames used to persist the user's settings.
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ConfigurationManager.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ConfigurationManager.java
index 0c0c0be..2baad42 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ConfigurationManager.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ConfigurationManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -15,8 +15,8 @@
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Preferences;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 
 
@@ -47,10 +47,7 @@
 			if (!marker.getType().equals(VALIDATION_MARKER))return null;
 
 			Object attrib = marker.getAttribute(VALIDATION_MARKER_OWNER);
-			if (attrib == null) {
-				// owner not set
-				return null;
-			}
+			if (attrib == null)return null;
 			return attrib.toString();
 		} catch (CoreException e) {
 			ValidationPlugin.getPlugin().handleException(e);
@@ -93,7 +90,7 @@
 	 * This method returns the global preferences for the workspace.
 	 */
 	public GlobalConfiguration getGlobalConfiguration() throws InvocationTargetException {
-		IWorkspaceRoot root = ValidationConfiguration.getRoot();
+		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
 		GlobalConfiguration gp = null;
 		try {
 			gp = (GlobalConfiguration) root.getSessionProperty(USER_PREFERENCE);
@@ -110,10 +107,8 @@
 			gp = (GlobalConfiguration) root.getSessionProperty(USER_PREFERENCE);
 			if (gp == null) {
 				gp = new GlobalConfiguration(root);
-				Preferences prefs = ValidationPlugin.getPlugin().getPluginPreferences();
-				if( prefs != null ){
-					prefs.addPropertyChangeListener(gp);
-				}
+//				PreferencesWrapper prefs = PreferencesWrapper.getPreferences(null, null);
+//				prefs.addPropertyChangeListener(gp);
 				
 				gp.getVersion(); // initialize the configuration's version attribute
 				gp.load(); // initialize this instance from the stored values
@@ -170,8 +165,7 @@
 		try {
 			if (isMigrated(project)) {
 				ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
-				if(!prjp.useGlobalPreference())
-					prjp.store();
+				if(!prjp.useGlobalPreference())prjp.store();
 			}
 		} catch (InvocationTargetException e) {
 			ValidationPlugin.getPlugin().handleException(e);
@@ -180,9 +174,17 @@
 		}
 	}
 
+	/**
+	 * @deprecated this method does not do anything.
+	 * @param project
+	 */
 	public void deleting(IProject project) {
 	}
 
+	/**
+	 * @deprecated this method does not do anything.
+	 * @param project
+	 */
 	public void opening(IProject project) {
 		// Do not load or migrate the project in this method; let the getConfiguration(IProject)
 		// method do that. Do not load the project before it's necessary.
@@ -193,9 +195,7 @@
 	 */
 	public boolean isGlobalMigrated() throws InvocationTargetException {
 		IWorkspaceRoot root = ValidationConfiguration.getRoot();
-		if (root == null) {
-			return false;
-		}
+		if (root == null)return false;
 
 		try {
 			GlobalConfiguration gp = (GlobalConfiguration) root.getSessionProperty(USER_PREFERENCE);
@@ -220,20 +220,17 @@
 	 * Return true if the given project has the current level of metadata, false otherwise.
 	 */
 	public boolean isMigrated(IProject project) throws InvocationTargetException {
-		if (project == null) {
-			return false;
-		}
+		if (project == null)return false;
+		
 		try {
 			if (project.isAccessible()) {
 				ProjectConfiguration prjp = (ProjectConfiguration) project.getSessionProperty(USER_PREFERENCE);
-				if (prjp != null) {
-					return prjp.isVersionCurrent();
-				}
+				if (prjp != null)return prjp.isVersionCurrent();
+				
 				String serializedPrjp = project.getPersistentProperty(USER_PREFERENCE);
 				if (serializedPrjp != null) {
 					prjp = new ProjectConfiguration(project);
-					prjp.getVersion(); // initialize the configuration's
-					// version attribute
+					prjp.getVersion(); 
 					return prjp.isVersionCurrent();
 				}
 			}
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/EventManager.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/EventManager.java
index 94df5a7..d603b8d 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/EventManager.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/EventManager.java
@@ -11,8 +11,8 @@
 package org.eclipse.wst.validation.internal;
 
 import java.lang.reflect.InvocationTargetException;
-import java.util.HashSet;
 import java.util.Set;
+import java.util.concurrent.CopyOnWriteArraySet;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
@@ -39,7 +39,7 @@
 	private IResourceDeltaVisitor _postAutoBuildVisitor;
 	private boolean _isActive; // has the registry been read?
 	
-	private Set<IProjectChangeListener> _listeners = new HashSet<IProjectChangeListener>(4);
+	private Set<IProjectChangeListener> _listeners = new CopyOnWriteArraySet<IProjectChangeListener>();
 
 	private EventManager() {
 	}
@@ -50,6 +50,7 @@
 	}
 	
 	public void addProjectChangeListener(IProjectChangeListener listener){
+		Tracing.log("EventManager-03: add listener: ", listener); //$NON-NLS-1$
 		_listeners.add(listener);
 	}
 	
@@ -58,6 +59,11 @@
 	}
 	
 	private void signal(IProject project, int type){
+		if (Tracing.isLogging()){
+			String name = "Null"; //$NON-NLS-1$
+			if (project != null)name = project.getName();
+			Tracing.log("EventManager-02: signal project: " + name + ", IProjectChangeListener type: " + type); //$NON-NLS-1$ //$NON-NLS-2$
+		}
 		for (IProjectChangeListener pcl : _listeners){
 			try {
 				pcl.projectChanged(project, type);
@@ -74,7 +80,7 @@
 		signal(project, IProjectChangeListener.ProjectOpened);
 
 		// When the project is opened, check for any orphaned tasks or tasks whose owners need to be updated.
-		ConfigurationManager.getManager().opening(project);
+//		ConfigurationManager.getManager().opening(project);
 	}
 
 	public void closing(IProject project) {
@@ -157,7 +163,7 @@
 					}
 				}
 
-				ConfigurationManager.getManager().deleting(project);
+//				ConfigurationManager.getManager().deleting(project);
 			}
 		} catch (InvocationTargetException e) {
 			ValidationPlugin.getPlugin().handleException(e);
@@ -178,6 +184,7 @@
 					if (subdelta == null)return false;
 
 					IResource resource = subdelta.getResource();
+					if (resource instanceof IWorkspaceRoot)return true;
 					if (resource instanceof IProject) {
 						IProject project = (IProject) resource;
 						if ((subdelta.getFlags() & IResourceDelta.DESCRIPTION) == IResourceDelta.DESCRIPTION) {
@@ -191,6 +198,12 @@
 								// project would just have been closed.
 								opening(project);
 							}
+							return false;
+						}
+						
+						if ((subdelta.getFlags() & IResourceDelta.ADDED) == IResourceDelta.ADDED) {
+							signal(project, IProjectChangeListener.ProjectAdded);
+							return false;
 						}
 					}
 
@@ -220,10 +233,10 @@
 		}
 
 		if (Tracing.isLogging()){
-			Tracing.log("Eventmanager-01: IResourceChangeEvent type = " + //$NON-NLS-1$
+			Tracing.log("Eventmanager-01: IResourceChangeEvent type=" + //$NON-NLS-1$
 				Misc.resourceChangeEventType(event.getType()) + 
-				", resource = " +  //$NON-NLS-1$
-				event.getResource() + ", source = " + event.getSource() + ", delta = " +   //$NON-NLS-1$//$NON-NLS-2$
+				", resource=" +  //$NON-NLS-1$
+				event.getResource() + ", source=" + event.getSource() + ", delta=" +   //$NON-NLS-1$//$NON-NLS-2$
 				event.getDelta());				
 		}
 		
@@ -259,9 +272,7 @@
 			IWorkspaceRoot workspaceRoot = workspace.getRoot();
 			IProject[] projects = workspaceRoot.getProjects();
 			ProjectConfiguration prjp = null;
-			IProject project = null;
-			for (int i = 0; i < projects.length; i++) {
-				project = projects[i];
+			for (IProject project : projects) {
 				if (!project.isOpen()) {
 					// If the project isn't opened, there's nothing to clean up.
 					// If the project was opened, it would have been migrated, and there's something
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/FilterUtil.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/FilterUtil.java
index 435a41b..39a36bc 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/FilterUtil.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/FilterUtil.java
@@ -11,10 +11,8 @@
 package org.eclipse.wst.validation.internal;
 
 
-import java.text.MessageFormat;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
@@ -168,7 +166,7 @@
 	 * filterIn is false, check if the resources are filtered in by the validator (recommended).
 	 */
 	public static Map<ValidatorMetaData, Set<IFileDelta>> 
-		getFileDeltas(Set enabledValidators, Object[] changedResources, boolean filterIn) {
+		getFileDeltas(Set<ValidatorMetaData> enabledValidators, Object[] changedResources, boolean filterIn) {
 		// by default assume that the resources have changed, i.e. not added or deleted
 		return getFileDeltas(enabledValidators, changedResources, IFileDelta.CHANGED, filterIn); 
 	}
@@ -178,7 +176,7 @@
 	 * IFileDelta wrapper around the changed Object[], with each delta of type deltaType.
 	 */
 	public static Map<ValidatorMetaData, Set<IFileDelta>> 
-		getFileDeltas(Set enabledValidators, Object[] changedResources, int ifileDeltaType) {
+		getFileDeltas(Set<ValidatorMetaData> enabledValidators, Object[] changedResources, int ifileDeltaType) {
 		// by default check if the Objects are filtered in by the validator
 		return getFileDeltas(enabledValidators, changedResources, ifileDeltaType, false); 
 	}
@@ -191,17 +189,17 @@
 	 * ValidatorSubsetOperation can use validators that don't filter in these particular resources,
 	 * but can use a defaultExtension's validators instead.
 	 */
-	public static Map<ValidatorMetaData, Set<IFileDelta>> getFileDeltas(Set enabledValidators, Object[] changedResources, int ifileDeltaType, boolean force) {
+	public static Map<ValidatorMetaData, Set<IFileDelta>> getFileDeltas(Set<ValidatorMetaData> enabledValidators, 
+		Object[] changedResources, int ifileDeltaType, boolean force) {
+		
 		Map<ValidatorMetaData, Set<IFileDelta>> result = new HashMap<ValidatorMetaData, Set<IFileDelta>>();
 		if ((enabledValidators == null) || (enabledValidators.size() == 0)) {
 			return result;
 		}
 
-		Iterator iterator = enabledValidators.iterator();
 		boolean cannotLoad = false;
 		IWorkbenchContext helper = null;
-		while (iterator.hasNext()) {
-			ValidatorMetaData vmd = (ValidatorMetaData) iterator.next();
+		for (ValidatorMetaData vmd : enabledValidators) {
 			try {
 				Set<IFileDelta> deltas = new HashSet<IFileDelta>();
 				IProgressMonitor monitor = new NullProgressMonitor();
@@ -256,9 +254,11 @@
 		if (fileName == null) {
 			// The resource is not contained in the current project.
 			// Can't see how this would happen, but check for it anyway.
-			String result = MessageFormat.format(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_SYNTAX_NULL_NAME), 
-				new Object[]{resource.getName(), vmd.getValidatorDisplayName()});
-			ValidationPlugin.getPlugin().logMessage(IStatus.ERROR, result);
+			
+			// [122960] null should be allowed
+//			String result = MessageFormat.format(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_SYNTAX_NULL_NAME), 
+//				new Object[]{resource.getName(), vmd.getValidatorDisplayName()});
+//			ValidationPlugin.getPlugin().logMessage(IStatus.ERROR, result);
 
 			IPath resourcePath = resource.getFullPath();
 			if (resourcePath != null) {
@@ -613,7 +613,7 @@
 
 					IResource resource = subdelta.getResource();
 
-					if (Tracing.isLogging()) {
+					if (Tracing.isLogging(2)) {
 						StringBuffer buffer = new StringBuffer("FilterUtil-01: subdelta of "); //$NON-NLS-1$
 						buffer.append(resource.getName());
 						buffer.append(" has resource delta kind: "); //$NON-NLS-1$
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/GlobalConfiguration.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/GlobalConfiguration.java
index 318de6d..20c044f 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/GlobalConfiguration.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/GlobalConfiguration.java
@@ -47,7 +47,7 @@
 	 * without persisting them (i.e., if the user presses Cancel then nothing needs to be done.)
 	 */
 	public GlobalConfiguration(GlobalConfiguration original) throws InvocationTargetException {
-		super();
+		super(original.getResource());
 		original.copyTo(this);
 	}
 
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ProjectConfiguration.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ProjectConfiguration.java
index 324d150..5f39ecf 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ProjectConfiguration.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ProjectConfiguration.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -11,15 +11,15 @@
 package org.eclipse.wst.validation.internal;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
 
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ProjectScope;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
 import org.eclipse.wst.validation.internal.delegates.ValidatorDelegateDescriptor;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 import org.osgi.service.prefs.BackingStoreException;
@@ -45,22 +45,21 @@
 		// global list.
 		super(project, extractProjectValidators(convertToArray(ValidationRegistryReader.getReader().getAllValidators()), project));
 
-		// Can't put the call to load() and passivate() in the ValidationConfiguration constructor
-		// due
+		// Can't put the call to load() and passivate() in the ValidationConfiguration constructor due
 		// to the order of initialization.
-		//    1. First the ValidationConfiguration constructor is called, and that loads the stored
-		// values.
+		//    1. First the ValidationConfiguration constructor is called, and that loads the stored values.
 		//    2. Then this class's <init> method is called, and that initializes the "override" field
-		// to the default,
-		//       which may be different than the stored value.
+		//       to the default, which may be different than the stored value.
 	}
 
 	/**
 	 * This constructor is provided only for the Properties page, so that the page can store values
 	 * without persisting them (i.e., if the user presses Cancel then nothing needs to be done.)
+	 * 
+	 * @deprecated
 	 */
 	public ProjectConfiguration(ProjectConfiguration original) throws InvocationTargetException {
-		super();
+		super(original.getResource());
 		original.copyTo(this);
 	}
 
@@ -87,6 +86,10 @@
 			return false;
 		}
 	}
+	
+	public boolean getDoesProjectOverride(){
+		return _doesProjectOverride;
+	}
 
 	public boolean doesProjectOverride() {
 		// If the global preference doesn't allow projects to override, it doesn't matter what the
@@ -443,10 +446,7 @@
 		if (allow) {
 			// "allow" has changed, so see if the preference and the project validators match.
 			ValidatorMetaData[] projEnabledVmd = super.getEnabledValidators(); // bypass the check
-			// for whether the
-			// global preferences
-			// are to be used or
-			// not
+			// for whether the global preferences are to be used or not
 			GlobalConfiguration gp = ConfigurationManager.getManager().getGlobalConfiguration();
 			return gp.hasEnabledValidatorsChanged(projEnabledVmd);
 		}
@@ -454,14 +454,14 @@
 		return false;
 	}
 
-  public boolean haveDelegatesChanged(Map oldDelegates, boolean allow) throws InvocationTargetException {
+  public boolean haveDelegatesChanged(Map<String, String> oldDelegates, boolean allow) throws InvocationTargetException {
 
     if (super.haveDelegatesChanged(oldDelegates)) {
       return true;
     }
 
     if (allow) {
-      Map projDelegates = super.getDelegatingValidators(); 
+      Map<String, String> projDelegates = super.getDelegatingValidators(); 
       GlobalConfiguration gp = ConfigurationManager.getManager().getGlobalConfiguration();
       return gp.haveDelegatesChanged(projDelegates);
     }
@@ -481,7 +481,7 @@
 				String disableAllValidation = storedConfiguration.substring(disableAllValidationIndex + ConfigurationConstants.DISABLE_ALL_VALIDATION_SETTING.length(), versionIndex);
 				setDisableAllValidation(Boolean.valueOf(disableAllValidation).booleanValue());
 			} else {
-				setDisableAllValidation(false);;
+				setDisableAllValidation(false);
 			}
 			// project doesn't override the global
 			if (disableAllValidationIndex != -1) {
@@ -585,34 +585,75 @@
   
   public void store() throws InvocationTargetException {
 		IProject project = (IProject) getResource();
-		IScopeContext projectContext = new ProjectScope(project);
-		final IEclipsePreferences pref = projectContext.getNode(ValidationPlugin.PLUGIN_ID);
+		final PreferencesWrapper pref = PreferencesWrapper.getPreferences(project, null);
 		if (pref != null) {
 			try {
-				pref.put(USER_PREFERENCE, serialize());
-				pref.put(USER_MANUAL_PREFERENCE, serializeManualSetting());
-				pref.put(USER_BUILD_PREFERENCE, serializeBuildSetting());
-				pref.put(DELEGATES_PREFERENCE, serializeDelegatesSetting());
+				pref.put(ValidationConfiguration.UserPreference, serialize());
+				pref.put(ValidationConfiguration.UserManualPreference, serializeManualSetting());
+				pref.put(ValidationConfiguration.UserBuildPreference, serializeBuildSetting());
+				pref.put(ValidationConfiguration.DelegatesPreference, serializeDelegatesSetting());
 				pref.flush();
 			} catch (BackingStoreException e) {
-				ValidationPlugin.getPlugin().handleException(e);
+				// A common error is that the project has been closed, in which case there
+				// is nothing that we can do.
+				if (project.isAccessible())ValidationPlugin.getPlugin().handleException(e);
 			}
 		}
 	}
   
   protected void loadPreference() throws InvocationTargetException {
 		IProject project = (IProject) getResource();
-		IScopeContext projectContext = new ProjectScope(project);
-		final IEclipsePreferences prefs = projectContext.getNode(ValidationPlugin.PLUGIN_ID);
-		if (prefs != null) {
-			String storedConfig = prefs.get(USER_PREFERENCE, DefaultValue);
+		final PreferencesWrapper prefs = PreferencesWrapper.getPreferences(project, null);
+		if (prefs.nodeExists()) { 
+			String storedConfig = prefs.get(ValidationConfiguration.UserPreference, DefaultValue);
 			deserialize(storedConfig);
-			String storedManualConfig = prefs.get(USER_MANUAL_PREFERENCE, DefaultValue);
+			String storedManualConfig = prefs.get(ValidationConfiguration.UserManualPreference, DefaultValue);
 			deserializeManual(storedManualConfig);
-			String storedBuildConfig = prefs.get(USER_BUILD_PREFERENCE, DefaultValue);
+			String storedBuildConfig = prefs.get(ValidationConfiguration.UserBuildPreference, DefaultValue);
 			deserializeBuild(storedBuildConfig);
-			String storedDelegatesConfiguration = prefs.get(DELEGATES_PREFERENCE, DefaultValue);
+			String storedDelegatesConfiguration = prefs.get(ValidationConfiguration.DelegatesPreference, DefaultValue);
 			deserializeDelegates(storedDelegatesConfiguration);
 		}
 	}
+  
+  /**
+   * Answer the validator id's that have been enabled for manual validation.
+   * @return null if they are all enabled
+   */
+  Set<String> getEnabledManualValidators(){
+	  return getIds(ValidationConfiguration.UserManualPreference, ConfigurationConstants.ENABLED_MANUAL_VALIDATORS);
+  }
+  
+  /**
+   * Answer the validator id's that have been enabled for build validation.
+   * @return null if they are all enabled
+   */
+  Set<String> getEnabledBuildlValidators(){
+	  return getIds(ValidationConfiguration.UserBuildPreference, ConfigurationConstants.ENABLED_BUILD_VALIDATORS);
+  }
+  
+  /**
+   * A helper method to extract some validator id's from a preference store field.
+   * 
+   * @return null if all the validators are enabled.
+   */
+  private Set<String> getIds(String prefKey, String enabledPhrase){
+	IProject project = (IProject) getResource();
+	final PreferencesWrapper prefs = PreferencesWrapper.getPreferences(project, null);
+	if (prefs == null)return null;
+	
+	String storedConfig = prefs.get(prefKey, DefaultValue);
+	if (storedConfig == null || storedConfig.length() == 0 || storedConfig.equals(DefaultValue))return null;
+	int validationIndex = storedConfig.indexOf(enabledPhrase);
+
+	String ids = storedConfig.substring(validationIndex + enabledPhrase.length(),storedConfig.length());
+
+	StringTokenizer tokenizer = new StringTokenizer(ids, ConfigurationConstants.ELEMENT_SEPARATOR);
+	Set<String> set = new HashSet<String>(20);
+	while (tokenizer.hasMoreTokens())set.add(tokenizer.nextToken());
+	if (set.size() == 0)return null;
+	  
+	return set;
+	  
+  }
 }
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ReferencialFileValidatorRegistryReader.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ReferencialFileValidatorRegistryReader.java
index 7abb4f4..c9233ef 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ReferencialFileValidatorRegistryReader.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ReferencialFileValidatorRegistryReader.java
@@ -17,7 +17,6 @@
 package org.eclipse.wst.validation.internal;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import org.eclipse.core.runtime.IConfigurationElement;
@@ -96,12 +95,8 @@
 
     	//add to the list of post validator extensions only if the extension is not added yet
     	boolean containsExt = true;
-    	List extensions = getReferencialFileValidationExtensions();
-    	Iterator it = extensions.iterator();
-    	while(it.hasNext()) {
-    		ReferencialFileValidatorExtension ext = (ReferencialFileValidatorExtension)it.next();
-    		if(!ext.getElement().getAttribute(Id).equals(newExtension.getAttribute(Id)))
-    			containsExt = false;
+    	for(ReferencialFileValidatorExtension ext : getReferencialFileValidationExtensions()) {
+    		if(!ext.getElement().getAttribute(Id).equals(newExtension.getAttribute(Id)))containsExt = false;
     	}
     	if(!containsExt ||getReferencialFileValidationExtensions().isEmpty())
     		getReferencialFileValidationExtensions().add(new ReferencialFileValidatorExtension(newExtension));
@@ -126,9 +121,7 @@
 	 *         available and enabled
 	 */
 	public ReferencialFileValidator getReferencialFileValidator() {
-		ReferencialFileValidatorExtension refFileValExt;
-		for (Iterator refFileValItr = getReferencialFileValidationExtensions().iterator(); refFileValItr.hasNext();) {
-			refFileValExt = (ReferencialFileValidatorExtension) refFileValItr.next();
+		for (ReferencialFileValidatorExtension refFileValExt: getReferencialFileValidationExtensions()) {
 			return refFileValExt.getInstance();
 		}
 		return null;
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/RegistryConstants.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/RegistryConstants.java
index 81a78b4..140240a 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/RegistryConstants.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/RegistryConstants.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
+ * Copyright (c) 2001, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -54,6 +54,9 @@
 	 * only one validator may use an aggregate of that type. */
 	String TAG_AGGREGATE_VALIDATORS = "aggregateValidator"; //$NON-NLS-1$ 
 
+	/** runStrategy - identifies the run strategy of  Validator*/
+	String TAG_RUN_STRATEGY = "runStrategy"; //$NON-NLS-1$
+	
 	/** objectClass - identifies a type */ 
 	String ATT_OBJECT_CLASS = "objectClass"; //$NON-NLS-1$
 	
@@ -119,6 +122,16 @@
 	/** false - The "can validator run asynchronously" default. In the future this may be changed to true. */
 	boolean ATT_ASYNC_DEFAULT = false;
 
+	/** 
+	 * project - identifies whether or not the validator is called per project. 
+	 * Default is false (i.e. the validator is called per resource). 
+	 */
+	String ATT_PROJECT = "project"; //$NON-NLS-1$
+	
+	/** false - The project default. */
+	boolean ATT_PROJECT_DEFAULT = false;
+	
+	
 	/** migrate - the "migrate" section of the validator */
 	String TAG_MIGRATE = "migrate"; //$NON-NLS-1$
 	
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ResourceConstants.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ResourceConstants.java
index 636ff93..62f8a08 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ResourceConstants.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ResourceConstants.java
@@ -33,7 +33,7 @@
 	// If the validator cannot be loaded because its helper cannot be loaded
 	String VBF_EXC_HELPER_CANNOTLOAD = "VBF_EXC_HELPER_CANNOTLOAD"; //$NON-NLS-1$ 
 
-	// A java.lang.Runtime error has occured during the build.
+	// A java.lang.Runtime error has occurred during the build.
 	String VBF_EXC_RUNTIME = "VBF_EXC_RUNTIME"; //$NON-NLS-1$ 
 
 	// If the "Validator" extension point has been removed from the plugin.xml file.
@@ -67,7 +67,7 @@
 	// particular validator, has begun
 	String VBF_STATUS_STARTING_VALIDATION = "VBF_STATUS_STARTING_VALIDATION"; //$NON-NLS-1$ 
 
-	// After a validator is finished, this message informs the user that validtaion, using a
+	// After a validator is finished, this message informs the user that validation, using a
 	// particular validator, has completed.
 	String VBF_STATUS_ENDING_VALIDATION = "VBF_STATUS_ENDING_VALIDATION"; //$NON-NLS-1$ 
 
@@ -78,7 +78,6 @@
 	// validation will be performed because there's no delta information.
 	String VBF_STATUS_NULL_DELTA = "VBF_STATUS_NULL_DELTA"; //$NON-NLS-1$ 
 
-	String VBF_EXC_SYNTAX_NULL_NAME = "VBF_EXC_SYNTAX_NULL_NAME"; //$NON-NLS-1$ 
 	String VBF_EXC_SYNTAX_NO_HELPER = "VBF_EXC_SYNTAX_NO_HELPER"; //$NON-NLS-1$ 
 	String VBF_EXC_SYNTAX_NO_HELPER_CLASS = "VBF_EXC_SYNTAX_NO_HELPER_CLASS"; //$NON-NLS-1$ 
 	String VBF_EXC_SYNTAX_NO_HELPER_THROWABLE = "VBF_EXC_SYNTAX_NO_HELPER_THROWABLE"; //$NON-NLS-1$ 
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/TaskListUtility.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/TaskListUtility.java
index 623eaa8..1cae3c1 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/TaskListUtility.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/TaskListUtility.java
@@ -225,44 +225,43 @@
 	private static IMarker[] getValidationTasks(IResource resource, int severity, int depth) {
 		IMarker[] tempMarkers = null;
 		int validCount = 0;
+		IMarker[] allMarkers = null;
 		try {
-			IMarker[] allMarkers = null;
-			try {
-				allMarkers = resource.findMarkers(VALIDATION_MARKER, true, depth); // false means
-				// only consider PROBLEM_MARKER, not variants of PROBLEM_MARKER.
-				// Since addTask only adds PROBLEM_MARKER, we don't need
-				// to consider its subtypes.
-			} catch (CoreException e) {
-				if (Tracing.isLogging())ValidationPlugin.getPlugin().handleException(e);
-				return NO_MARKERS;
-			}
+			allMarkers = resource.findMarkers(VALIDATION_MARKER, true, depth);
+		} catch (CoreException e) {
+			if (Tracing.isLogging())ValidationPlugin.getPlugin().handleException(e);
+			return NO_MARKERS;
+		}
 
-			// Now filter in the markers, based on severity type.
-			if (allMarkers.length != 0) {
-				tempMarkers = new IMarker[allMarkers.length];
-				for (int i = 0; i < allMarkers.length; i++) {
-					IMarker marker = allMarkers[i];
-					Integer filterSeverity = (Integer) marker.getAttribute(VALIDATION_MARKER_SEVERITY);
-					if (filterSeverity == null) {
-						// odd...marker wasn't created correctly. How could this happen?
-						// Default to the current severity and add it to the list.
-						try {
+		// Now filter in the markers, based on severity type.
+		if (allMarkers.length != 0) {
+			tempMarkers = new IMarker[allMarkers.length];
+			for (IMarker marker : allMarkers) {
+				Integer filterSeverity = null;
+				try {
+					filterSeverity = (Integer) marker.getAttribute(VALIDATION_MARKER_SEVERITY);
+				}
+				catch (CoreException e){
+					// Someone may have deleted the marker on us. All we can do is skip it.
+					continue;
+				}
+				if (filterSeverity == null) {
+					// odd...marker wasn't created correctly. How could this happen?
+					// Default to the current severity and add it to the list.
+					try {
+						// 226541 - I was seeing markers with valid severities being reset, so I added this
+						// additional test.
+						if (marker.getAttribute(IMarker.SEVERITY, -1) == -1)
 							marker.setAttribute(IMarker.SEVERITY, getSeverity(severity));
-						} catch (CoreException e) {
-							ValidationPlugin.getPlugin().handleException(e);
-							continue;
-						} catch (Exception e) {
-							ValidationPlugin.getPlugin().handleException(e);
-							continue;
-						}
-					} else if ((severity & filterSeverity.intValue()) == 0) {
+					} catch (Exception e) {
+						ValidationPlugin.getPlugin().handleException(e);
 						continue;
 					}
-					tempMarkers[validCount++] = marker;
+				} else if ((severity & filterSeverity.intValue()) == 0) {
+					continue;
 				}
+				tempMarkers[validCount++] = marker;
 			}
-		} catch (CoreException e) {
-			ValidationPlugin.getPlugin().handleException(e);
 		}
 
 		if (validCount == 0) {
@@ -284,34 +283,32 @@
 
 	private static IMarker[] getValidationTasks(IResource resource, String[] messageOwners, int depth) {
 		IMarker[] markers = getValidationTasks(resource, IMessage.ALL_MESSAGES, depth);
-		if (markers.length == 0) {
-			return NO_MARKERS;
-		}
+		if (markers.length == 0)return NO_MARKERS;
 
 		IMarker[] temp = new IMarker[markers.length];
 		int validCount = 0;
-		for (int i = 0; i < markers.length; i++) {
-			IMarker marker = markers[i];
-
+		for (IMarker marker : markers) {
+			Object owner = null;
 			try {
-				Object owner = marker.getAttribute(VALIDATION_MARKER_OWNER);
-				if ((owner == null) || !(owner instanceof String)) {
-					// The ValidationMigrator will remove any "unowned" validation markers.
-					continue;
-				}
-
-				for (int j = 0; j < messageOwners.length; j++) {
-					String messageOwner = messageOwners[j];
-					if (((String) owner).equals(messageOwner)) {
-						temp[validCount++] = marker;
-						break;
-					}
-				}
+				owner = marker.getAttribute(VALIDATION_MARKER_OWNER);
 			} catch (CoreException e) {
-				ValidationPlugin.getPlugin().handleException(e);
-				return NO_MARKERS;
+				// eat it -- if it no longer exists there is nothing we can do about it
+			}
+			
+			if ((owner == null) || !(owner instanceof String)) {
+				// The ValidationMigrator will remove any "unowned" validation markers.
+				continue;
+			}
+
+			for (String messageOwner : messageOwners) {
+				if (((String) owner).equals(messageOwner)) {
+					temp[validCount++] = marker;
+					break;
+				}
 			}
 		}
+		
+		if (validCount == 0)return NO_MARKERS;
 
 		IMarker[] result = new IMarker[validCount];
 		System.arraycopy(temp, 0, result, 0, validCount);
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidationConfiguration.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidationConfiguration.java
index 39571de..3ddb087 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidationConfiguration.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidationConfiguration.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,14 +10,10 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
 import java.lang.reflect.InvocationTargetException;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -35,6 +31,7 @@
 import org.eclipse.wst.validation.internal.delegates.ValidatorDelegateDescriptor;
 import org.eclipse.wst.validation.internal.delegates.ValidatorDelegatesRegistry;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
+import org.osgi.service.prefs.BackingStoreException;
 
 /**
  * This class represents the user's preference or project settings.
@@ -43,7 +40,7 @@
  * property while the resource is open.
  */
 public abstract class ValidationConfiguration implements IPropertyChangeListener {
-	private IResource 	_resource;
+	private final IResource 	_resource;
 	private boolean 	disableAllValidation = getDisableAllValidation();
 	private String 		_version;
 	
@@ -51,32 +48,35 @@
 	 * Map of all validators configured on the project or installed globally. The value of true
 	 * means that the VMD is enabled, and a value of false means that the VMD is disabled.
 	 */
-	private Map<ValidatorMetaData, Boolean>		_validators;
+	private Map<ValidatorMetaData, Boolean>		_validators = new HashMap<ValidatorMetaData, Boolean>();
 	protected Map<ValidatorMetaData, Boolean> 	manualValidators;
 	protected Map<ValidatorMetaData, Boolean> 	buildValidators;
 	
-	protected String USER_PREFERENCE 		= "USER_PREFERENCE"; //$NON-NLS-1$
-	protected String USER_MANUAL_PREFERENCE = "USER_MANUAL_PREFERENCE"; //$NON-NLS-1$
-	protected String USER_BUILD_PREFERENCE 	= "USER_BUILD_PREFERENCE"; //$NON-NLS-1$
-	protected String DELEGATES_PREFERENCE 	= "DELEGATES_PREFERENCE"; //$NON-NLS-1$
+	protected static final String UserPreference = "USER_PREFERENCE"; //$NON-NLS-1$
+	protected static final String UserBuildPreference = "USER_BUILD_PREFERENCE"; //$NON-NLS-1$
+	protected static final String UserManualPreference = "USER_MANUAL_PREFERENCE"; //$NON-NLS-1$
+	protected static final String DelegatesPreference = "DELEGATES_PREFERENCE"; //$NON-NLS-1$
+	
+	// GRK - I am keeping these "constants" in the off chance that they were used somewhere outside the framework
+	protected String USER_PREFERENCE 		= UserPreference;
+	protected String USER_MANUAL_PREFERENCE = UserManualPreference;
+	protected String USER_BUILD_PREFERENCE 	= UserBuildPreference;
+	protected String DELEGATES_PREFERENCE 	= DelegatesPreference;
 	
 	/**
 	 * The key is the target id, that is the id of the place holder validator. The value is the id 
 	 * of the real validator. 
 	 */
-	private Map<String, String> _delegatesByTarget;
+	private Map<String, String> _delegatesByTarget = new HashMap<String, String>();
 	
 	private static final String DefaultValue = "default_value"; //$NON-NLS-1$
 
-	public static String getEnabledElementsAsString(Set elements) {
-		if (elements == null) {
-			return null;
-		}
+	public static String getEnabledElementsAsString(Set<ValidatorMetaData> elements) {
+		if (elements == null)return null;
 
 		StringBuffer buffer = new StringBuffer();
-		Iterator iterator = elements.iterator();
-		while (iterator.hasNext()) {
-			buffer.append(((ValidatorMetaData) iterator.next()).getValidatorUniqueName());
+		for (ValidatorMetaData vmd : elements) {
+			buffer.append(vmd.getValidatorUniqueName());
 			buffer.append(ConfigurationConstants.ELEMENT_SEPARATOR);
 		}
 		return buffer.toString();
@@ -128,29 +128,47 @@
 
 		return result;
 	}
+	
+	/**
+	 * Answer the validators
+	 * @return
+	 */
+	public static Set<String> getValidatorIdsManual(){
+		PreferencesWrapper prefs = PreferencesWrapper.getPreferences(null, null);
+		String config = prefs.get(UserManualPreference, null);
+		return getValidatorIds(config);
+	}
+	
+	public static Set<String> getValidatorIdsBuild(){
+		PreferencesWrapper prefs = PreferencesWrapper.getPreferences(null, null);
+		String config = prefs.get(UserBuildPreference, null);
+		return getValidatorIds(config);
+	}
+	
+	private static Set<String> getValidatorIds(String elements){
+		Set<String> set = new HashSet<String>(50);
+		if (elements != null){
+			StringTokenizer tokenizer = new StringTokenizer(elements, ConfigurationConstants.ELEMENT_SEPARATOR);
+			while (tokenizer.hasMoreTokens())set.add(tokenizer.nextToken());
+		}
+		return set;
+	}
 
 	public static IWorkspaceRoot getRoot() {
 		return ResourcesPlugin.getWorkspace().getRoot();
 	}
-
-	protected ValidationConfiguration() throws InvocationTargetException {
-		_validators = new HashMap<ValidatorMetaData, Boolean>();
-		_delegatesByTarget = new HashMap<String, String>();
+	
+	protected ValidationConfiguration(IResource resource){
+		_resource = resource;
 	}
 
 	protected ValidationConfiguration(IResource resource, ValidatorMetaData[] validators) throws InvocationTargetException {
-		this();
-
 		if (resource == null) {
 			throw new InvocationTargetException(null, ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_NULLCREATE));
 		}
 
-		setResource(resource);
-		setValidators(validators);
-	}
-
-	private void setResource(IResource resource) {
 		_resource = resource;
+		setValidators(validators);
 	}
 	
 	public boolean isDisableAllValidation() throws InvocationTargetException {
@@ -187,8 +205,9 @@
 		ValidatorMetaData[] result = null;
 		 
 		if( !isDisableAllValidation() ){
-			ValidatorMetaData[] temp = new ValidatorMetaData[numberOfValidators()];
-			for (ValidatorMetaData vmd : getBuildEnabledValidatorsMap().keySet()) {
+			Set<ValidatorMetaData> set = getBuildEnabledValidatorsMap().keySet();
+			ValidatorMetaData[] temp = new ValidatorMetaData[set.size()];
+			for (ValidatorMetaData vmd : set) {
 				Boolean bvalue = getBuildEnabledValidatorsMap().get(vmd);
 				if (bvalue) {
 					// If the validator is enabled
@@ -441,6 +460,7 @@
 
 	/**
 	 * This preference has been migrated; change the version to the current version.
+	 * @deprecated dead code.
 	 */
 	public void markVersionCurrent() {
 		// The version should not be marked current until the migration is complete
@@ -521,17 +541,13 @@
 		return t.intValue();
 	}
 
-	public static ValidatorMetaData[] convertToArray(Collection c) {
+	public static ValidatorMetaData[] convertToArray(Collection<ValidatorMetaData> c) {
 		int length = (c == null) ? 0 : c.size();
 		ValidatorMetaData[] result = new ValidatorMetaData[length];
 		if (length == 0)return result;
 
-		Iterator iterator = c.iterator();
 		int count = 0;
-		while (iterator.hasNext()) {
-			ValidatorMetaData vmd = (ValidatorMetaData) iterator.next();
-			result[count++] = vmd;
-		}
+		for (ValidatorMetaData vmd : c)result[count++] = vmd;
 
 		return result;
 	}
@@ -544,27 +560,28 @@
 		System.arraycopy(c, 0, result, 0, length);
 		return result;
 	}
-
+	
 	/**
 	 * Save the values of these fields before the project or workspace is closed.
 	 */
 	public void store() throws InvocationTargetException {
-		Preferences pref = ValidationPlugin.getPlugin().getPluginPreferences();
-		if (pref != null) {
-			try {
-				OutputStream os = new ByteArrayOutputStream();
-				pref.setValue(USER_PREFERENCE, serialize());
-				pref.store(os, USER_PREFERENCE);
-				pref.setValue(USER_MANUAL_PREFERENCE, serializeManualSetting());
-				pref.store(os, USER_MANUAL_PREFERENCE);
-				pref.setValue(USER_BUILD_PREFERENCE, serializeBuildSetting());
-				pref.store(os, USER_BUILD_PREFERENCE);
-				pref.setValue(DELEGATES_PREFERENCE, serializeDelegatesSetting());
-				pref.store(os, DELEGATES_PREFERENCE);
-			} catch (IOException e) {
-				ValidationPlugin.getPlugin().handleException(e);
-			}
+		store(null);
+	}
 
+	/**
+	 * Save the values of these fields before the project or workspace is closed.
+	 */
+	public void store(Boolean persist) throws InvocationTargetException {
+		PreferencesWrapper pref = PreferencesWrapper.getPreferences(null, persist);
+		pref.put(ValidationConfiguration.UserPreference, serialize());
+		pref.put(ValidationConfiguration.UserManualPreference, serializeManualSetting());
+		pref.put(ValidationConfiguration.UserBuildPreference, serializeBuildSetting());
+		pref.put(ValidationConfiguration.DelegatesPreference, serializeDelegatesSetting());
+		try {
+			pref.flush();
+		}
+		catch (BackingStoreException e){
+			throw new InvocationTargetException(e);
 		}
 	}
 
@@ -696,24 +713,22 @@
 		// 1. This is a new workspace and no preferences exist.
 		// 2. This is a migrated workspace and the old preferences have already been created as
 		// persistent properties.
-		Preferences prefs = ValidationPlugin.getPlugin().getPluginPreferences();
-		if (prefs != null) {
-			deserializeAllPrefs(prefs);
-		}
+		PreferencesWrapper prefs = PreferencesWrapper.getPreferences(null, null);
+		deserializeAllPrefs(prefs);
 	}
 
 	/**
 	 * @param prefs
 	 * @throws InvocationTargetException
 	 */
-	private void deserializeAllPrefs(Preferences prefs) throws InvocationTargetException {
-		String storedConfig = prefs.getString(USER_PREFERENCE);
+	private void deserializeAllPrefs(PreferencesWrapper prefs) throws InvocationTargetException {
+		String storedConfig = prefs.get(ValidationConfiguration.UserPreference, null);
 		deserialize(storedConfig);
-		String storedManualConfig = prefs.getString(USER_MANUAL_PREFERENCE);
+		String storedManualConfig = prefs.get(ValidationConfiguration.UserManualPreference, null);
 		deserializeManual(storedManualConfig);
-		String storedBuildConfig = prefs.getString(USER_BUILD_PREFERENCE);
+		String storedBuildConfig = prefs.get(ValidationConfiguration.UserBuildPreference, null);
 		deserializeBuild(storedBuildConfig);
-		String storedDelegatesConfiguration = prefs.getString(DELEGATES_PREFERENCE);
+		String storedDelegatesConfiguration = prefs.get(ValidationConfiguration.DelegatesPreference, null);
 		deserializeDelegates(storedDelegatesConfiguration);
 	}
 	
@@ -731,13 +746,13 @@
 
 	private void deserializeAllPrefs(PropertyChangeEvent event) throws InvocationTargetException {
 		String storedConfig = (String)event.getNewValue();
-		if( event.getProperty().equals(USER_PREFERENCE) ){
+		if( event.getProperty().equals(ValidationConfiguration.UserPreference) ){
 			deserialize(storedConfig);
-		}else if(event.getProperty().equals(USER_MANUAL_PREFERENCE)){
+		}else if(event.getProperty().equals(ValidationConfiguration.UserManualPreference)){
 			deserializeManual(storedConfig);
-		}else if(event.getProperty().equals(USER_BUILD_PREFERENCE)){
+		}else if(event.getProperty().equals(ValidationConfiguration.UserBuildPreference)){
 			deserializeBuild(storedConfig);
-		}else if(event.getProperty().equals(DELEGATES_PREFERENCE)){
+		}else if(event.getProperty().equals(ValidationConfiguration.DelegatesPreference)){
 			deserializeDelegates(storedConfig);
 		}
 	}
@@ -795,7 +810,6 @@
 
 	protected void copyTo(ValidationConfiguration up) throws InvocationTargetException {
 		up.setVersion(getVersion());
-		up.setResource(getResource());
 		up.setValidators(getValidators());
 		up.setDisableAllValidation(isDisableAllValidation());
 		up.setEnabledValidators(getEnabledValidators());
@@ -854,30 +868,20 @@
    * @return true if there has been a change, false otherwise.
    * @throws InvocationTargetException
    */
-  protected boolean haveDelegatesChanged(Map oldDelegates) throws InvocationTargetException {
+  protected boolean haveDelegatesChanged(Map<String, String> oldDelegates) throws InvocationTargetException {
     
     if (oldDelegates == null)return true;
     
-    Iterator iterator = oldDelegates.keySet().iterator();
-    
-    while (iterator.hasNext())
-    {
-      String targetID = (String) iterator.next();
-      String oldDelegateID = (String) oldDelegates.get(targetID);
+    for (String targetID : oldDelegates.keySet()) {
+      String oldDelegateID = oldDelegates.get(targetID);
       String newDelegateID = _delegatesByTarget.get(targetID);
       
-      if (oldDelegateID == null || newDelegateID == null) {
-        return true;
-      }
+      if (oldDelegateID == null || newDelegateID == null)return true;
         
-      if (!newDelegateID.equals(oldDelegateID)) {
-        return true;
-      }
+      if (!newDelegateID.equals(oldDelegateID))return true;
     }
     
-    if (oldDelegates.size() != _delegatesByTarget.size()) {
-      return true;
-    }
+    if (oldDelegates.size() != _delegatesByTarget.size())return true;
     
     return false;
   }
@@ -917,20 +921,14 @@
    * @param validatorMetaData a Map with the currently configured validators.
    * @return a String.
    */
-  private String getDelegatesAsString(Map validatorMetaData) {
+  private String getDelegatesAsString(Map<ValidatorMetaData, Boolean> validatorMetaData) {
     
     StringBuffer buffer = new StringBuffer();
-    Iterator iterator = validatorMetaData.keySet().iterator();
-    
-    while (iterator.hasNext()) {
-    
-      ValidatorMetaData vmd = (ValidatorMetaData) iterator.next();
+    for (ValidatorMetaData vmd : validatorMetaData.keySet()) {    
       String targetID = vmd.getValidatorUniqueName();
       String delegateID = getDelegateUniqueName(vmd);
       
-      if (delegateID == null) {
-        continue;
-      }
+      if (delegateID == null)continue;
 
       // Write out pairs targetID=delegateID
 
@@ -994,7 +992,7 @@
 				String disableAllValidation = storedConfiguration.substring(disableAllValidationIndex + ConfigurationConstants.DISABLE_ALL_VALIDATION_SETTING.length(),versionIndex);
 				setDisableAllValidation(Boolean.valueOf(disableAllValidation).booleanValue());
 		} else {
-				setDisableAllValidation(false);;
+				setDisableAllValidation(false);
 		}
 		
 	}
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidationRegistryReader.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidationRegistryReader.java
index 7eafa3b..03910e7 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidationRegistryReader.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidationRegistryReader.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -54,36 +54,40 @@
  * ValidatorManager's loadValidatorMetaData(IProject) method. ValidatorManager delegates the load
  * call to this class, and if this class is null, the singleton is new'ed up, and the registry is
  * read.
- * 
+ * <p>
  * No Validator should need to know about this class. The only class which should call
  * ValidationRegistryReader is ValidatorManager.
- * 
+ * </p>
+ * <p>
  * The Validator itself is initialized in the "initializeValidator" method.
- * 
- * <extension point="org.eclipse.wst.validation.internal.provisional.core.core.validator" id="EJBValidator" name="EJB
- * Validator"> <validator><projectNature id="com.ibm.etools.j2ee.EJBNature" include="false"/>
- * <filter objectClass="org.eclipse.core.resources.IFile" nameFilter = "ejb-jar.xml"/> <filter
- * objectClass="org.eclipse.core.resources.IFile" nameFilter = "*.java"/> <helper
- * class="org.eclipse.wst.validation.internal.provisional.core.core.ejb.workbenchimpl.EJBHelper"/> <run
- * class="org.eclipse.wst.validation.internal.provisional.core.core.ejb.EJBValidator" incremental="false" enabled="false"
- * pass="fast,full" async="false"/> <aggregateValidator class="my.aggregate.ValidatorClass"/>
- * <migrate><validator from="old.class.name" to="new.class.name"/> </migrate> </validator>
- * </extension>
+ * </p>
  */
 public final class ValidationRegistryReader implements RegistryConstants {
-	private static ValidationRegistryReader inst;
+	
+	 /* <extension point="org.eclipse.wst.validation.internal.provisional.core.core.validator" id="EJBValidator" name="EJB
+		 * Validator"> <validator><projectNature id="com.ibm.etools.j2ee.EJBNature" include="false"/>
+		 * <filter objectClass="org.eclipse.core.resources.IFile" nameFilter = "ejb-jar.xml"/> <filter
+		 * objectClass="org.eclipse.core.resources.IFile" nameFilter = "*.java"/> <helper
+		 * class="org.eclipse.wst.validation.internal.provisional.core.core.ejb.workbenchimpl.EJBHelper"/> <run
+		 * class="org.eclipse.wst.validation.internal.provisional.core.core.ejb.EJBValidator" incremental="false" enabled="false"
+		 * pass="fast,full" async="false"/> <aggregateValidator class="my.aggregate.ValidatorClass"/>
+		 * <migrate><validator from="old.class.name" to="new.class.name"/> </migrate> </validator>
+		 * </extension>
+		 */
+	
+	private static ValidationRegistryReader _inst = new ValidationRegistryReader();
 	
 	/** list of all validators registered, with their associated ValidatorMetaData, indexed by project nature id */
-	private Map<String,Set<ValidatorMetaData>> _validators;
+	private final Map<String,Set<ValidatorMetaData>> _validators;
 	
 	// list of all validators, indexed by validator class name,
 	// with the validator's ValidatorMetaData as the value.
 	// Needed by the WorkbenchReporter, because sometimes the
 	// IValidator is not enough to remove all messages from the
 	// task list.
-	private Map<String, ValidatorMetaData> _indexedValidators; 
+	private final Map<String, ValidatorMetaData> _indexedValidators; 
 	
-	private Set<ValidatorMetaData> _defaultEnabledValidators;
+	private final Set<ValidatorMetaData> _defaultEnabledValidators;
 	
 	// Since IProject's contents are all instances of IResource, every type filter for a validator
 	// must be an instance of IResource. This applies to both the rebuildCache pass and to the
@@ -93,18 +97,18 @@
 	private static final String UNKNOWN_PROJECT = "UNKNOWN"; //$NON-NLS-1$ // This 'project nature id' is used as a key to get the validators which can run on a project type which hasn't been explicitly filtered in or out by any validator.
 	private static final String EXCLUDED_PROJECT = "EXCLUDED"; //$NON-NLS-1$ // This 'project nature id' is used as a key to get the validators which are excluded on certain projects.
 	
-	public HashMap<IProject, Set<ValidatorMetaData>> projectValidationMetaData;
+	/** @deprecated this instance variable should not be public. */
+	public HashMap<IProject, Set<ValidatorMetaData>> projectValidationMetaData = new HashMap<IProject, Set<ValidatorMetaData>>();
 
 	/**
 	 * The registry is read once - when this class is instantiated.
 	 */
 	private ValidationRegistryReader() {
-		super();
 
+		_validators = new HashMap<String,Set<ValidatorMetaData>>();
+		_indexedValidators = new HashMap<String, ValidatorMetaData>();
+		_defaultEnabledValidators = new HashSet<ValidatorMetaData>();
 		try {
-			_validators = new HashMap<String,Set<ValidatorMetaData>>();
-			_indexedValidators = new HashMap<String, ValidatorMetaData>();
-			_defaultEnabledValidators = new HashSet<ValidatorMetaData>();
 
 			// Read the registry and build a map of validators. The key into
 			// the map is the IValidator instance and the value is the ValidatorMetaData
@@ -643,7 +647,7 @@
 		return result;
 	}
 
-	private ValidatorMetaData.MigrationMetaData getMigrationMetaData(IConfigurationElement element, ValidatorMetaData vmd) {
+	private ValidatorMetaData.MigrationMetaData getMigrationMetaData(IConfigurationElement element) {
 		IConfigurationElement[] runChildren = element.getChildren(TAG_MIGRATE);
 		if ((runChildren == null) || (runChildren.length == 0)) {
 			return null;
@@ -658,7 +662,7 @@
 			return null;
 		}
 
-		ValidatorMetaData.MigrationMetaData mmd = vmd.new MigrationMetaData();
+		ValidatorMetaData.MigrationMetaData mmd = new ValidatorMetaData.MigrationMetaData();
 		for (int i = 0; i < migrateChildren.length; i++) {
 			IConfigurationElement migrateChild = migrateChildren[i];
 			String from = migrateChild.getAttribute(ATT_FROM);
@@ -717,12 +721,7 @@
 	 * Returns the singleton ValidationRegistryReader.
 	 */
 	public static ValidationRegistryReader getReader() {
-		if (inst == null) {
-			inst = new ValidationRegistryReader();
-
-			EventManager.getManager().setActive(true);
-		}
-		return inst;
+		return _inst;
 	}
 
 	public static boolean isActivated() {
@@ -738,7 +737,7 @@
 	 */
 	private IExtensionPoint getValidatorExtensionPoint() {
 		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IExtensionPoint extensionPoint = registry.getExtensionPoint(PLUGIN_ID, VALIDATOR_EXT_PT_ID);
+		IExtensionPoint extensionPoint = registry.getExtensionPoint(ValidationPlugin.PLUGIN_ID, VALIDATOR_EXT_PT_ID);
 		if (extensionPoint == null) {
 			// If this happens it means that someone removed the "validator" extension point
 			// declaration from our plugin.xml file.
@@ -778,9 +777,9 @@
 		return null;
 	}
 
-	public Set getValidatorMetaData(IWorkspaceRoot root) {
+	public Set<ValidatorMetaData> getValidatorMetaData(IWorkspaceRoot root) {
 		// Every validator on the Preferences page must be returned
-		Set copy = new HashSet();
+		Set<ValidatorMetaData> copy = new HashSet<ValidatorMetaData>();
 		clone(_indexedValidators.values(), copy);
 		return copy;
 	}
@@ -803,13 +802,13 @@
 	public void getValidatorMetaData(IProject project, Set<ValidatorMetaData> vmds) {
 		if (vmds == null)return;
 		vmds.clear();
-		int executionMap = 0x0;
+//		int executionMap = 0x0;
 		try {
 			if (Tracing.isTraceV1()) {
 				Tracing.log("ValidationRegistryReader-04: IProject is " + String.valueOf(project)); //$NON-NLS-1$
 			}
 			if (project == null) {
-				executionMap |= 0x1;
+//				executionMap |= 0x1;
 				// vmds is already clear
 				return;
 			}
@@ -817,7 +816,7 @@
 			try {
 				projectNatures = project.getDescription().getNatureIds();
 			} catch (CoreException e) {
-				executionMap |= 0x2;
+//				executionMap |= 0x2;
 				// vmds is already clear
 				ValidationPlugin.getPlugin().handleException(e);
 				return;
@@ -827,7 +826,7 @@
 			// on it, return the validators which are configured on all
 			// projects.
 			if ((projectNatures == null) || (projectNatures.length == 0)) {
-				executionMap |= 0x4;
+//				executionMap |= 0x4;
 				
 				// Also include the validators which are enabled through enablement
 				// expression for this project.
@@ -854,7 +853,7 @@
 
 
 			} else {
-				executionMap |= 0x8;
+//				executionMap |= 0x8;
 				if (Tracing.isTraceV1()) {
 					Tracing.log("ValidationRegistryReader-05: ", projectNatures.toString()); //$NON-NLS-1$
 				}
@@ -862,7 +861,7 @@
 				// Now filter out the validators which must not run on this project
 				removeExcludedProjects(project, vmds);
 				if (vmds.size() == 0) {
-					executionMap |= 0x20;
+//					executionMap |= 0x20;
 					clone(getValidatorMetaDataUnknownProject(), vmds);
 				}
 			}
@@ -978,17 +977,16 @@
 		}
 		for (int i = 0; i < projectNatures.length; i++) {
 			String nature = projectNatures[i];
-			Iterator iterator = vmds.iterator();
+			Iterator<ValidatorMetaData> iterator = vmds.iterator();
 			while (iterator.hasNext()) {
-				ValidatorMetaData vmd = (ValidatorMetaData) iterator.next();
+				ValidatorMetaData vmd = iterator.next();
 				ValidatorNameFilter[] natureFilters = vmd.getProjectNatureFilters();
 				if (natureFilters == null) {
 					// Can run on any project
 					continue;
 				}
 
-				for (int j = 0; j < natureFilters.length; j++) {
-					ValidatorNameFilter pn = natureFilters[j];
+				for (ValidatorNameFilter pn : natureFilters) {
 					if (nature.equals(pn.getNameFilter()) && !pn.isInclude()) {
 						iterator.remove();
 						break;
@@ -1045,19 +1043,27 @@
 	}
 
 	public boolean isConfiguredOnProject(ValidatorMetaData vmd, IProject project) {
-		if (projectValidationMetaData == null)
-			projectValidationMetaData = new HashMap<IProject, Set<ValidatorMetaData>>();
-
-		Set<ValidatorMetaData> vmds = projectValidationMetaData.get(project);
+		Set<ValidatorMetaData> vmds = null;
+		synchronized(projectValidationMetaData){
+			vmds = projectValidationMetaData.get(project);
+		}
 		if (vmds != null) {
 			return vmds.contains(vmd);
 		} else {
 			Set<ValidatorMetaData> prjVmds = getValidatorMetaData(project);
 			if (prjVmds == null || prjVmds.size() == 0)return false;
-			projectValidationMetaData.put(project, prjVmds);
+			synchronized(projectValidationMetaData){
+				projectValidationMetaData.put(project, prjVmds);
+			}
 			return prjVmds.contains(vmd);
 		}
 	}
+	
+	public void clearCachedMaps(){
+		synchronized(projectValidationMetaData){
+			projectValidationMetaData.clear();
+		}
+	}
 
 	/**
 	 * Return a set of ValidatorMetaData which are configured on all projects or which run on any
@@ -1078,8 +1084,8 @@
 	/**
 	 * Return a set of ValidatorMetaData which are enabled by default.
 	 */
-	public Set getValidatorMetaDataEnabledByDefault() {
-		Set copy = new HashSet();
+	public Set<ValidatorMetaData> getValidatorMetaDataEnabledByDefault() {
+		Set<ValidatorMetaData> copy = new HashSet<ValidatorMetaData>();
 		clone(_defaultEnabledValidators, copy);
 		return copy;
 	}
@@ -1101,9 +1107,7 @@
 	 * any code not in this package.
 	 */
 	public ValidatorMetaData getValidatorMetaData(String validatorClassName) {
-		if (validatorClassName == null) {
-			return null;
-		}
+		if (validatorClassName == null)return null;
 
 		ValidatorMetaData vmd2 = _indexedValidators.get(validatorClassName);
 		if (vmd2 != null)return vmd2;
@@ -1112,17 +1116,12 @@
 		for (ValidatorMetaData vmd : _indexedValidators.values()) {
 			if (vmd == null)continue;
 
-			if (vmd.getValidatorUniqueName().equals(validatorClassName)) {
-				return vmd;
-			}
+			if (vmd.getValidatorUniqueName().equals(validatorClassName))return vmd;
 
 			String[] aggregateNames = vmd.getAggregatedValidatorNames();
 			if (aggregateNames != null) {
-				for (int i = 0; i < aggregateNames.length; i++) {
-					String aggregateName = aggregateNames[i];
-					if (validatorClassName.equals(aggregateName)) {
-						return vmd;
-					}
+				for (String aggregateName : aggregateNames) {
+					if (validatorClassName.equals(aggregateName))return vmd;
 				}
 			}
 
@@ -1134,15 +1133,13 @@
 				continue;
 			}
 
-			Set idList = mmd.getIds();
+			Set<String[]> idList = mmd.getIds();
 			if (idList == null) {
 				// Invalid <migrate> element.
 				continue;
 			}
 
-			Iterator idIterator = idList.iterator();
-			while (idIterator.hasNext()) {
-				String[] ids = (String[]) idIterator.next();
+			for (String[] ids : idList) {
 				if (ids.length != 2) {
 					// log
 					continue;
@@ -1217,28 +1214,15 @@
 		//
 		// To load a String into the constants space, call intern() on the String.
 		//
-		ValidatorMetaData vmd = new ValidatorMetaData();
-		vmd.addFilters(getFilters(element)); // validator may, or may not, have filters
-		vmd.addProjectNatureFilters(getProjectNatureFilters(element)); // validator may, or may not, specify a project nature
-		vmd.addFacetFilters(getFacetIds(element));//validator may or may not specify the facet
-		vmd.setEnablementElement(getEnablementElement(element));
-		vmd.addAggregatedValidatorNames(getAggregateValidatorsNames(element)); // if a validator
-		// aggregated another validator, it should identify
-		// the sub-validator(s)' class name
-		vmd.setValidatorDisplayName(validatorName.intern()); // validator must have a display name.
-		vmd.setValidatorUniqueName(validatorImplName.intern());
-		vmd.setPluginId(pluginId);
-		vmd.setIncremental(getIncremental(element));
-		vmd.setFullBuild(getFullBuild(element));
-		vmd.setAsync(getAsync(element));
-		vmd.setRuleGroup(getRuleGroup(element));
-		vmd.setEnabledByDefault(getEnabledByDefault(element));
-		vmd.setMigrationMetaData(getMigrationMetaData(element, vmd));
-		vmd.setHelperClass(element, helperImplName);
-		vmd.setValidatorClass(runChildren[0]); // associate the above attributes with the validator
-		vmd.addDependentValidator(getDependentValidatorValue(element));
-		vmd.setContentTypeIds(getContentTypeBindings(element));
-		initializeValidatorCustomMarkers(element, pluginId, vmd);
+		
+		boolean async = getAsync(element);
+		String[] markerIds = initializeValidatorCustomMarkers(element, pluginId);
+		ValidatorMetaData vmd = new ValidatorMetaData(async, getAggregateValidatorsNames(element), getEnabledByDefault(element),
+				getIncremental(element), getFullBuild(element), element, helperImplName, getMigrationMetaData(element),
+				pluginId, getRuleGroup(element), runChildren[0], validatorName.intern(), validatorImplName.intern(),
+				getContentTypeBindings(element), getDependentValidatorValue(element), getEnablementElement(element),
+				getFacetIds(element), getFilters(element), getProjectNatureFilters(element), markerIds, getRunStragety(element));
+		
 		
 		if (Tracing.isTraceV1()) {
 			Tracing.log("ValidationRegistryReader-10: validator loaded: " + validatorImplName); //$NON-NLS-1$
@@ -1252,10 +1236,11 @@
 	 * @param pluginId
 	 * @param vmd
 	 */
-	private void initializeValidatorCustomMarkers(IConfigurationElement element, String pluginId, ValidatorMetaData vmd) {
+	private String[] initializeValidatorCustomMarkers(IConfigurationElement element, String pluginId) {
+		String[] qualifiedMarkerIds = null;
 		String[] customMarkerIds = getMarkerIdsValue(element);
 		if (customMarkerIds != null && customMarkerIds.length > 0) {
-			String[] qualifiedMarkerIds = new String[customMarkerIds.length];
+			qualifiedMarkerIds = new String[customMarkerIds.length];
 			for (int i = 0; i < customMarkerIds.length; i++) {
 				String markerid = customMarkerIds[i];
 				if (markerid.lastIndexOf(".") != -1) { //$NON-NLS-1$
@@ -1268,8 +1253,8 @@
 				} else
 					qualifiedMarkerIds[i] = pluginId + "." + customMarkerIds[i]; //$NON-NLS-1$
 			}
-			vmd.setMarkerIds(qualifiedMarkerIds);
 		}
+		return qualifiedMarkerIds;
 	}
 
 	private Expression getEnablementElement(IConfigurationElement element) {
@@ -1320,12 +1305,14 @@
 				// The PropertyPage, and other status messages, need to have a displayable name for
 				// the validator.
 				String pluginId = extension.getContributor().getName();
-				ValidatorMetaData vmd = initializeValidator(element, label, pluginId);
-
-				if (vmd != null) {
-					// Add this validator to the list of validators; if vmd is null, the validator
-					// couldn't be created.
-					add(vmd);
+				if (Tracing.isEnabled(extension.getUniqueIdentifier())){
+					ValidatorMetaData vmd = initializeValidator(element, label, pluginId);
+	
+					if (vmd != null) {
+						// Add this validator to the list of validators; if vmd is null, the validator
+						// couldn't be created.
+						add(vmd);
+					}
 				}
 			}
 		}
@@ -1362,5 +1349,22 @@
 			return vmd.getValidator();
 		return null;
 	}
+	/**
+	 * Given an IConfigurationElement from plugin.xml, return whether or not the validator is called by project
+	 * 
+	 * <p>If no project attribute is specified, the default is false (validator is called by resource)
+	 */
+	private boolean getRunStragety(IConfigurationElement element) {
+		
+		IConfigurationElement[] runChildren = element.getChildren(TAG_RUN_STRATEGY);
+		
+		if (runChildren == null || runChildren.length < 1) return RegistryConstants.ATT_PROJECT_DEFAULT;
+		String project = runChildren[0].getAttribute(ATT_PROJECT);
+		if (project == null)return RegistryConstants.ATT_PROJECT_DEFAULT;
+
+		return Boolean.valueOf(project.trim()); 
+	
+	}
+	
 
 }
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidatorMetaData.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidatorMetaData.java
index d015c2c..9d54ee3 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidatorMetaData.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidatorMetaData.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -18,6 +18,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicReference;
 
 import org.eclipse.core.expressions.Expression;
 import org.eclipse.core.resources.IContainer;
@@ -43,68 +44,72 @@
  * ValidatorMetaData; it is for use by the base framework only.
  */
 public class ValidatorMetaData {
-	private ValidatorFilter[] 		_filters;
-	private ValidatorNameFilter[] 	_projectNatureFilters;
-	private String[] 				_facetFilters;
-	private IValidator 				_validator;
-	private IWorkbenchContext 		_helper;
-	private String 					_validatorDisplayName;
-	private String 			_validatorUniqueName;
-	private String[] 		_aggregatedValidators;
-    private String[] 		_contentTypeIds = null;
-	private String[] 		_validatorNames;
-	private String 			_pluginId;
-	private boolean 		_supportsIncremental = RegistryConstants.ATT_INCREMENTAL_DEFAULT;
-	private boolean 		_supportsFullBuild = RegistryConstants.ATT_FULLBUILD_DEFAULT;
-	private boolean 		_isEnabledByDefault = RegistryConstants.ATT_ENABLED_DEFAULT;
-	private MigrationMetaData _migrationMetaData;
-	private int 			_ruleGroup = RegistryConstants.ATT_RULE_GROUP_DEFAULT;
-	private boolean 		_async = RegistryConstants.ATT_ASYNC_DEFAULT;
-	private boolean 		_dependentValidator = RegistryConstants.DEP_VAL_VALUE_DEFAULT;
-	private String[] 		_markerIds;
-	private String 			_helperClassName;
-	private IConfigurationElement _helperClassElement;
-	private IConfigurationElement _validatorClassElement;
-	private boolean 		_cannotLoad;
-	private boolean 		_manualValidation = true;
-	private boolean 		_buildValidation = true;
-	private Map<IValidatorJob, IWorkbenchContext> _helpers = 
-		Collections.synchronizedMap( new HashMap<IValidatorJob, IWorkbenchContext>() );
-	private Expression 		_enablementExpression;
-
-	ValidatorMetaData() {
-	}
-
+	private final ValidatorFilter[] _filters;
+	private final ValidatorNameFilter[] 	_projectNatureFilters;
+	private final String[]			_facetFilters;
+	private final AtomicReference<IValidator>	_validator = new AtomicReference<IValidator>();
+	private final AtomicReference<IWorkbenchContext> 		_helper = new AtomicReference<IWorkbenchContext>();
+	private final String 			_validatorDisplayName;
+	private final String 			_validatorUniqueName;
+	
 	/**
-	 * Add to the list of class names of every validator which this validator aggregates. For
+	 * The list of class names of every validator which this validator aggregates. For
 	 * example, if the EJB Validator instantiated another validator, and started its validate
 	 * method, then that instantiated class' name should be in this list.
 	 */
-	void addAggregatedValidatorNames(String[] val) {
-		_aggregatedValidators = val;
-	}
+	private final String[] 	_aggregatedValidators;
+    private final String[] 	_contentTypeIds;
+	private final String[] 	_validatorNames;
+	private final String 	_pluginId;
+	private final boolean	_supportsIncremental;
+	private final boolean 	_supportsFullBuild;
+	private final boolean 	_isEnabledByDefault;
+	private final MigrationMetaData _migrationMetaData;
+	private final int 		_ruleGroup;
+	private final boolean 	_async;
+	private final boolean 	_dependentValidator;
+	private final String[]	_markerIds;
+	private final String 	_helperClassName;
+	private final IConfigurationElement _helperClassElement;
+	private final IConfigurationElement _validatorClassElement;
+	private volatile boolean 	_cannotLoad;
+	private volatile boolean 	_manualValidation = true;
+	private volatile boolean	_buildValidation = true;
+	private final Map<IValidatorJob, IWorkbenchContext> _helpers = 
+		Collections.synchronizedMap( new HashMap<IValidatorJob, IWorkbenchContext>() );
+	private final Expression 		_enablementExpression;
+	private boolean _validateByProject = true;
 
-	/**
-	 * Add the name/type filter pair(s).
-	 */
-	void addFilters(ValidatorFilter[] filters) {
+	ValidatorMetaData(boolean async, String[] aggregatedValidators, boolean isEnabledByDefault, boolean supportsIncremental,
+			boolean supportsFullBuild, IConfigurationElement helperClassElement, String helperClassName, 
+			MigrationMetaData migrationMetaData, String pluginId, int ruleGroup, IConfigurationElement validatorClassElement,
+			String validatorDisplayName, String validatorUniqueName, String[] contentTypeIds, boolean dependentValidator,
+			Expression enablementExpression, String[] facetFilters, ValidatorFilter[] filters,
+			ValidatorNameFilter[] projectNatureFilters, String[] markerIds, boolean validateByProject) {
+		_async = async;
+		_aggregatedValidators = aggregatedValidators;
+		_isEnabledByDefault = isEnabledByDefault;
+		_supportsIncremental = supportsIncremental;
+		_supportsFullBuild = supportsFullBuild;
+		_helperClassElement = helperClassElement;
+		_helperClassName = helperClassName;
+		_migrationMetaData = migrationMetaData;
+		_pluginId = pluginId;
+		_ruleGroup = ruleGroup;
+		_validatorClassElement = validatorClassElement;
+		_validatorDisplayName = validatorDisplayName;
+		_validatorUniqueName = validatorUniqueName;
+		_contentTypeIds = contentTypeIds;
+		_dependentValidator = dependentValidator;
+		_enablementExpression = enablementExpression;
+		_facetFilters = facetFilters;
 		_filters = filters;
+		_projectNatureFilters = projectNatureFilters;
+		_markerIds = markerIds;
+		_validatorNames = buildValidatorNames();
+		_validateByProject = validateByProject;
 	}
-
-	/**
-	 * Add the project nature filter(s).
-	 */
-	void addProjectNatureFilters(ValidatorNameFilter[] filters) {
-		_projectNatureFilters = filters;
-	}
-	
-	/**
-	 * Add the facet  filter(s).
-	 */
-	protected void addFacetFilters(String[] filters) {
-		_facetFilters = filters;
-	}
-	
+		
 	protected String[] getFacetFilters() {
 		return _facetFilters;
 	}
@@ -126,16 +131,18 @@
 	 * Return the list of class names of the primary validator and its aggregates.
 	 */
 	public String[] getValidatorNames() {
-		if (_validatorNames == null) {
-			int aLength = (_aggregatedValidators == null) ? 0 : _aggregatedValidators.length;
-			_validatorNames = new String[aLength + 1]; // add 1 for the primary validator name
-			_validatorNames[0] = getValidatorUniqueName();
-			if (_aggregatedValidators != null) {
-				System.arraycopy(_aggregatedValidators, 0, _validatorNames, 1, aLength);
-			}
-		}
 		return _validatorNames;
 	}
+	
+	private String[] buildValidatorNames() {
+		int aLength = (_aggregatedValidators == null) ? 0 : _aggregatedValidators.length;
+		String [] validatorNames = new String[aLength + 1]; // add 1 for the primary validator name
+		validatorNames[0] = getValidatorUniqueName();
+		if (_aggregatedValidators != null) {
+			System.arraycopy(_aggregatedValidators, 0, validatorNames, 1, aLength);
+		}
+		return validatorNames;
+	}
 
 	/**
 	 * Return the list of class names of every validator which this validator aggregates. For
@@ -191,30 +198,25 @@
 	//TODO just want to remember to figure out the many-temporary-objects problem if this method
 	// continues to new an IValidationContext every time - Ruth
 	public IWorkbenchContext getHelper(IProject project) throws InstantiationException {
-		if (_helper == null) {
-			_helper = ValidationRegistryReader.createHelper(_helperClassElement, _helperClassName);
-			if (_helper == null) {
-				_helper = new WorkbenchContext();
-				//setCannotLoad();
-				//throw new InstantiationException(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_DISABLEH, new String[]{_helperClassName, getValidatorUniqueName()}));
-			}
-			// Won't be using the element & name again, so clear them.
-			//_helperClassElement = null;
-			//_helperClassName = null;
+		IWorkbenchContext helper = _helper.get();
+		if (helper != null){
+			IProject oldProject = helper.getProject();
+			if ((oldProject == null) || !(oldProject.equals(project)))helper.setProject(project);
+			return helper;
 		}
-		if ((_helper.getProject() == null) || !(_helper.getProject().equals(project))) {
-			// Initialize helper with the new project
-			_helper.setProject(project);
+		
+		helper = ValidationRegistryReader.createHelper(_helperClassElement, _helperClassName);
+		if (helper == null)helper = new WorkbenchContext();
+		
+		if ((helper.getProject() == null) || !(helper.getProject().equals(project))) {
+			helper.setProject(project);
 		}
-		return _helper;
+		if (_helper.compareAndSet(null, helper))return helper;
+		return _helper.get();
 	}
 
 	/**
 	 * cannotLoad is false if both the IValidator and IWorkbenchContext instance can be instantiated.
-	 * This method should be called only by the validation framework, and only if an
-	 * InstantiationException was thrown.
-	 * 
-	 * @param can
 	 */
 	private void setCannotLoad() {
 		_cannotLoad = true;
@@ -251,23 +253,19 @@
 	 * This method returns the validator if it can be loaded; if the validator cannot be loaded,
 	 * e.g., if its plugin is disabled for some reason, then this method throws an
 	 * InstantiationException. Before the CoreException is thrown, this validator is disabled.
-	 * 
-	 * @return IValidator
-	 * @throws InstantiationException
 	 */
 	public IValidator getValidator() throws InstantiationException {
-		if (_validator == null) {
-			_validator = ValidationRegistryReader.createValidator(_validatorClassElement, getValidatorUniqueName());
+		IValidator val = _validator.get();
+		if (val != null)return val;
+		
+		val = ValidationRegistryReader.createValidator(_validatorClassElement, getValidatorUniqueName());
 
-			// Since the element won't be used any more, clear it.
-			//_validatorClassElement = null;
-
-			if (_validator == null) {
-				setCannotLoad();
-				throw new InstantiationException(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_DISABLEV, new String[]{getValidatorUniqueName()}));
-			}
+		if (val == null) {
+			setCannotLoad();
+			throw new InstantiationException(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_EXC_DISABLEV, new String[]{getValidatorUniqueName()}));
 		}
-		return _validator;
+		if (_validator.compareAndSet(null, val))return val;
+		return _validator.get();
 	}
 
 	public String getValidatorDisplayName() {
@@ -297,8 +295,9 @@
 	 */
 	public boolean isApplicableTo(IResource resource, int resourceDelta) {
 		// If no filters are specified, then every type of resource should be validated/trigger a
-		// rebuild of the model cache
-		if (_filters == null)return true;
+		// rebuild of the model cache.
+		// Also make sure no content type id is specified (BUG 193816)
+		if (_filters == null  && getContentTypeIds() == null)return true;
 
 		return isApplicableTo(resource, resourceDelta, _filters);
 	}
@@ -308,15 +307,14 @@
 	 */
 	boolean isApplicableTo(IResource resource, int resourceDelta, ValidatorFilter[] filters) {
 		// Are any of the filters satisfied? (i.e., OR them, not AND them.)
-		if (checkIfValidSourceFile(resource)) {
-			for (int i = 0; i < filters.length; i++) {
-				ValidatorFilter filter = filters[i];
+		// make sure filters is not null (BUG 193816)
+		if (filters != null && checkIfValidSourceFile(resource)) {
+			for (ValidatorFilter filter : filters) {
 				if (filter.isApplicableType(resource)
 						&& filter.isApplicableName(resource)
 						&& filter.isApplicableAction(resourceDelta)) {
 					return true;
 				}
-
 			}
 		}
 		if (getContentTypeIds() != null) {
@@ -327,10 +325,8 @@
 			} catch (CoreException e) {
 				//Resource exceptions
 			}
-			if (description == null)
-				return false;
-			if (isApplicableContentType(description))
-				return true;
+			if (description == null)return false;
+			if (isApplicableContentType(description))return true;
 		}
 		return false;
 	}
@@ -343,6 +339,7 @@
 				return true;
 			IContainer[] outputContainers = helper.getOutputContainers(project);
 			IContainer[] sourceContainers = helper.getSourceContainers(project);
+			if(outputContainers != null && sourceContainers != null){
 			for (int i=0; i<outputContainers.length; i++) {
 				String outputPath = outputContainers[i].getProjectRelativePath().makeAbsolute().toString();
                 String filePath = file.getProjectRelativePath().makeAbsolute().toString();
@@ -353,11 +350,12 @@
 	                    if(outputContainers[i].equals(sourceContainers[j])){
 	                    	return true;
 	                    }
-						return false;
 					}
+					return false;
 				}
 			}
 		}
+		}
 		return true;
 	}
 		
@@ -415,63 +413,16 @@
 		return _async;
 	}
 
-	void setHelperClass(IConfigurationElement element, String helperClassName) {
-		_helperClassElement = element;
-		_helperClassName = helperClassName;
-	}
-
-	void setEnabledByDefault(boolean enabledByDefault) {
-		_isEnabledByDefault = enabledByDefault;
-	}
-
-	void setIncremental(boolean isIncremental) {
-		_supportsIncremental = isIncremental;
-	}
-
-	void setFullBuild(boolean fullBuild) {
-		_supportsFullBuild = fullBuild;
-	}
-
-	void setAsync(boolean isAsync) {
-		_async = isAsync;
-	}
-
-	void setMigrationMetaData(MigrationMetaData mmd) {
-		_migrationMetaData = mmd;
-	}
-
-	void setRuleGroup(int ruleGroup) {
-		_ruleGroup = ruleGroup;
-	}
-
-	void setValidatorClass(IConfigurationElement element) {
-		_validatorClassElement = element;
-		// validator class name == validatorUniqueName
-	}
-
-	void setValidatorDisplayName(String validatorName) {
-		_validatorDisplayName = validatorName;
-	}
-
-	void setValidatorUniqueName(String validatorUniqueName) {
-		_validatorUniqueName = validatorUniqueName;
-	}
-
-	void setPluginId(String validatorPluginId) {
-		_pluginId = validatorPluginId;
-	}
-
 	public String toString() {
 		return getValidatorUniqueName();
 	}
 
-	public class MigrationMetaData {
-		private Set _ids = null;
+	public final static class MigrationMetaData {
+		private Set<String[]> _ids;
 
 		public MigrationMetaData() {
 		}
 
-		@SuppressWarnings("unchecked")
 		public void addId(String oldId, String newId) {
 			if (oldId == null)return;
 			if (newId == null)return;
@@ -480,16 +431,12 @@
 			getIds().add(ids);
 		}
 
-		public Set getIds() {
-			if (_ids == null)_ids = new HashSet();
+		public Set<String[]> getIds() {
+			if (_ids == null)_ids = new HashSet<String[]>();
 			return _ids;
 		}
 	}
 
-	public void addDependentValidator(boolean b) {
-		_dependentValidator = b;
-	}
-
 	public boolean isDependentValidator() {
 		return _dependentValidator;
 	}
@@ -501,20 +448,12 @@
 		return _markerIds;
 	}
 
-	/**
-	 * @param markerId
-	 *            The markerId to set.
-	 */
-	public void setMarkerIds(String[] markerId) {
-		this._markerIds = markerId;
-	}
-
 	public boolean isBuildValidation() {
 		return _buildValidation;
 	}
 
 	public void setBuildValidation(boolean buildValidation) {
-		this._buildValidation = buildValidation;
+		_buildValidation = buildValidation;
 	}
 
 	public boolean isManualValidation() {
@@ -522,7 +461,7 @@
 	}
 
 	public void setManualValidation(boolean manualValidation) {
-		this._manualValidation = manualValidation;
+		_manualValidation = manualValidation;
 	}
   
 	/**
@@ -590,18 +529,10 @@
 		return _enablementExpression;
 	}
 
-   public void setEnablementElement(Expression enablementElement) {
-	 _enablementExpression = enablementElement;
-	}
-
 public String[] getContentTypeIds() {
 	return _contentTypeIds;
 }
 
-public void setContentTypeIds(String[] contentTypeIds) {
-	this._contentTypeIds = contentTypeIds;
-}
-
  
 private boolean isApplicableContentType(IContentDescription desc){
 	
@@ -615,5 +546,9 @@
 	}
 	return false;
 }
+
+public boolean isValidateByProject() {
+	return _validateByProject;
+}
    
 }
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidatorTypeFilter.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidatorTypeFilter.java
index 90f3642..40b74a4 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidatorTypeFilter.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/ValidatorTypeFilter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -20,8 +20,8 @@
  * provide the "instanceof" matching functionality.
  */
 public class ValidatorTypeFilter {
-	private Class _typeFilterClass = null;
-	private String _mustImplementClass = null; // the type set in setTypeFilter must implement the
+	private Class _typeFilterClass;
+	private String _mustImplementClass; // the type set in setTypeFilter must implement the
 
 	// class/interface identified by this fully-qualified
 	// Java string.
@@ -73,16 +73,13 @@
 		// doesn't implement A, then the isInstance call will return false.
 		//
 		// So, instead of using Class.isInstance, do the checking myself.
+		final String filterClassName = filterClass.getName();
 		for (Class cl = objectClass; cl != null; cl = cl.getSuperclass()) {
-			if (cl.getName().equals(filterClass.getName())) {
-				return true;
-			}
+			if (cl.getName().equals(filterClassName))return true;
 			Class[] clInterfaces = cl.getInterfaces();
 			for (int i = 0; i < clInterfaces.length; i++) {
-				if (clInterfaces[i].getName().equals(filterClass.getName())) {
-					return true;
-				}
-				return isInstance(clInterfaces[i], filterClass);
+				if (clInterfaces[i].getName().equals(filterClassName))return true;
+				if (isInstance(clInterfaces[i], filterClass))return true;
 			}
 		}
 		return false;
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/delegates/ValidatorDelegatesRegistry.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/delegates/ValidatorDelegatesRegistry.java
index afd3713..3ea034f 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/delegates/ValidatorDelegatesRegistry.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/delegates/ValidatorDelegatesRegistry.java
@@ -12,10 +12,17 @@
 package org.eclipse.wst.validation.internal.delegates;
 
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
 
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.wst.validation.internal.ConfigurationConstants;
 import org.eclipse.wst.validation.internal.core.ValidationException;
+import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 import org.eclipse.wst.validation.internal.provisional.core.IValidator;
 
 /**
@@ -40,19 +47,57 @@
    */
   public static ValidatorDelegatesRegistry getInstance() {
     if (_instance == null) {
-      _instance = new ValidatorDelegatesRegistry();
-      ValidatorDelegatesRegistryReader reader = new ValidatorDelegatesRegistryReader(_instance);
-      reader.readRegistry();
+    	ValidatorDelegatesRegistry instance = new ValidatorDelegatesRegistry();
+    	ValidatorDelegatesRegistryReader reader = new ValidatorDelegatesRegistryReader(instance);
+    	reader.readRegistry();
+    	instance.initDefaults();
+    	_instance = instance;
     }
 
     return _instance;
   }
 
   /**
+   * Determine if the product defined any default delegate validators, by setting the old
+   * DELEGATES_PREFERENCE preference in the default preference scope. If they did, we remember
+   * them, so that if we every need to return a default for the delegating validator, we can return the one
+   * that the product requested.
+   */
+  private void initDefaults() {
+	  	// This code was copied from the ValidationConfiguration#deserializeDelegates() method. The code was copied because this
+	  	// change is part of a patch and I didn't want to disturb the ValidationConfiguration class.
+	  
+		IEclipsePreferences prefs = new DefaultScope().getNode(ValidationPlugin.PLUGIN_ID);
+		String delegatePref = prefs.get("DELEGATES_PREFERENCE", null); //$NON-NLS-1$
+		if (delegatePref == null)return;
+
+		int delegatesIndex = delegatePref.indexOf(ConfigurationConstants.DELEGATE_VALIDATORS);
+		String delegates = delegatePref.substring(delegatesIndex + ConfigurationConstants.DELEGATE_VALIDATORS.length(), delegatePref.length());
+
+		if (delegates == null)return;
+
+		_defaultDelegates = new HashSet<String>(10);
+		StringTokenizer tokenizer = new StringTokenizer(delegates, ConfigurationConstants.ELEMENT_SEPARATOR);
+		while (tokenizer.hasMoreTokens()) {
+			String delegateConfiguration = tokenizer.nextToken();
+			int separatorIndex = delegateConfiguration.indexOf(ConfigurationConstants.DELEGATES_SEPARATOR);
+//			String targetID = delegateConfiguration.substring(0, separatorIndex);
+			String delegateID = delegateConfiguration.substring(separatorIndex + 1);
+			_defaultDelegates.add(delegateID);
+		}
+
+	}
+
+/**
    * The map of target validator id to Map of delegates by id.
    */
   private Map<String, Map<String,ValidatorDelegateDescriptor>> _delegatesByTarget = 
 	  new HashMap<String, Map<String,ValidatorDelegateDescriptor>>();
+  
+  /**
+   * Validator ids that have been defined by the product to be the default validators, for some of the delegating validtors.
+   */
+  private Set<String> _defaultDelegates;
 
   /**
    * Adds a descriptor to the registry.
@@ -84,21 +129,26 @@
    */
   public String getDefaultDelegate(String targetID)
   {
-    Map delegates = getDelegateDescriptors(targetID);
+    Map<String,ValidatorDelegateDescriptor> delegates = getDelegateDescriptors(targetID);
 
     if (delegates == null)return null;
 
+    if (_defaultDelegates != null){
+    	for (ValidatorDelegateDescriptor vdd : delegates.values()){
+    		String id = vdd.getId();
+    		if (_defaultDelegates.contains(id))return id;
+    	}
+    }
+    
     // TODO: Implement a default attribute and use that to get the default?
     // What happens if two or more delegates claim to be the default one?
     // For now, just pick the first one in the list.
 
-    Iterator delegatesIterator = delegates.values().iterator();
-
+    Iterator<ValidatorDelegateDescriptor> delegatesIterator = delegates.values().iterator();
+    
     if (!delegatesIterator.hasNext())return null;
 
-    ValidatorDelegateDescriptor descriptor = (ValidatorDelegateDescriptor) delegatesIterator.next();
-
-    return descriptor.getId();
+    return delegatesIterator.next().getId();
   }
 
   /**
@@ -165,7 +215,7 @@
    */
   public boolean hasDelegates(String targetID)
   {
-    Map delegatesByID = _delegatesByTarget.get(targetID);
+    Map<String,ValidatorDelegateDescriptor> delegatesByID = _delegatesByTarget.get(targetID);
 
     boolean hasDelegates = (delegatesByID != null && !delegatesByID.isEmpty());
     return hasDelegates;
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/delegates/ValidatorDelegatesRegistryReader.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/delegates/ValidatorDelegatesRegistryReader.java
index 264e26e..c6bafe9 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/delegates/ValidatorDelegatesRegistryReader.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/delegates/ValidatorDelegatesRegistryReader.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,103 +12,109 @@
 package org.eclipse.wst.validation.internal.delegates;
 
 import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IContributor;
 import org.eclipse.core.runtime.IExtensionPoint;
 import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.validation.internal.ValMessages;
+import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 
 /**
- * This class reads the plugin extension registry and registers each delegating
+ * This class reads the plug-in extension registry and registers each delegating
  * validator descriptor with the delegates registry.
  * 
  * @see ValidatorDelegatesRegistry
  */
-class ValidatorDelegatesRegistryReader
-{
-  /**
-   * The delegate class attribute. Must be visible in the package because it is
-   * used by other classes in the package.
-   */
-  static final String CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$
+class ValidatorDelegatesRegistryReader {
+	/**
+	 * The delegate class attribute.
+	 */
+	static final String CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$
 
-  /**
-   * The delegate element name.
-   */
-  private static final String DELEGATE_ELEMENT = "delegate"; //$NON-NLS-1$
+	/**
+	 * The delegate element name.
+	 */
+	private static final String DELEGATE_ELEMENT = "delegate"; //$NON-NLS-1$
 
-  /**
-   * The validator delegates extension point id.
-   */
-  private static final String EXTENSION_POINT_ID = "validatorDelegates"; //$NON-NLS-1$
+	/**
+	 * The validator delegates extension point id.
+	 */
+	private static final String EXTENSION_POINT_ID = "validatorDelegates"; //$NON-NLS-1$
 
-  /**
-   * The delegate name attribute.
-   */
-  private static final String NAME_ATTRIBUTE = "name"; //$NON-NLS-1$
+	/**
+	 * The delegate name attribute.
+	 */
+	private static final String NAME_ATTRIBUTE = "name"; //$NON-NLS-1$
 
-  /**
-   * Plugin id.
-   */
-  private static final String PLUGIN_ID = "org.eclipse.wst.validation"; //$NON-NLS-1$
+	private static final String PLUGIN_ID = "org.eclipse.wst.validation"; //$NON-NLS-1$
 
-  /**
-   * The target id attribute name.
-   */
-  private static final String TARGET_ATTRIBUTE = "target"; //$NON-NLS-1$
+	/**
+	 * The target id attribute name.
+	 */
+	private static final String TARGET_ATTRIBUTE = "target"; //$NON-NLS-1$
 
-  /**
-   * The validator registry where the descriptors being read will be placed.
-   */
-  private ValidatorDelegatesRegistry registry;
+	/**
+	 * The validator registry where the descriptors being read will be placed.
+	 */
+	private ValidatorDelegatesRegistry registry;
 
-  /**
-   * Constructor.
-   * 
-   * @param registry
-   *          the registry where the descriptors being read will be placed.
-   */
-  public ValidatorDelegatesRegistryReader(ValidatorDelegatesRegistry registry)
-  {
-    this.registry = registry;
-  }
+	/**
+	 * Constructor.
+	 * 
+	 * @param registry
+	 *            The registry where the descriptors being read will be placed.
+	 */
+	public ValidatorDelegatesRegistryReader(ValidatorDelegatesRegistry registry) {
+		this.registry = registry;
+	}
 
-  /**
-   * Reads a configuration element.
-   * 
-   * @param element
-   *          the platform configuration element being read.
-   */
-  private void readElement(IConfigurationElement element)
-  {
-    String elementName = element.getName();
+	/**
+	 * Reads a configuration element.
+	 * 
+	 * @param element
+	 *            The platform configuration element being read.
+	 */
+	private void readElement(IConfigurationElement element) {
+		String elementName = element.getName();
 
-    if (elementName.equals(DELEGATE_ELEMENT))
-    {
-      String delegateID = element.getAttribute(CLASS_ATTRIBUTE);
-      String delegateName = element.getAttribute(NAME_ATTRIBUTE);
-      String targetValidatorID = element.getAttribute(TARGET_ATTRIBUTE);
+		if (elementName.equals(DELEGATE_ELEMENT)) {
+			String delegateID = element.getAttribute(CLASS_ATTRIBUTE);
+			String delegateName = element.getAttribute(NAME_ATTRIBUTE);
+			String targetValidatorID = element.getAttribute(TARGET_ATTRIBUTE);
 
-      ValidatorDelegateDescriptor descriptor = new ValidatorDelegateDescriptor(delegateID, element, delegateName, targetValidatorID);
+			ValidatorDelegateDescriptor descriptor = new ValidatorDelegateDescriptor(
+					delegateID, element, delegateName, targetValidatorID);
 
-      registry.add(descriptor);
-    }
-  }
+			registry.add(descriptor);
+		}
+	}
 
-  /**
-   * Read from the extensions registry and parse it.
-   */
-  void readRegistry()
-  {
-    IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
-    IExtensionPoint point = pluginRegistry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
+	/**
+	 * Read from the extensions registry and parse it.
+	 */
+	void readRegistry() {
+		IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+		IExtensionPoint point = pluginRegistry.getExtensionPoint(PLUGIN_ID,
+				EXTENSION_POINT_ID);
 
-    if (point != null)
-    {
-      IConfigurationElement[] elements = point.getConfigurationElements();
-
-      for (int index = 0; index < elements.length; index++)
-      {
-        readElement(elements[index]);
-      }
-    }
-  }
+		if (point != null) {
+			IConfigurationElement[] elements = point.getConfigurationElements();
+			for (IConfigurationElement configurationElement : elements) {
+				try {
+					readElement(configurationElement);
+				} catch (Exception e) {
+					// we don't want all the validators to be rendered helpless
+					// by some
+					// rogue contribution, so, we catch any exception that
+					// occurs during
+					// initialization, log it, and continue on.
+					IContributor contributor = configurationElement.getContributor();
+					String msg = NLS.bind(ValMessages.RogueValidator, contributor);
+					ValidationPlugin.getPlugin().logMessage(IStatus.ERROR, msg);
+				}
+			}
+		}
+	}
 }
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/EnabledIncrementalValidatorsOperation.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/EnabledIncrementalValidatorsOperation.java
index df5a832..f36e48b 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/EnabledIncrementalValidatorsOperation.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/EnabledIncrementalValidatorsOperation.java
@@ -22,6 +22,7 @@
 import org.eclipse.wst.validation.internal.InternalValidatorManager;
 import org.eclipse.wst.validation.internal.ProjectConfiguration;
 import org.eclipse.wst.validation.internal.RegistryConstants;
+import org.eclipse.wst.validation.internal.ValidatorMetaData;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 
 /**
@@ -57,7 +58,7 @@
 	 *             EnabledIncrementalValidatorsOperation(IProject, IResourceDelta, int, boolean)
 	 *             instead.
 	 */
-	public EnabledIncrementalValidatorsOperation(IProject project, Set validators, IResourceDelta delta, int ruleGroup) {
+	public EnabledIncrementalValidatorsOperation(IProject project, Set<ValidatorMetaData> validators, IResourceDelta delta, int ruleGroup) {
 		this(project, delta, ruleGroup, DEFAULT_ASYNC);
 		setEnabledValidators(validators);
 	}
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/EnabledValidatorsOperation.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/EnabledValidatorsOperation.java
index c707bcb..9b8afb3 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/EnabledValidatorsOperation.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/EnabledValidatorsOperation.java
@@ -15,6 +15,7 @@
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.wst.validation.internal.RegistryConstants;
+import org.eclipse.wst.validation.internal.ValidatorMetaData;
 
 
 /**
@@ -116,7 +117,7 @@
 	 * in the background validation thread, if async is false, it would run in the main thread. 
 	 * All validators implementing IValidator interface will run in in the main thread regardless of this flag.
 	 */
-	protected EnabledValidatorsOperation(IProject project, Set enabledValidators, boolean async) {
+	protected EnabledValidatorsOperation(IProject project, Set<ValidatorMetaData> enabledValidators, boolean async) {
 		this(project, enabledValidators, RegistryConstants.ATT_RULE_GROUP_DEFAULT, DEFAULT_FORCE, async); 
 		// true = force validation to run whether or not auto-validate is on
 	}
@@ -130,7 +131,8 @@
 	 * in the background validation thread, if async is false, it would run in the main thread. 
 	 * All validators implementing IValidator interface will run in in the main thread regardless of this flag.
 	 */
-	protected EnabledValidatorsOperation(IProject project,IWorkbenchContext aWorkbenchContext, Set enabledValidators, boolean async) {
+	protected EnabledValidatorsOperation(IProject project,IWorkbenchContext aWorkbenchContext, 
+		Set<ValidatorMetaData> enabledValidators, boolean async) {
 		this(project,aWorkbenchContext, enabledValidators, RegistryConstants.ATT_RULE_GROUP_DEFAULT, DEFAULT_FORCE, async); 
 		// true = force validation to run whether or not auto-validate is on
 	}
@@ -144,7 +146,9 @@
 	 * in the background validation thread, if async is false, it would run in the main thread. 
 	 * All validators implementing IValidator interface will run in in the main thread regardless of this flag.
 	 */
-	protected EnabledValidatorsOperation(IProject project, Set enabledValidators, int ruleGroup, boolean force, boolean async) {
+	protected EnabledValidatorsOperation(IProject project, Set<ValidatorMetaData> enabledValidators, 
+		int ruleGroup, boolean force, boolean async) {
+		
 		super(project, force, ruleGroup, async);
 		setEnabledValidators(enabledValidators);
 	}
@@ -158,7 +162,8 @@
 	 * in the background validation thread, if async is false, it would run in the main thread. 
 	 * All validators implementing IValidator interface will run in in the main thread regardless of this flag.
 	 */
-	protected EnabledValidatorsOperation(IProject project, IWorkbenchContext aWorkbenchContext, Set enabledValidators, int ruleGroup, boolean force, boolean async) {
+	protected EnabledValidatorsOperation(IProject project, IWorkbenchContext aWorkbenchContext, 
+		Set<ValidatorMetaData> enabledValidators, int ruleGroup, boolean force, boolean async) {
 		super(project,aWorkbenchContext,force, ruleGroup, async);
 		setEnabledValidators(enabledValidators);
 	}
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/IWorkbenchContext.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/IWorkbenchContext.java
index 3724282..2ee4b60 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/IWorkbenchContext.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/IWorkbenchContext.java
@@ -100,14 +100,14 @@
 
 	/**
 	 * Return the name of the resource, without the project-specific information in front.
-	 * 
+	 * <p>
 	 * This method is used by ValidationOperation to calculate the non-environment specific names of
 	 * the files. Only the IWorkbenchContext implementation knows how much information to strip off
 	 * of the IResource name. For example, if there is an EJB Project named "MyEJBProject", and it
 	 * uses the default names for the source and output folders, "source" and "ejbModule",
 	 * respectively, then the current implementation of EJB Helper knows how much of that structure
 	 * is eclipse-specific.
-	 * 
+	 * </p><p>
 	 * Since the "source" folder contains Java source files, a portable name would be the
 	 * fully-qualified name of the Java class, without the eclipse-specific project and folder names
 	 * in front of the file name. The EJBHelper knows that everything up to the "source" folder, for
@@ -116,12 +116,13 @@
 	 * Project named "/MyEJBProject/source/com/ibm/myclasses/MyJavaFile.java", this method would
 	 * make this name portable by stripping off the "/MyEJBProject/source", and returning
 	 * "com/ibm/myclasses/MyJavaFile.java".
-	 * 
+	 * </p><p>
 	 * The output of this method is used by the ValidationOperation, when it is calculating the list
 	 * of added/changed/deleted file names for incremental validation. If getPortableName(IResource)
 	 * returns null, that means that the IWorkbenchContext's implementation does not support that
 	 * particular type of resource, and the resource should not be included in the array of
 	 * IFileDelta objects in the IValidator's "validate" method.
+	 * </p>
 	 */
 	String getPortableName(IResource resource);
 
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ManualValidatorsOperation.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ManualValidatorsOperation.java
index 4f22ced..03a0bf2 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ManualValidatorsOperation.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ManualValidatorsOperation.java
@@ -20,11 +20,13 @@
  * ValidationOperation, because some initialization of the validator, and handling of error
  * conditions, is done in the operation. The initialization is separated because some of the
  * information needed to initialize the validator (i.e., the project) isn't known until runtime.
- * 
+ * <p>
  * Instances of this operation run every enabled validator (both full and incremental) on the
  * project.
- * 
+ * </p>
+ * <p>
  * This operation is not intended to be subclassed outside of the validation framework.
+ * </p>
  */
 public class ManualValidatorsOperation extends ValidatorSubsetOperation {
 
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/OneValidatorOperation.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/OneValidatorOperation.java
index 38f8f3a..99d359b 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/OneValidatorOperation.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/OneValidatorOperation.java
@@ -80,38 +80,39 @@
 	 * OneValidatorOperation constructor comment.
 	 * 
 	 * @param project
-	 *            org.eclipse.core.resources.IProject
+	 *            The project to be validated. It must exist and be open.
 	 * @param validatorId
-	 *            The plugin id of the validator which you wish to run.
+	 *            The plug-in id of the validator which you wish to run.
 	 * @param force
-	 *            If the value is "true", the validator should be run regardless of what the
-	 *            environment settings are; if the value is "false", this operation should be run
-	 *            only if the validation builder will not run the validator.
+	 *            If the value is "true", the validator should be run regardless
+	 *            of what the environment settings are; if the value is "false",
+	 *            this operation should be run only if the validation builder
+	 *            will not run the validator.
 	 * @param ruleGroup
 	 *            Whether a FULL or FAST pass should be invoked.
+	 * @param async
+	 *            If async is true, the validation will run all thread-safe
+	 *            validators in the background validation thread, and all other
+	 *            validators in the main thread. If async is false, all
+	 *            validators will run in in the main thread.
 	 * 
-	 * IllegalArgumentException will be thrown if the named validator is not configured on the
-	 * project.
+	 * IllegalArgumentException will be thrown if the named validator is not
+	 * configured on the project.
 	 * 
-	 * IProject must exist and be open.
-	 * 
-	 * If async is true, the validation will run all thread-safe validators in the background
-	 * validation thread, and all other validators in the main thread. If async is false, all
-	 * validators will run in in the main thread.
 	 */
 	public OneValidatorOperation(IProject project, String validatorId, boolean force, int ruleGroup, boolean async) throws IllegalArgumentException {
 		super(project, force, ruleGroup, async);
 
 		ValidatorMetaData vmd = ValidationRegistryReader.getReader().getValidatorMetaData(validatorId);
 		if (vmd == null) {
-			// No validator, with that plugin id, can be run on that project.
+			// No validator, with that plug-in id, can be run on that project.
 			// Either the validator isn't installed, or the IProject passed in
 			// doesn't have the necessary nature.
 			throw new IllegalArgumentException(validatorId);
 		}
 
 		if (!vmd.isConfiguredOnProject(project)) {
-			// No validator, with that plugin id, can be run on that project.
+			// No validator, with that plug-in id, can be run on that project.
 			// Either the validator isn't installed, or the IProject passed in
 			// doesn't have the necessary nature.
 			throw new IllegalArgumentException(validatorId);
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ReferencialFileValidatorHelper.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ReferencialFileValidatorHelper.java
index 10ed72d..99d66e1 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ReferencialFileValidatorHelper.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ReferencialFileValidatorHelper.java
@@ -35,7 +35,7 @@
 	/**
 	 * Return a list of all files contained in project to infinite depth
 	 */
-	public static List getAllProjectFiles(IProject project) {
+	public static List<IFile> getAllProjectFiles(IProject project) {
 		List<IFile> result = new ArrayList<IFile>();
 		if (project == null)return result;
 		
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationBuilder.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationBuilder.java
index 3360aaf..5bb1c28 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationBuilder.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationBuilder.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,6 +12,7 @@
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -22,16 +23,16 @@
 import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.wst.validation.ValidationFramework;
 import org.eclipse.wst.validation.internal.ConfigurationManager;
 import org.eclipse.wst.validation.internal.InternalValidatorManager;
 import org.eclipse.wst.validation.internal.ProjectConfiguration;
 import org.eclipse.wst.validation.internal.ResourceConstants;
 import org.eclipse.wst.validation.internal.ResourceHandler;
+import org.eclipse.wst.validation.internal.Tracing;
 import org.eclipse.wst.validation.internal.ValBuilderJob;
 import org.eclipse.wst.validation.internal.ValManager;
-import org.eclipse.wst.validation.internal.ValOperationManager;
 import org.eclipse.wst.validation.internal.ValidatorMetaData;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 
@@ -50,13 +51,22 @@
  * </p>
  */
 public class ValidationBuilder extends IncrementalProjectBuilder {
+	/*
+	 * GRK - This class serves as a main entry point into the framework. There is one instance of this class for every
+	 * project that has a validation builder configured for it. Typically if you had ten projects in your workspace you would have
+	 * ten of these objects. They are created early in the life cycle of the workbench, and then are reused. 
+	 * 
+	 * My observation was that they are run serially by the same thread.
+	 */
 	public static final int NO_DELTA_CHANGE = -1;
 	protected List<IProject> referencedProjects;
 	protected IWorkbenchContext workbenchContext = null;
 	
-	/** All the jobs that the validation framework spawns will belong to this family. */
+	/** 
+	 * All the jobs that the validation framework spawns will belong to this family. 
+	 */
 	public static final Object FAMILY_VALIDATION_JOB = new Object();
-
+	
 	public ValidationBuilder() {
 	}
 
@@ -101,8 +111,10 @@
 	}
 
 	protected void clean(IProgressMonitor monitor) throws CoreException {
-		newClean(monitor);
 		IProject currentProject = getProject();
+		Tracing.log("ValidationBuilder-02 clean ", currentProject); //$NON-NLS-1$
+
+		newClean(monitor);
 		if (currentProject == null || !currentProject.isAccessible())return;
 		try {
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(currentProject);
@@ -126,9 +138,15 @@
 		return referencedProjects.toArray(refProjArray);
 	}
 	
+	@SuppressWarnings("unchecked")
 	public IProject[] build(int kind, Map parameters, IProgressMonitor monitor) {
 		IResourceDelta delta = null;
 		IProject project = getProject();
+		Tracing.log("ValidationBuilder-01 build ", kind, project);  //$NON-NLS-1$
+		if (Tracing.isLogging(1)){
+			Tracing.logResourceDeltas(getDelta(project), 50);
+		}
+		
 		// GRK I wonder why this builder needs to know about all the other referenced projects?
 		// won't they have builders of their own.
 		IProject[] referenced = getAllReferencedProjects(project, null);
@@ -136,7 +154,7 @@
 			ValManager.getDefault().isDisabled(project))return referenced;
 
 		try {
-			newBuild(kind, parameters, monitor);
+			newBuild(kind, monitor);
 
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
 			delta = getDelta(project);
@@ -160,11 +178,14 @@
 				return referenced;
 			}
 			if (doFullBuild) {
+				cleanupReferencedProjectsMarkers(prjp, referenced);
 				performFullBuild(monitor, prjp);
 			} else {
 				if (delta.getAffectedChildren().length == 0) {
-					if (isReferencedProjectInDelta(referenced))
+					if (isReferencedProjectInDelta(referenced)){
+						cleanupReferencedProjectsMarkers(prjp, referenced);
 						performFullBuildForReferencedProjectChanged(monitor, prjp);
+					}
 					return referenced;
 				}
 				EnabledIncrementalValidatorsOperation operation = new EnabledIncrementalValidatorsOperation(project, delta, true);
@@ -182,6 +203,39 @@
 			referencedProjects = null;
 		}
 	}
+	
+	private void cleanupReferencedProjectsMarkers(final ProjectConfiguration prjp, IProject[] referenced){
+		//When a project references one or more project, performing a clean build on referenced
+		//causes delta to be invoked on referencee, aka, parent. This causes following code to
+		//be invoked.
+		//The following code is trying to fix a case where Ejb project references a utility project,
+		//and the clean build on utility project causes the code to come here, the ejb validator runs
+		//on the ejb  project due to performFullBuildForReferencedProjectChanged() below, but it also
+		//causes marker to be generated for the util project, but the markers for util project are not
+		//cleaned up.   
+		
+		if( referenced == null || referenced.length == 0 )return;
+		
+		try{
+			ValidatorMetaData[] enabledValidators = prjp.getEnabledFullBuildValidators(true, false);
+ 
+			Set<ValidatorMetaData>  set = new HashSet<ValidatorMetaData>();
+			set.addAll( Arrays.asList( enabledValidators ) );
+			for (IProject p : referenced) {
+				if (!p.isAccessible())continue;
+				ProjectConfiguration refProjectCfg = ConfigurationManager.getManager().getProjectConfiguration(p);
+		
+				ValidatorMetaData[] refEnabledValidators = refProjectCfg.getEnabledFullBuildValidators(true, false);
+				
+				//remove from the set the validators which are also in child
+				for(ValidatorMetaData vmd : refEnabledValidators)set.remove(vmd);
+				
+				for(ValidatorMetaData vmd : set)WorkbenchReporter.removeAllMessages(p, vmd.getValidator());		
+			}	
+		}catch (Exception exc) {
+			ValidationPlugin.getPlugin().logMessage(IStatus.ERROR, exc.toString());
+	}
+}
 
 	private boolean isReferencedProjectInDelta(IProject[] referenced) {
 		IProject p = null;
@@ -205,7 +259,7 @@
 	private void performFullBuild(IProgressMonitor monitor, ProjectConfiguration prjp, boolean onlyDependentValidators) throws InvocationTargetException {
 		ValidatorMetaData[] enabledValidators = prjp.getEnabledFullBuildValidators(true, onlyDependentValidators);
 		if ((enabledValidators != null) && (enabledValidators.length > 0)) {
-			Set enabledValidatorsSet = InternalValidatorManager.wrapInSet(enabledValidators);
+			Set<ValidatorMetaData> enabledValidatorsSet = InternalValidatorManager.wrapInSet(enabledValidators);
 			EnabledValidatorsOperation op = new EnabledValidatorsOperation(getProject(), enabledValidatorsSet, true);
 			op.run(monitor);
 		}
@@ -222,7 +276,7 @@
 	 * @see IncrementalProjectBuilder#FULL_BUILD
 	 * @see IncrementalProjectBuilder#INCREMENTAL_BUILD
 	 */
-	private void newBuild(int kind, Map args, IProgressMonitor monitor)	throws CoreException {
+	private void newBuild(int kind, IProgressMonitor monitor)	throws CoreException {
 
 		IResourceDelta delta = null;
 		IProject project = getProject();
@@ -234,8 +288,7 @@
 				break;
 		}
 		
-		Job job = new ValBuilderJob(project, delta, kind, ValOperationManager.getDefault().getOperation());		
-		job.schedule();
+		ValBuilderJob.validateProject(project, delta, kind);		
 	}
 	
 	
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java
index 60bdd3b..c9f7b53 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -17,6 +17,7 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Queue;
 import java.util.Set;
 
 import org.eclipse.core.resources.IFile;
@@ -62,11 +63,12 @@
 import org.eclipse.wst.validation.internal.provisional.core.IValidatorJob;
 
 /**
- * Implemented Validators methods must not be called directly by anyone other than this class, since
+ * Validators must not be called directly by anyone other than this class, since
  * some initialization of the validator is done here (via the getProject() method). The
  * initialization is separated because the IProject isn't known until runtime.
  * <p>
  * This operation is not intended to be subclassed outside of the validation framework.
+ * </p>
  */
 public abstract class ValidationOperation implements IWorkspaceRunnable, IHeadlessRunnableWithProgress {
 	// Since IResourceConstants don't have a "no delta" flag, let this constant be the flag.
@@ -79,21 +81,49 @@
 	
 	protected static final boolean DEFAULT_FORCE = true;
 	
-	class ValidationLauncherJob extends Job {
-	    private Job validationJob;
-	    public ValidationLauncherJob(Job validationJob) {
+	private static ValidationLauncherJob launcherJob = new ValidationLauncherJob();
+	
+	private static final int jobsPerProcessor = 3;
+	
+	private final static class ValidationLauncherJob extends Job {
+	    private Queue<Job> _validationJobs = new LinkedList<Job>();
+	    
+	    public ValidationLauncherJob() {
             super(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_VALIDATION_JOB_MSG));
-            
             setSystem(true);
             setRule(ResourcesPlugin.getWorkspace().getRoot());
-            this.validationJob= validationJob;
 	    }
 	    
 	    protected IStatus run(IProgressMonitor monitor) {
-    		validationJob.schedule();
+			int processors = Runtime.getRuntime().availableProcessors();
+			int totalInitialJobs = processors * jobsPerProcessor;
+    		synchronized (_validationJobs) {
+    			// never schedule more than 3 validation jobs per processor at a time
+    			for (int i=0; i< totalInitialJobs; i++) {
+    				Job validationJob = _validationJobs.poll();
+    				if (validationJob == null) break;
+    				addJobChangeAdapter(validationJob);
+    				validationJob.schedule();
+    			}
+    		}
             return Status.OK_STATUS;
 	    }
 	    
+	    private void addJobChangeAdapter(Job job) {
+	    	job.addJobChangeListener(new JobChangeAdapter(){
+	    		// when done, see if there is another validation job to schedule
+				public void done(IJobChangeEvent event) {
+					synchronized (_validationJobs) {
+						Job validationJob = _validationJobs.poll();
+						if (validationJob != null) {
+							addJobChangeAdapter(validationJob);
+							validationJob.schedule();
+						}
+					}
+				}
+			});
+	    }
+	    
 	    @Override
 	    public boolean belongsTo(Object family) {
 			if (family == ResourcesPlugin.FAMILY_MANUAL_BUILD)return true;
@@ -102,6 +132,16 @@
 			}
 			return super.belongsTo(family);
 	    }
+	    
+	    public void addValidationJob(Job validationJob) {
+	    	synchronized (_validationJobs) {
+	    		_validationJobs.add(validationJob);
+	    		// schedule the job if we were empty
+	    		if (_validationJobs.size() == 1) {
+	    			this.schedule();
+	    		}
+	    	}
+	    }
 	}
 	
 	/**
@@ -228,12 +268,7 @@
 	 * @deprecated Will be removed in Milestone 3.
 	 */
 	protected void terminateCleanup(WorkbenchReporter reporter) {
-		Set enabledValidators = getEnabledValidators();
-		Iterator iterator = enabledValidators.iterator();
-		ValidatorMetaData vmd = null;
-
-		while (iterator.hasNext()) {
-			vmd = (ValidatorMetaData) iterator.next();
+		for (ValidatorMetaData vmd : getEnabledValidators()) {
 			reporter.displaySubtask(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_STATUS_VALIDATOR_CLEANUP, new String[]{vmd.getValidatorDisplayName()}));
 			try {
 				reporter.removeAllMessages(vmd.getValidator());
@@ -468,19 +503,14 @@
 	 * operation to do.
 	 */
 	public boolean isNecessary(IProgressMonitor monitor) throws CoreException, OperationCanceledException {
-		Set enabledValidators = getEnabledValidators();
+		Set<ValidatorMetaData> enabledValidators = getEnabledValidators();
 		if ((enabledValidators == null) || (enabledValidators.size() == 0)) {
 			return false;
 		}
-		if (isFullValidate()) {
-			return true;
-		}
-		Iterator iterator = enabledValidators.iterator();
-		while (iterator.hasNext()) {
-			ValidatorMetaData vmd = (ValidatorMetaData) iterator.next();
-			if (isValidationNecessary(vmd, getFileDeltas(monitor, vmd))) {
-				return true;
-			}
+		if (isFullValidate())return true;
+		
+		for (ValidatorMetaData vmd : enabledValidators) {
+			if (isValidationNecessary(vmd, getFileDeltas(monitor, vmd)))return true;
 		}
 		return false;
 	}
@@ -554,14 +584,12 @@
 		return _launchedValidators;
 	}
 
-	protected void setEnabledValidators(Set evmds) {
+	protected void setEnabledValidators(Set<ValidatorMetaData> evmds) {
 		// Check that every VMD in the set is configured on this project.
 		// Necessary because the user can manually choose which validators
 		// to launch, and the validator may not be installed.
 		_enabledValidators.clear();
-		Iterator iterator = evmds.iterator();
-		while (iterator.hasNext()) {
-			ValidatorMetaData vmd = (ValidatorMetaData) iterator.next();
+		for (ValidatorMetaData vmd : evmds) {
 			if (ValidationRegistryReader.getReader().isConfiguredOnProject(vmd, getProject())) {
 				_enabledValidators.add(vmd);
 			}
@@ -577,10 +605,10 @@
 
 	protected int getUnitsOfWork() {
 		/*
-		 * // Let one unit of work equal one resource. number of enabled validators // i.e., each
+		 * Let one unit of work equal one resource. number of enabled validators. i.e., each
 		 * enabled validator must process (at most) each resource in the project; count each process
-		 * as one unit of work // Note that this is a ceiling number, because if we're doing an
-		 * incremental validation, not all resources will // be validated.
+		 * as one unit of work. Note that this is a ceiling number, because if we're doing an
+		 * incremental validation, not all resources will be validated.
 		 * setNumResources(countResources(getProject())); getEnabledValidators().size();
 		 */
 		// Until the validators can report units-of-work complete,
@@ -657,10 +685,6 @@
 		}
 	}
 
-	/**
-	 * @param reporter
-	 * @param referencialFileValidator
-	 */
 	private void refFileValidateFileDelta(WorkbenchReporter reporter, ReferencialFileValidator refFileValidator) {
 		IResourceDelta[] resourceDelta = _delta.getAffectedChildren(IResourceDelta.ADDED | IResourceDelta.CHANGED | IResourceDelta.REMOVED);
 		List<IResource> inputFiles = new ArrayList<IResource>();
@@ -686,10 +710,6 @@
 		}
 	}
 
-	/**
-	 * @param delta
-	 * @return
-	 */
 	private void getFileResourceDeltaInFolder(IResourceDelta delta, List<IResource> inputFiles) {
 		IResourceDelta[] resourceDelta = delta.getAffectedChildren();
 		for (int i = 0; i < resourceDelta.length; i++) {
@@ -699,17 +719,11 @@
 		}
 	}
 
-	/**
-	 * @param reporter
-	 * @param referencialFileValidator
-	 */
 	private void postValidateProject(WorkbenchReporter reporter, ReferencialFileValidator refFileValidator) {
-		Set set = ValidationRegistryReader.getReader().getValidatorMetaData(_project);
-		Iterator it = set.iterator();
-		while (it.hasNext()) {
-			ValidatorMetaData data = (ValidatorMetaData) it.next();
-			List filters = data.getNameFilters();
-			List files = getAllFilesForFilter(filters);
+		Set<ValidatorMetaData> set = ValidationRegistryReader.getReader().getValidatorMetaData(_project);
+		for (ValidatorMetaData data : set) {
+			List<String> filters = data.getNameFilters();
+			List<IFile> files = getAllFilesForFilter(filters);
 			if (!files.isEmpty()) {
 				List<IFile> fileForValidation = refFileValidator.getReferencedFile(files);
 				try {
@@ -721,29 +735,20 @@
 		}
 	}
 
-	/**
-	 * @param filters
-	 * @return
-	 */
-	private List<IFile> getAllFilesForFilter(List filters) {
+	private List<IFile> getAllFilesForFilter(List<String> filters) {
 		if (!filters.isEmpty()) {
-			List allProjectFiles = ReferencialFileValidatorHelper.getAllProjectFiles(_project);
+			List<IFile> allProjectFiles = ReferencialFileValidatorHelper.getAllProjectFiles(_project);
 			List<IFile> filterFiles = new ArrayList<IFile>();
-			for (int i = 0; i < filters.size(); i++) {
-				String fileName = (String) filters.get(i);
-				if (fileName == null)
-					continue;
-				for (int j = 0; j < allProjectFiles.size(); j++) {
-					IFile projectFile = (IFile) allProjectFiles.get(j);
+			for (String fileName : filters) {
+				if (fileName == null)continue;
+				
+				for (IFile projectFile : allProjectFiles) {
 					if (fileName.charAt(0) == '*') {
 						String extName = fileName.substring(2, fileName.length());
 						String ext = projectFile.getFileExtension();
-						if (ext != null && ext.equals(extName))
-							filterFiles.add(projectFile);
-					} else if (fileName.equals(projectFile.getName()))
-						filterFiles.add(projectFile);
+						if (ext != null && ext.equals(extName))filterFiles.add(projectFile);
+					} else if (fileName.equals(projectFile.getName()))filterFiles.add(projectFile);
 				}
-
 			}
 			return filterFiles;
 		}
@@ -795,7 +800,7 @@
 		checkCanceled(reporter);
 		reporter.getProgressMonitor().beginTask(ResourceHandler.getExternalizedMessage(ResourceConstants.VBF_STATUS_PROGRESSMONITOR_TITLE), getUnitsOfWork());
 		IValidator validator = null;
-		Iterator iterator = null;
+		Iterator<ValidatorMetaData> iterator = null;
 		IFileDelta[] delta = null;
 		
 		Set<ValidatorMetaData> jobValidators = new HashSet<ValidatorMetaData>();
@@ -914,10 +919,7 @@
 	}
 
 	private void releaseCachedMaps() {
-		if (ValidationRegistryReader.getReader().projectValidationMetaData != null) {
-			ValidationRegistryReader.getReader().projectValidationMetaData.clear();
-			ValidationRegistryReader.getReader().projectValidationMetaData = null;
-		}
+		ValidationRegistryReader.getReader().clearCachedMaps();
 		IProjectValidationHelper helper = ValidationHelperRegistryReader.getInstance().getValidationHelper();
 		if (helper != null)
 			helper.disposeInstance();
@@ -942,7 +944,8 @@
 	 * @param logger
 	 * @param exc
 	 */
-	private void handleOperationCancelledValidateException(WorkbenchReporter reporter, IValidator validator, ValidatorMetaData vmd, Iterator iterator, OperationCanceledException exc) {
+	private void handleOperationCancelledValidateException(WorkbenchReporter reporter, IValidator validator, 
+		ValidatorMetaData vmd, Iterator<ValidatorMetaData> iterator, OperationCanceledException exc) {
 		/*
 		 * If the user terminates validation (i.e., presses "cancel" on the progress monitor) before
 		 * the validation completes, perform clean up on each configured enabled validator.
@@ -1108,15 +1111,22 @@
 	 * <code>process</code> also sends output to the <code>IProgressMonitor</code>, and calls
 	 * the current Validator to validate the resource.
 	 * 
-	 * To process a resource, there are several steps: 1. check if the resource is registered for
+	 * <p>To process a resource, there are several steps:</p> 
+	 * <p>1. check if the resource is registered for
 	 * this validator (i.e., the validator has either specified it in a filter, or has not filtered
-	 * it out explicitly) 2. call <code>isValidationSource</code> on the current validator with
+	 * it out explicitly)</p>
+	 * 
+	 * <p>2. call <code>isValidationSource</code> on the current validator with
 	 * the current resource. This method performs further filtering by the Validator itself, in
 	 * addition to the static filtering done by the framework, based on the information in
-	 * plugin.xml. 3. If the resource passes both filters, call <code>validate</code> on the
-	 * validator, with the resource. 4. When complete (either by failing to pass a filter, or by the
+	 * plugin.xml.</p> 
+	 * 
+	 * <p>3. If the resource passes both filters, call <code>validate</code> on the
+	 * validator, with the resource.</p> 
+	 * 
+	 * <p>4. When complete (either by failing to pass a filter, or by the
 	 * completion of the <code>validate</code>), increment the IProgressMonitor's status by one
-	 * (i.e., one resource has been processed.)
+	 * (i.e., one resource has been processed.)</p>
 	 */
 	private final void launchValidator(WorkbenchReporter reporter, IValidator validator, ValidatorMetaData vmd, IWorkbenchContext helper, IFileDelta[] delta) {
 		if (reporter == null)return;
@@ -1261,24 +1271,28 @@
 	 * (hProject.getName().indexOf("fork") > -1)) { Thread.dumpStack(); } System.err.println(prefix +
 	 * "End ValidationOperation"); }
 	 */
+	
+	/**
+	 * @deprecated This class is no longer used by the framework.
+	 */
 	public class ProjectRunnable implements Runnable {
-		private WorkbenchReporter _reporter = null;
-		private IValidator _validator = null;
-		private ValidatorMetaData _vmd = null;
-//		private IValidationContext _helper = null;
-		private IFileDelta[] __delta = null;
+		private WorkbenchReporter _reporter;
+		private IValidator _validator;
+		private ValidatorMetaData _vmd;
+		private IFileDelta[] _delta;
 
-		public ProjectRunnable(WorkbenchReporter reporter, IValidator validator, ValidatorMetaData vmd, IWorkbenchContext helper, IFileDelta[] delta, Iterator iterator) {
+		@SuppressWarnings("unchecked")
+		public ProjectRunnable(WorkbenchReporter reporter, IValidator validator, 
+			ValidatorMetaData vmd, IWorkbenchContext helper, IFileDelta[] delta, Iterator iterator) {
 			_reporter = reporter;
 			_validator = validator;
 			_vmd = vmd;
-//			_helper = helper;
-			__delta = delta;
+			_delta = delta;
 		}
 
 		public void run() {
 			try {
-				internalValidate(_reporter, _validator, _vmd, context,__delta);
+				internalValidate(_reporter, _validator, _vmd, context,_delta);
 			} catch (OperationCanceledException exc) {
 				// User can't cancel a job in a background thread, so ignore this exception.
 			}
@@ -1440,9 +1454,7 @@
 			}
 		);
 		validatorjob.setPriority(Job.DECORATE);
-
-		ValidationLauncherJob validationLauncherJob = new ValidationLauncherJob(validatorjob);
-		validationLauncherJob.schedule();
+		launcherJob.addValidationJob(validatorjob);
 	}
 		
 }
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java
index 63d4660..553538b 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -16,7 +16,6 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -52,12 +51,11 @@
 	private static IResourceUtil _resourceUtil; // a common utility, different whether or not
 	// WSAD is running in headless or UI mode, which can retrieve the line number of some MOF objects.
 	private static final Class RESOURCEUTIL_DEFAULTCLASS = org.eclipse.wst.validation.internal.operations.DefaultResourceUtil.class;
-	private static Class _resourceUtilClass = RESOURCEUTIL_DEFAULTCLASS;
-		
-	// an empty set, provided for convenience, so that we only construct one empty set once.
-	private static final Set<ValidatorMetaData> EMPTY_SET = new HashSet<ValidatorMetaData>();
-	
+	private static Class _resourceUtilClass = RESOURCEUTIL_DEFAULTCLASS;		
 	private static Class 	_messageLimitOwner;
+	
+	private static final Set<ValidatorMetaData> EmptySet = Collections.emptySet();
+		
 	private String[] 		_internalOwners;
 	private Map<IValidatorJob, List<MessageInfo>> _validatorMsgs = 
 		Collections.synchronizedMap( new HashMap<IValidatorJob, List<MessageInfo>>() );	
@@ -75,7 +73,7 @@
 	 */
 	public void disableAllValidators(IProject currentProject, IProgressMonitor monitor) {
 		// Disable the individual validators
-		setEnabledValidators(currentProject, EMPTY_SET, monitor);
+		setEnabledValidators(currentProject, EmptySet, monitor);
 	}
 
 	public void enableValidator(String validatorId) {
@@ -121,15 +119,10 @@
 		try {
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
 			prjp.setDoesProjectOverride(true);
-			ValidatorMetaData vmd = ValidationRegistryReader.getReader()
-					.getValidatorMetaData(validatorId);
+			ValidatorMetaData vmd = ValidationRegistryReader.getReader().getValidatorMetaData(validatorId);
 			
-			if(manualValidation){
-				prjp.disableSingleManualValidator(vmd);
-			} 
-			if (buildValidation){
-				prjp.disableSingleBuildValidator(vmd);
-			}
+			if(manualValidation)prjp.disableSingleManualValidator(vmd);
+			if (buildValidation)prjp.disableSingleBuildValidator(vmd);
 			prjp.store();
 			
 		} catch (InvocationTargetException e) {
@@ -145,6 +138,10 @@
 	 * builder to the project description so that the project can support build validation.
 	 */
 	public static void addProjectBuildValidationSupport(IProject project) {
+		/*
+		 * I'm working my way through the code to see where this gets called. One place was in ModuleCoreNature
+		 * which had hard coded the builder id.
+		 */
 		if (project == null)return;
 
 		boolean isBuilderAdded = false;
@@ -258,14 +255,14 @@
 	 * Return a collection of incremental ValidatorMetaData configured on a certain type of IProject
 	 * (e.g. EJB Project vs. Web Project).
 	 */
-	public Set getProjectConfiguredIncrementalValidators(IProject project) {
+	public Set<ValidatorMetaData> getProjectConfiguredIncrementalValidators(IProject project) {
 		try {
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
 			return InternalValidatorManager.wrapInSet(prjp.getIncrementalValidators());
 		} catch (InvocationTargetException e) {
 			ValidationPlugin.getPlugin().handleException(e);
 			ValidationPlugin.getPlugin().handleException(e.getTargetException());
-			return Collections.EMPTY_SET;
+			return EmptySet;
 		}
 	}
 
@@ -277,14 +274,14 @@
 	 * 
 	 * If the collection has not been calculated before, calculate it now, and cache the result.
 	 */
-	public Set getProjectConfiguredValidatorMetaData(IProject project) {
+	public Set<ValidatorMetaData> getProjectConfiguredValidatorMetaData(IProject project) {
 		try {
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
 			return InternalValidatorManager.wrapInSet(prjp.getValidators());
 		} catch (InvocationTargetException e) {
 			ValidationPlugin.getPlugin().handleException(e);
 			ValidationPlugin.getPlugin().handleException(e.getTargetException());
-			return Collections.EMPTY_SET;
+			return EmptySet;
 		}
 	}
 
@@ -297,14 +294,14 @@
 	 * true, return incremental validators. If the parameter is false, return nonincremental
 	 * validators.
 	 */
-	public Set getProjectEnabledIncrementalValidators(IProject project) {
+	public Set<ValidatorMetaData> getProjectEnabledIncrementalValidators(IProject project) {
 		try {
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
 			return InternalValidatorManager.wrapInSet(prjp.getEnabledIncrementalValidators(true));
 		} catch (InvocationTargetException e) {
 			ValidationPlugin.getPlugin().handleException(e);
 			ValidationPlugin.getPlugin().handleException(e.getTargetException());
-			return Collections.EMPTY_SET;
+			return EmptySet;
 		}
 	}
 
@@ -317,14 +314,14 @@
 	 * true, return incremental validators. If the parameter is false, return nonincremental
 	 * validators.
 	 */
-	public Collection getProjectEnabledNonIncrementalValidators(IProject project) {
+	public Collection<ValidatorMetaData> getProjectEnabledNonIncrementalValidators(IProject project) {
 		try {
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
 			return InternalValidatorManager.wrapInSet(prjp.getEnabledIncrementalValidators(false));
 		} catch (InvocationTargetException e) {
 			ValidationPlugin.getPlugin().handleException(e);
 			ValidationPlugin.getPlugin().handleException(e.getTargetException());
-			return Collections.EMPTY_SET;
+			return EmptySet;
 		}
 	}
 
@@ -335,7 +332,7 @@
 	 * and who are also enabled by this project. If the list of enabled validators hasn't been
 	 * loaded into the cache, load it now. Otherwise, just return it.
 	 */
-	public Set getProjectEnabledValidators(IProject project) {
+	public Set<ValidatorMetaData> getProjectEnabledValidators(IProject project) {
 		return getEnabledValidators(project);
 	}
 
@@ -401,16 +398,12 @@
 	/**
 	 * @deprecated For use by the validation framework only.
 	 */
-	public Set<ValidatorMetaData> getIncrementalValidators(Collection vmds) {
+	public Set<ValidatorMetaData> getIncrementalValidators(Collection<ValidatorMetaData> vmds) {
 		if (vmds == null)return new HashSet<ValidatorMetaData>();
 
 		Set<ValidatorMetaData> result = new HashSet<ValidatorMetaData>();
-		Iterator iterator = vmds.iterator();
-		while (iterator.hasNext()) {
-			ValidatorMetaData vmd = (ValidatorMetaData) iterator.next();
-			if (vmd.isIncremental()) {
-				result.add(vmd);
-			}
+		for (ValidatorMetaData vmd : vmds) {
+			if (vmd.isIncremental())result.add(vmd);
 		}
 		return result;
 	}
@@ -521,7 +514,7 @@
 	/**
 	 * @deprecated For use by the validation framework only.
 	 */
-	public Set getEnabledIncrementalValidators(IProject project) {
+	public Set<ValidatorMetaData> getEnabledIncrementalValidators(IProject project) {
 		try {
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
 			ValidatorMetaData[] vmds = prjp.getEnabledIncrementalValidators(true);
@@ -529,7 +522,7 @@
 		} catch (InvocationTargetException e) {
 			ValidationPlugin.getPlugin().handleException(e);
 			ValidationPlugin.getPlugin().handleException(e.getTargetException());
-			return Collections.EMPTY_SET;
+			return EmptySet;
 		}
 	}
 
@@ -574,7 +567,7 @@
 	/**
 	 * For use by the validation framework only.
 	 */
-	protected Set getEnabledValidators(IProject project) {
+	protected Set<ValidatorMetaData> getEnabledValidators(IProject project) {
 		try {
 			ValidatorMetaData[] vmds = null;
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
@@ -586,14 +579,14 @@
 		} catch (InvocationTargetException e) {
 			ValidationPlugin.getPlugin().handleException(e);
 			ValidationPlugin.getPlugin().handleException(e.getTargetException());
-			return Collections.EMPTY_SET;
+			return EmptySet;
 		}
 	}
 
 	private ValidatorMetaData[] getStateOfProjectLevelValidatorsFromGlobal(ProjectConfiguration prjp) throws InvocationTargetException {
 		List<ValidatorMetaData> enabledGlobalValidatorsForProject = new ArrayList<ValidatorMetaData>();
 		GlobalConfiguration gf = ConfigurationManager.getManager().getGlobalConfiguration();
-		List allProjectValidator = getAllValidatorUniqueNames(prjp.getValidators());
+		List<String> allProjectValidator = getAllValidatorUniqueNames(prjp.getValidators());
 		for(ValidatorMetaData vmd : gf.getBuildEnabledValidators()) {
 			if(allProjectValidator.contains(vmd.getValidatorUniqueName())) {
 				enabledGlobalValidatorsForProject.add(vmd);
@@ -612,7 +605,7 @@
 	
 	
 
-	protected Set getManualEnabledValidators(IProject project) {
+	protected Set<ValidatorMetaData> getManualEnabledValidators(IProject project) {
 		try {
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
 			ValidatorMetaData[] vmds = prjp.getManualEnabledValidators();
@@ -620,11 +613,11 @@
 		} catch (InvocationTargetException e) {
 			ValidationPlugin.getPlugin().handleException(e);
 			ValidationPlugin.getPlugin().handleException(e.getTargetException());
-			return Collections.EMPTY_SET;
+			return EmptySet;
 		}
 	}	
 	
-	protected Set getBuildEnabledValidators(IProject project) {
+	protected Set<ValidatorMetaData> getBuildEnabledValidators(IProject project) {
 		try {
 			ProjectConfiguration prjp = ConfigurationManager.getManager().getProjectConfiguration(project);
 			ValidatorMetaData[] vmds = prjp.getBuildEnabledValidators();
@@ -632,7 +625,7 @@
 		} catch (InvocationTargetException e) {
 			ValidationPlugin.getPlugin().handleException(e);
 			ValidationPlugin.getPlugin().handleException(e.getTargetException());
-			return Collections.EMPTY_SET;
+			return EmptySet;
 		}
 	}	
 	
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorSubsetOperation.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorSubsetOperation.java
index 27d3e15..274ddec 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorSubsetOperation.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorSubsetOperation.java
@@ -33,10 +33,8 @@
  * This operation is not intended to be subclassed outside of the validation framework.
  */
 public class ValidatorSubsetOperation extends ValidationOperation {
-	protected static final String DEFAULT_DEFAULTEXTENSION = null; // By default, assume that there
-
-	// is no default fallback
-	// extension
+	// By default, assume that there is no default fallback extension
+	protected static final String DEFAULT_DEFAULTEXTENSION = null; 
 
 	/**
 	 * Create an operation that runs a full validation on the named validators either if validation
@@ -149,40 +147,12 @@
 	public ValidatorSubsetOperation(IProject project, String fileExtension, String defaultExtension, Object[] changedResources, boolean async) throws IllegalArgumentException {
 		super(project, shouldForce(changedResources), async);
 
-		boolean filterIn = false; // force the resources to be filtered in even if the validator
-		// doesn't normally take them?
-		ValidatorMetaData[] vmds = InternalValidatorManager.getManager().getValidatorsForExtension(project, fileExtension); // return
-		// a
-		// list
-		// of
-		// validators
-		// which
-		// are
-		// configured
-		// to
-		// run
-		// on
-		// files
-		// with
-		// that
-		// extension.
-		// A
-		// validator
-		// will
-		// be
-		// in
-		// the
-		// list
-		// whether
-		// it
-		// has
-		// been
-		// enabled
-		// or
-		// disabled
-		// by
-		// the
-		// user.
+		// force the resources to be filtered in even if the validator doesn't normally take them?
+		boolean filterIn = false; 
+		
+		// a list of validators which are configured to run on files with that extension.
+		// A validator will be in the list whether it has been enabled or disabled by the user.
+		ValidatorMetaData[] vmds = InternalValidatorManager.getManager().getValidatorsForExtension(project, fileExtension);
 		if ((defaultExtension != null) && ((vmds == null) || (vmds.length == 0))) {
 			filterIn = true;
 			vmds = InternalValidatorManager.getManager().getValidatorsForExtension(project, defaultExtension);
@@ -194,23 +164,9 @@
 
 		setEnabledValidators(InternalValidatorManager.wrapInSet(vmds));
 
-		setFileDeltas(FilterUtil.getFileDeltas(getEnabledValidators(), changedResources, filterIn)); // construct
-		// an
-		// array
-		// of
-		// IFileDelta[]
-		// to
-		// wrap
-		// the
-		// Object[];
-		// one
-		// IFileDelta
-		// for
-		// each
-		// Object
-		// in
-		// the
-		// array
+		// construct an array of IFileDelta[] to wrap the Object[];
+		// one IFileDelta for each Object in the array
+		setFileDeltas(FilterUtil.getFileDeltas(getEnabledValidators(), changedResources, filterIn));
 	}
 
 	/**
@@ -302,7 +258,7 @@
 		for (String name : validatorNames) {
 			ValidatorMetaData vmd = ValidationRegistryReader.getReader().getValidatorMetaData(name);
 			if (vmd == null) {
-				// No validator, with that plugin id, can be run on that project.
+				// No validator, with that plug-in id, can be run on that project.
 				// Either the validator isn't installed, or the IProject passed in
 				// doesn't have the necessary nature.
 				throw new IllegalArgumentException(name);
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/plugin/ValidationPlugin.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/plugin/ValidationPlugin.java
index 9e051b9..4713fd2 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/plugin/ValidationPlugin.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/plugin/ValidationPlugin.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
+ * Copyright (c) 2001, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,28 +10,33 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal.plugin;
 
+import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResourceChangeEvent;
 import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ProjectScope;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.IScopeContext;
 import org.eclipse.wst.validation.ValidationFramework;
 import org.eclipse.wst.validation.internal.DependencyIndex;
 import org.eclipse.wst.validation.internal.EventManager;
 import org.eclipse.wst.validation.internal.ProjectUnavailableError;
 import org.eclipse.wst.validation.internal.ResourceUnavailableError;
 import org.eclipse.wst.validation.internal.Tracing;
-import org.eclipse.wst.validation.internal.ValOperationManager;
 import org.eclipse.wst.validation.internal.core.Message;
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 
 /**
- * The plug-in's activator class.
- *
+ * How does this plug-in get activated? There are many other plug-ins that depend on this plug-in, so there are
+ * many paths that will activate it. One common path is the J2EE perspective. If the J2EE plug-in start method, they
+ * reference a class in this plug-in, which activates the plug-in. For that case this plug-in will be active even before
+ * the workbench is up.
  */
 public class ValidationPlugin extends Plugin {
 	public static final String 	VALIDATION_PROP_FILE_NAME = "validate_base"; //$NON-NLS-1$
@@ -98,15 +103,16 @@
 		DependencyIndex di = (DependencyIndex)ValidationFramework.getDefault().getDependencyIndex();
 		IWorkspace ws = ResourcesPlugin.getWorkspace();
 		ws.addSaveParticipant(this, di);
-		ws.addResourceChangeListener(ValOperationManager.getDefault(), 
-			IResourceChangeEvent.POST_BUILD | IResourceChangeEvent.PRE_BUILD);
+//		ws.addResourceChangeListener(ValOperationManager.getDefault(), 
+//			IResourceChangeEvent.POST_BUILD | IResourceChangeEvent.PRE_BUILD);
 
 	}
 
 	public void stop(BundleContext context) throws Exception {
 		super.stop(context);
 		ResourcesPlugin.getWorkspace().removeResourceChangeListener( EventManager.getManager() );		
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener( ValOperationManager.getDefault() );		
+		ValidationFramework.getDefault().join(null);
+//		ResourcesPlugin.getWorkspace().removeResourceChangeListener( ValOperationManager.getDefault() );		
 		EventManager.getManager().shutdown();
 	}
 
@@ -119,6 +125,11 @@
 		return PLUGIN_ID;
 	}
 	
+	public static IEclipsePreferences getPreferences(IProject project){
+		IScopeContext projectContext = new ProjectScope(project);
+		return projectContext.getNode(PLUGIN_ID);
+	}
+	
 	/**
 	 * Write this exception to the log.
 	 * <p>
@@ -128,8 +139,21 @@
 	 * @param e the throwable, this can be null in which case it is a nop.
 	 */
 	public void handleException(Throwable e){
+		handleException(e, IStatus.ERROR);
+	}
+	
+	/**
+	 * Write this exception to the log.
+	 * <p>
+	 * We are in the transition of moving to a new approach for localized messages. This is the new 
+	 * approach for exceptions.
+	 * 
+	 * @param e the throwable, this can be null in which case it is a nop.
+	 * @param severity the severity of the message. This must be one of the IStatus severities. 
+	 */
+	public void handleException(Throwable e, int severity){
 		if (e == null)return;
-		Status status = new Status(IStatus.ERROR, PLUGIN_ID, e.getLocalizedMessage(), e);
+		Status status = new Status(severity, PLUGIN_ID, e.getLocalizedMessage(), e);
 		getLog().log(status);
 	}
 	
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/core/ValidatorLauncher.java b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/core/ValidatorLauncher.java
index f053410..40ca89c 100644
--- a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/core/ValidatorLauncher.java
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/core/ValidatorLauncher.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal.core;
 
-import java.util.Iterator;
 import java.util.List;
 
 import org.eclipse.core.runtime.CoreException;
@@ -83,13 +82,11 @@
 			//the  validators who have implemented IValidatorJob but are running synchronously
 			//would log messages now ...
 			ValidatorManager mgr = ValidatorManager.getManager();
-			final List list = mgr.getMessages((IValidatorJob)validator);
+			final List<MessageInfo> list = mgr.getMessages((IValidatorJob)validator);
 
-	    	Iterator it = list.iterator();
-			while( it.hasNext() ){
-				MessageInfo info = (MessageInfo)it.next();
+			for(MessageInfo info : list){
 				try {
-				TaskListUtility.addTask( info.getMessageOwnerId(), info.getResource(),
+					TaskListUtility.addTask( info.getMessageOwnerId(), info.getResource(),
 							info.getLocation(), info.getMsg().getId(), info.getText(),
 							info.getMsg().getSeverity(), info.getMarkerId(), 
 							info.getTargetObjectName(),
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IMessage.java b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IMessage.java
index cc2c0ef..5550942 100644
--- a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IMessage.java
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IMessage.java
@@ -22,9 +22,16 @@
  * Given these three values as input, this interface can be queried for the final message string.
  * (i.e., the message with the parameters already substituted in.) Either the default Locale can be
  * used, or the caller can specify a Locale.
- * 
- * @plannedfor 1.0
  * </p>
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ */
+public interface IMessage {
+	/*
  * 
  * [issue: CS - The 'IMessage' interface would be simpler without the bundle related details.  I'd like to understand
  * why we can 'precompute' the translated message. Is there some benefit to perform 'late computation' of these messages?
@@ -46,8 +53,7 @@
  *   - void setAttribute(String attributeName, Object value)
  *   - Object getAttribute(String attributeName);
  * ]
- */
-public interface IMessage {
+	 */
 	int OFFSET_UNSET = -1; // see getLength(), getOffset()
 	int LINENO_UNSET = 0;
 	
@@ -82,7 +88,6 @@
 	 * In order to associate the message with the proper IResource the validator can store
 	 * the IResource as an attribute and use this string as the key.
 	 * </p>
-	 *  
 	 */
 	String TargetResource = "TargetResource"; //$NON-NLS-1$
 
@@ -92,22 +97,20 @@
 	String getBundleName();
 
 	/**
-	 * <p>
 	 * To support removal of a subset of validation messages, an IValidator may assign group names
 	 * to IMessages. An IMessage subset will be identified by the name of its group. Default (null)
 	 * means no group.
-	 * </p>
+	 * 
 	 * @return the name of the group to which the message belongs.
 	 */
 	String getGroupName();
 
 	/**
-	 * <p>
 	 * Returns the id of the message. Message ids are used as the constants in property bundles
 	 * which localize the description of the message in a locale-independent fashion. The id is the
 	 * key, in the resource bundle, which identifies the string to be loaded. The id may not be null
 	 * or the empty string.
-	 * </p>
+	 * 
 	 * @return the id of the message
 	 */
 	String getId();
@@ -121,34 +124,28 @@
 	int getLength();
 
 	/**
-	 * <p>
 	 * If there is a target object associated with this IMessage, and that target object is a file,
 	 * then an optional line number may be set. The line number identifies the location of the
 	 * problem identified by this message. If no line number has been set, #LINENO_UNSET will be
 	 * returned.
-	 * </p>
-	 * @return line number of the location of the problem.
 	 * 
+	 * @return line number of the location of the problem.
 	 */
 	int getLineNumber();
 
 	/**
-	 * <p>
 	 * Returns the offset of the message. If unset, value = IMessage.OFFSET_UNSET. For example, if
 	 * the java compiler were a validator, and it reported that a variable name was unknown, offset
-	 * would identify the position of the first character of the unknown variable. (The position is
-	 * identified by the number of characters from the start of the file.)
-	 * </p>
+	 * would identify the position of the first character of the unknown variable. The position is
+	 * identified by the number of characters from the start of the file.
 	 * 
 	 * @return offset of the message
 	 */
 	int getOffset();
 
 	/**
-	 * <p>
 	 * Returns the parameters of the message. Message parameters are the values which are
-	 * substituted into parameter slots in localized message text ddscriptions.
-	 * </p>
+	 * substituted into parameter slots in localized message text descriptions.
 	 * 
 	 * @return parameters of the message
 	 */
@@ -168,11 +165,9 @@
 	int getSeverity();
 
 	/**
-	 * <p>
 	 * Return the object that this IMessage is reporting the problem against, if any. null will be
 	 * returned if this is a general message which does not apply to a particular object; for
 	 * example, "internal error".
-	 * </p>
 	 * 
 	 * @return the target object for the message
 	 */
@@ -215,8 +210,8 @@
 	
 	/**
 	 * Provides a way to store some additional attributes that a message would like to store
-	 * that can used by some other parties that are interested in those attribute values. Basically
-	 * a convienince to pass object values around that can consumed by other Objects it they need it
+	 * that can used by some other parties that are interested in those attribute values.
+	 * 
 	 * @param attributeName
 	 * @return an Object basically the value associated with the object name.
 	 */
@@ -224,8 +219,9 @@
 	 Object getAttribute(String attributeName);
 	
 	/**
-	 * Set the attributeName and value as key value pair
-	 * @see getAttribute(String attributeName).
+	 * Set the attributeName and value as key value pair.
+	 * 
+	 * @see #getAttribute(String attributeName)
 	 * @param attributeName
 	 */
 	
@@ -241,11 +237,9 @@
 	void setBundleName(String bundleName);
 
 	/**
-	 * <p>
 	 * To support removal of a subset of validation messages, an IValidator may assign group names
 	 * to IMessages. An IMessage subset will be identified by the name of its group. Default (null)
 	 * means no group.
-	 * </p>
 	 * 
 	 * @param name
 	 * 			Name of the group.
@@ -253,12 +247,10 @@
 	void setGroupName(String name);
 
 	/**
-	 * <p>
 	 * Set the id of the message. Message ids are used as the constants in property bundles which
 	 * localize the description of the message in a locale-independent fashion. The id is the key,
 	 * in the resource bundle, which identifies the string to be loaded. The id may not be null or
 	 * the empty string.
-	 * </p>
 	 * 
 	 * @param newId
 	 *            Id of the message.
@@ -266,55 +258,51 @@
 	void setId(String newId);
 
 	/**
-	 * <p>
 	 * Sets the length of the problem, starting from the offset. If unset, value =
 	 * IMessage.OFFSET_UNSET.
 	 * 
 	 * @see #setOffset(int)
-	 * </p>
 	 * 
 	 * @param length 
-	 *			sets the length 		
+	 *			Sets the length. 		
 	 */
 	void setLength(int length);
 
 	/**
-	 * <p>
 	 * If there is a target object associated with this IMessage, and that target object is a file,
 	 * then an optional line number may be set. The line number identifies the location of the
 	 * problem identified by this message. To indicate no line number, use #LINENO_UNSET.
-	 * </p>
+	 * 
 	 * @param lineNumber 
-	 *			sets the line no. 	
+	 *			Sets the line number.
 	 */
 	void setLineNo(int lineNumber);
 
 	/**
-	 * <p>
 	 * Sets the offset of the message. If unset, value = IMessage.OFFSET_UNSET. For example, if the
 	 * java compiler were a validator, and it reported that a variable name was unknown, offset
-	 * would identify the position of the first character of the unknown variable. (The position is
-	 * identified by the number of characters from the start of the file.)
-	 * </p>
+	 * would identify the position of the first character of the unknown variable. The position is
+	 * identified by the number of characters from the start of the file.
+	 * 
 	 * @param offset 
-	 *			sets the offset of the message.
+	 *			Sets the offset of the message.
 	 */
 	void setOffset(int offset);
 
 	/**
-	 * <p>
 	 * Sets the parameters of the message. Message parameters are the values which are substituted
 	 * into parameter slots in localized message text descriptions.
-	 * </p>
 	 * <p>
 	 * For example, if getId() returns "MY_ID", then the ResourceBundle identified by
 	 * getBundleName() is searched for the message named "MY_ID", and if found,
+	 * has it's parameters set.
 	 * </p>
 	 * 
 	 * @see java.text.MessageFormat#format(String, Object[]) is invoked on the message, with
 	 *      <code>newParams</code> passed in as the Object[].
+	 *      
 	 * @param newParams
-	 *            parameters of the message.
+	 *            Parameters of the message.
 	 */
 	void setParams(String[] newParams);
 
@@ -326,17 +314,15 @@
 	 * @see IMessage#LOW_SEVERITY
 	 * 
 	 * @param newSeverity
-	 *            severity level of the message
+	 *            Severity level of the message.
 	 */
 	void setSeverity(int newSeverity);
 
 	/**
-	 * <p>
 	 * Associate this IMessage with the object that has the problem. A null value is permitted. If a
 	 * message is applicable to one object, then this value should be set. Otherwise, the default
 	 * value (null) should be kept. Given this target object, it should be possible to calculate the
 	 * exact location of the problem.
-	 * </p>
 	 * 
 	 * @param obj
 	 *         The object that has the problem.
@@ -344,18 +330,17 @@
 	void setTargetObject(Object obj);
 	
 	/**
-	 * return all the attributes of a Message object
-	 * @return
+	 * Return all the attributes of a Message object.
 	 */
 	HashMap getAttributes();
 	
 	/**
-	 * return the marker id if one is set on this object when created
+	 * Return the marker id if one is set on this object when created.
 	 */
 	String getMarkerId();
 	
 	/**
-	 * set the marker id on a Message object
+	 * Set the marker id on a Message object.
 	 */
 	 void setMarkerId(String markerId);
 }
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.java b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.java
index 37a9cfe..1ffef39 100644
--- a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.java
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IMetaModelContext.java
@@ -10,6 +10,14 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal.provisional.core;
 
+/**
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ */
 public interface IMetaModelContext extends IValidationContext {
 	
 	public Object getModel(String URI);
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.java b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.java
index 95533db..4210353 100644
--- a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.java
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IProjectValidationContext.java
@@ -17,11 +17,10 @@
  * IProjectValidationContext extends IValidationContext to provide access to a
  * reference to the project on which a validator is being invoked.
  * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this
- * API will almost certainly be broken (repeatedly) as the API evolves.
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
  * </p>
  */
 public interface IProjectValidationContext extends IValidationContext
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IReporter.java b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IReporter.java
index f4f26fa..3005139 100644
--- a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IReporter.java
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IReporter.java
@@ -22,17 +22,24 @@
  * The interface used by IValidator's to report messages. The implementation of the IReporter could
  * simply log the messages to stdout, a file, or retain them in a buffer for later access by a user
  * interface.
- * 
- * Reporter implementations should keep non-localized versions of their messages
- * 
+ * <p>
+ * Reporter implementations should keep non-localized versions of their messages.
+ * </p>
+ * <p>
  * Any messages which need to be displayed to the user are done through this class, and if the user
  * cancels the current function, this class is the one which registers the cancellation.
- * 
+ * </p>
+ * <p>
  * The IReporter instance is created at the time validation begins and ends when validation is complete.
  * There is only one IReporter instance created for all validators that are run on a IResource. The IResource
  * provides a way to get messages put out each validator and add and delete messages for one validator
  * at a time. 
- * ] 
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
  */
 public interface IReporter {
 	/**
@@ -52,27 +59,24 @@
 	 * @param origin
 	 *            The validator which is the source of the message.
 	 * @param message
-	 *            A message to be reported
+	 *            A message to be reported.
 	 */
 	void addMessage(IValidator origin, IMessage message);
 
 	/**
+	 * Show a text representation of this message, formatted in the default
+	 * Locale, to the user immediately. This message indicates which subtask is
+	 * currently being processed. The message is not stored. The subtask message
+	 * in this context is the subtask in a IProgressMontior
 	 * <p>
-	 * Show a text representation of this message, formatted in the default Locale, to the user
-	 * immediately. This message indicates which subtask is currently being processed. The message
-	 * is not stored. The subtask message in this context is the subtask in a IProgressMontior 
-	 * 
-	 * @see IProgressMonitor#subTask(String)
-	 * </p>
-	 * <p>
-	 * Both parameters must not be null. 
+	 * Both parameters must not be null.
 	 * </p>
 	 * 
-	 * @param IValidator
-	 *            validator The validator issuing the subtask message.
-	 * @param IValidatorMessage
-	 *            message The message to be displayed to the user.
-	 *                       
+	 * @param validator
+	 * 		The validator issuing the subtask message.
+	 * @param message
+	 * 		The message to be displayed to the user.
+	 * 
 	 */
 	void displaySubtask(IValidator validator, IMessage message);
 
@@ -84,72 +88,75 @@
 	List getMessages();
 
 	/**
-	 * <p>
 	 * Return true if the user canceled validation, and false otherwise. This method should be
 	 * called by IValidators periodically, because no event is fired to notify IValidators that the
 	 * user canceled validation. If a validator does not check this method, a cancellation request
 	 * is ignored.
-	 * </p>
 	 * 
-	 * @return true if the user cancelled validation, and false otherwise.
+	 * @return true if the user canceled validation, and false otherwise.
 	 *  
 	 */
 	boolean isCancelled();
 
 	/**
-	 * <p>
 	 * Remove all validation messages entered by the identified validator. This method is provided
 	 * for incremental validation. 
-	 * </p>
 	 * <p>
 	 * The IValidator parameter must not be null.
 	 * </p>
 	 * @param origin
-	 * 			originator validator of the message.  
+	 * 			Originator validator of the message.  
 	 */
 	void removeAllMessages(IValidator origin);
 
 	/**
-	 * Remove all validation messages, entered by the identified validator, pertaining to the Object
-	 * provided. This method is provided for incremental validation. <br>
+	 * Remove all validation messages, entered by the identified validator,
+	 * pertaining to the Object provided. This method is provided for
+	 * incremental validation. <br>
 	 * <br>
-	 * If <code>object</code> is null, then this method should remove all messages owned by the
-	 * validator. (i.e., the same behaviour as the removeAllMessages(IValidator) method.) <br>
+	 * If <code>object</code> is null, then this method should remove all
+	 * messages owned by the validator. (i.e., the same behaviour as the
+	 * removeAllMessages(IValidator) method.) <br>
 	 * <br>
 	 * <p>
 	 * The IValidator parameter must not be null.
 	 * </p>
-	 * @param origin
-	 * 			originator validator of the message.
-	 * @param object
-	 * 			Object to which the message belongs. Object is the target object that was set on the IMessage
-	 * when adding the message as problem marker.
 	 * 
- 	 */
+	 * @param origin
+	 * 		Originator validator of the message.
+	 * @param object
+	 * 		Object to which the message belongs. Object is the target object
+	 * 		that was set on the IMessage when adding the message as problem
+	 * 		marker.
+	 * 
+	 */
 	void removeAllMessages(IValidator origin, Object object);
 
 	/**
-	 * To support removal of a subset of validation messages, an IValidator may assign group names
-	 * to IMessages. An IMessage subset will be identified by the name of its group. This method
-	 * will remove only the IMessage's that are in the group identified by groupName. <br>
-	 * <br>
-	 * <br>
+	 * To support removal of a subset of validation messages, an IValidator may
+	 * assign group names to IMessages. An IMessage subset will be identified by
+	 * the name of its group. This method will remove only the IMessage's that
+	 * are in the group identified by groupName. 
+	 * <p>
+	 * The IValidator parameter must not be null.
+	 * </p>
+	 * <p>
+	 * If <code>object</code> is null, then this method should remove all
+	 * messages owned by the validator. (i.e., the same behaviour as the
+	 * removeAllMessages(IValidator) method.)
+	 * </p>
+	 * <p>
+	 * If groupName is null, that's the same as no group (i.e., the same
+	 * behaviour as the <code>removeAllMessages(IValidator, Object)</code>
+	 * method.)
+	 * </p>
 	 * 
-	 * The IValidator parameter must not be null. <br>
-	 * <br>
-	 * 
-	 * If <code>object</code> is null, then this method should remove all messages owned by the
-	 * validator. (i.e., the same behaviour as the removeAllMessages(IValidator) method.)
-	 * 
-	 * If groupName is null, that's the same as no group (i.e., the same behaviour as the
-	 * <code>removeAllMessages(IValidator, Object)</code> method.) <br>
-	 * 
-	 * @param origin
-	 * 			originator validator of the message.
-	 * @param object
-	 * 			Object to which the message belongs. 
+	 * @param validator
+	 * 		Originator validator of the message.
+	 * @param obj
+	 * 		Object to which the message belongs.
 	 * @param groupName
-	 * 			name of the group to which the message belongs. 
+	 * 		Name of the group to which the message belongs.
 	 */
 	void removeMessageSubset(IValidator validator, Object obj, String groupName);
 }
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidationContext.java b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidationContext.java
index 8a3a2e9..54a8ce5 100644
--- a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidationContext.java
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidationContext.java
@@ -10,18 +10,14 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal.provisional.core;
 
-
-
 /**
- * <p>
  * This class is used to to separate the IValidator from the model loading. A model 
  * is a group of object(s) that must follow some rules.
- * </p>
  * <p>
  * The model is loaded differently depending on whether the validator is running in 
- * UI or headless context. If the <code>loadModel</code> method was a method on the IValidator, 
- * then there would need to be two versions of validators, one for headless and one for 
- * UI. Because <code>loadModel</code> is separate from the IValidator, we provide 
+ * as-you-type or builder based context. If the <code>loadModel</code> method was a method on the IValidator, 
+ * then there would need to be two versions of validators, one for as-you-type and one for 
+ * builder based. Because <code>loadModel</code> is separate from the IValidator, we provide 
  * two different IHelpers instead, and ship the one specific to the environment.
  * </p>
  * <p>
@@ -32,30 +28,43 @@
  * <code>loadModel</code> method. An IValidationContext can support more than one IValidator; 
  * the helper needs to support every model that each validator needs.
  * </p>
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
  */
 public interface IValidationContext {
 	/**
 	 * <p>
-	 * Load the model identified by <code>symbolicName</code>.<code>symbolicName</code> 
+	 * Load the model identified by <code>symbolicName</code>. <code>symbolicName</code> 
 	 * must not be null or the empty string if the validator needs to be run in both 
-	 * Headless and UI.
-	 * 
+	 * as-you-type and builder based validation.
+	 * </p>
+	 * <p>
 	 * The symbolicName is a string name that is registered in the implementation of the
 	 * IValidatorContext. For an example our internal implementation of the loadModel use
 	 * method names for symbolicNames to load the model object to be validated. Users can
 	 * use their own model load mechanism.
-	 * @see <code>WorkbenchContext</code>
-	 * 
 	 * </p>
-	 * @plannedfor 1.0
+	 * 
+	 * @see <code>WorkbenchContext</code>
 	 */
 	Object loadModel(String symbolicName);
 
+	/*
+	 * 
+	 * [issue : CS - It's not at all clear how these parameters would get passed into a helper.  I'd suggest
+	 * providing getProperty() and setProperty() methods on the class to allow contextual information to be 
+	 * supplied and queried in a generic manner.]
+	 */
 	/**
 	 * <p>
 	 * Load the model identified by <code>symbolicName</code> and <code>parms</code>.
 	 * <code>symbolicName</code> must not be null or the empty string if the validator 
-	 * needs to be run in both Headless and UI. If <code>parms</code> is null then this
+	 * needs to be run in both as-you-type and builder based validation. 
+	 * If <code>parms</code> is null then this
 	 * method behaves the same as
 	 * 
 	 * @link #loadModel(String).
@@ -65,18 +74,15 @@
 	 * 		 are available only at runtime. If you need to pass a live object to the IValidationContext, 
 	 * 		 this is the loadModel method to use.
 	 * </p>
-	 * @param symbolicName String identifier for model
-	 * @param parms 	   parms list of parameters that the model takes for invocation
 	 * 
-	 * [issue : CS - It's not at all clear how these parameters would get passed into a helper.  I'd suggest
-	 * providing getProperty() and setProperty() methods on the class to allow contextual information to be 
-	 * supplied and queried in a generic manner.]
+	 * @param symbolicName String identifier for model.
+	 * @param parms 	   List of parameters that the model takes for invocation.
 	 */
 	Object loadModel(String symbolicName, Object[] parms);
 	
 	/**
 	 * @return a string array with the list of URI's that need to be validated in the
-	 * case of Incremental build
+	 * case of Incremental build.
 	 */
 	
 	String[] getURIs();
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidator.java b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidator.java
index 20e9c8e..6fbd55e 100644
--- a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidator.java
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidator.java
@@ -15,51 +15,60 @@
 /**
  * This is the base interface for all Validators. A Validator is a class which verifies that objects
  * follow some rules. For example, in a MOF model which represents an EJB jar, the EJB specification
- * determines the rules. <br>
- * <br>
+ * determines the rules. 
+ * <p>
  * A validator can perform full validation or incremental validation. All validators must implement
- * full validation but incremental validation is optional. <br>
- * <br>
- * Each validator must not be tied to any particular workbench implementation. <br>
- * <br>
+ * full validation but incremental validation is optional.
+ * </p>
+ * <p>
+ * Each validator must not be tied to any particular workbench implementation.
+ * </p>
+ * <p>
  * A validator's verification starts when the ValidatorLauncher singleton calls
  * <code>validate</code>.
- * 
- * [issue: LM - This interface will be implemented by clients. This should be considered a candidate for
- *  an abstract class. ]   
+ * </p>
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
  */
 public interface IValidator{
-	/**
-	 * <p>
-	 * Perform any resource cleanup once validation is complete. If cleanup will take some time, the
-	 * IValidator should report subtask information to the user through the IReporter parameter. The
-	 * IReporter parameter will not be null.
-	 * </p>
-	 * @param reporter used for the interaction with the user
-	 * @plannedfor WTP 1.0
-	 * 
+	
+	/*
 	 * [issue : CS - Perhaps the IValidator should be required to provide a 'name' that can be used describe 
 	 * the running validation 'Job'.  Then the framework could automatically say something like 'XYZ validator : cleanup'.
 	 * Relying on the IValidator to provide subtask information seems error prone.]
 	 * [issue: LM - Is the cleanup method necessary? Can the framework put a requirement that client validators 'clean up'
 	 *  before returning from the validate method? ] 
 	 */
+	
+	/**
+	 * Perform any resource cleanup once validation is complete. If cleanup will take some time, the
+	 * IValidator should report subtask information to the user through the IReporter parameter. The
+	 * IReporter parameter will not be null.
+	 * 
+	 * @param reporter Used for the interaction with the user.
+	 */
 	void cleanup(IReporter reporter);
 
-	/**
-	 * This is the method which performs the validation on the objects. <br>
-	 * <br>
-	 * <code>helper</code> and <code>reporter</code> may not be null. <code>changedFiles</code>
-	 * may be null, if a full build is desired. <br>
-	 * <br>
-	 * @param helper 
-	 * 			loads an object. 
-	 * @param reporter
-	 * 			Is an instance of an IReporter interface, which is used for interaction with the user.
-	 * 
+	/*
 	 * [issue : CS - I'm curious to understand why the validator is not invoked directly on a file.  It seems it should be the
 	 * domain of another API to manage manage incremental file changes and triggering validations accordingly. 
 	 * Do we have a current use case in WTP where the validator does anything more validate a file from the changedFiles list?]
 	 */
+	/**
+	 * This is the method which performs the validation on the objects.
+	 * <p>
+	 * <code>helper</code> and <code>reporter</code> may not be null. <code>changedFiles</code>
+	 * may be null, if a full build is desired. <br>
+	 * </p>
+	 * @param helper 
+	 * 			Loads an object. 
+	 * @param reporter
+	 * 			Is an instance of an IReporter interface, which is used for interaction with the user.
+	 * 
+	 */
 	void validate(IValidationContext helper, IReporter reporter) throws ValidationException;
 }
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidatorExtender.java b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidatorExtender.java
new file mode 100644
index 0000000..581a6b0
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidatorExtender.java
@@ -0,0 +1,11 @@
+package org.eclipse.wst.validation.internal.provisional.core;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.wst.validation.ValidationState;
+
+public interface IValidatorExtender {
+
+	void validationFinishing(IProject project, ValidationState state, IProgressMonitor monitor);
+
+}
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.java b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.java
index c7d8a52..a25e7bb 100644
--- a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.java
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/IValidatorJob.java
@@ -18,11 +18,12 @@
 /**
  * This is the Job interface for the validator. Validators implementing this interface are executed as
  * background jobs. 
- * Following is a  sequence of  call  <br/>
- * validator.getSchedulingRule(helper) <br/>
- * validator.validate(reporter)
+ * Following is a sequence of  calls:
+ * <ul>
+ * <li>validator.getSchedulingRule(helper)
+ * <li>validator.validate(reporter)
+ * </ul>
  */
-
 public interface IValidatorJob extends IValidator{
 
 	IStatus OK_STATUS = new Status(IStatus.OK, "org.eclipse.wst.validation", 0, "OK", null); //$NON-NLS-1$ //$NON-NLS-2$
@@ -30,25 +31,23 @@
 
 
 	/**
-	 * This is the method which performs the validation on the objects. <br>
-	 * <br>
+	 * This is the method which performs the validation on the objects.
+	 * <p>
 	 * <code>reporter</code> may not be null. <code>changedFiles</code>
 	 * may be null, if a full build is desired. <br>
-	 * <br>
+	 * </p>
      *
 	 * @param reporter
 	 *            Is an instance of an IReporter interface, which is used for interaction with the
 	 *            user.
-	 * @param helper will not be null,
-	 *		loads an object.
+	 * @param helper Will not be null, loads an object.
 	 */
 	IStatus validateInJob(IValidationContext helper, IReporter reporter) throws ValidationException;
 
 	/**
-	 * Get the scheduling rule, which the framework applies to the Validator job, 
-	 * @param helper will not be null,
-	 *		loads an object.
-	 * @return
+	 * Get the scheduling rule, which the framework applies to the Validator job.
+	 * 
+	 * @param helper Will not be null, loads an object.
 	 */
 	ISchedulingRule getSchedulingRule(IValidationContext helper);
 }
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.java b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.java
index 2362dd8..3a86bf4 100644
--- a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.java
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/MessageLimitException.java
@@ -10,17 +10,18 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal.provisional.core;
 
-
-/**
- * This exception is thrown by
- * 
- * @see IReporter#addMessage(IValidator, IMessage) method if no more messages can be reported
- *      because the maximum number of messages has been reported.
+/*
  * [issue: LM - Going along with my comment on the addMessage method in IReporter I 
  *  think this class should be internal to the validation framework.
  *  I don't think there's a need for this class to be exposed to clients. If too many
  *  messages are added the framework should handle this without notifying the client
  *  validator. ]
+ */
+/**
+ * This exception is thrown by
+ * 
+ * @see IReporter#addMessage(IValidator, IMessage) method if no more messages can be reported
+ *      because the maximum number of messages has been reported.
  *  @deprecated This class is not longer used by the framework. The framework is
  *  not going to limit the number of messages displayed by a validator.
  */
diff --git a/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/package.html b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/package.html
new file mode 100644
index 0000000..70bdb29
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/validate_core/org/eclipse/wst/validation/internal/provisional/core/package.html
@@ -0,0 +1,9 @@
+<html>
+<head>
+<title>Validation Framework (Version 1)</title>
+</head>
+<body>
+<p>An earlier framework for calling validators that are build based.</p>
+<p>This framework is being replaced by the <code>newer org.eclipse.wst.validation</code> framework.</p>
+</body>
+</html>
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/AbstractValidator.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/AbstractValidator.java
index 601f805..83c1d55 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/AbstractValidator.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/AbstractValidator.java
@@ -17,6 +17,12 @@
 
 /**
  * The class that all Validators that wish to use version two of the validation framework must subclass.
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
  * @author karasiuk
  *
  */
@@ -25,76 +31,158 @@
 	private V2 _parent;
 	
 	/**
-	 * Validate the resource. The validator is called from a WorkspaceJob, so the validator itself does not need
-	 * to establish it's own IWorkspaceRunnable.
+	 * Validate the resource. The validator is called from a WorkspaceJob, so
+	 * the validator itself does not need to establish it's own IWorkspaceRunnable.
+	 * <p>
+	 * If you override this method then you should not override the other validate method.
+	 * </p>
 	 * 
-	 * @param resource the resource to be validated.
+	 * @param resource
+	 * 		The resource to be validated.
 	 * 
-	 * @param kind the way the resource changed. It uses the same values as the kind parameter
-	 * in IResourceDelta.
+	 * @param kind
+	 * 		The way the resource changed. It uses the same values as the kind
+	 * 		parameter in IResourceDelta.
 	 * 
-	 * @param state a way to pass arbitrary, validator specific, data from one invocation of a validator to
-	 * the next, during the validation phase. At the end of the validation phase, this object will be cleared,
-	 * thereby allowing any of this state information to be garbaged collected.
+	 * @param state
+	 * 		A way to pass arbitrary, validator specific, data from one
+	 * 		invocation of a validator to the next, during the validation phase.
+	 * 		At the end of the validation phase, this object will be cleared,
+	 * 		thereby allowing any of this state information to be garbaged
+	 * 		collected.
 	 * 
-	 * @param monitor a monitor that you can use to report your progress. To be a well behaved validator you need
-	 * to check the isCancelled() method at the appropriate times.
+	 * @param monitor
+	 * 		A monitor that you can use to report your progress. To be a well
+	 * 		behaved validator you need to check the isCancelled() method at
+	 * 		appropriate times.
 	 * 
-	 * @return the result of the validation. This may be, but usually isn't, null. 
+	 * @return the result of the validation. This may be, but usually isn't, null.
 	 */
-	public abstract ValidationResult validate(IResource resource, int kind, ValidationState state, IProgressMonitor monitor);
+	public ValidationResult validate(IResource resource, int kind, ValidationState state, IProgressMonitor monitor){
+		return null;
+	}
 	
 	/**
-	 * The project is being cleaned, this method gives the validator a chance to do any special cleanup.
-	 * The default is to do nothing.
+	 * Validate the resource. The validator is called from a WorkspaceJob, so
+	 * the validator itself does not need to establish it's own
+	 * IWorkspaceRunnable.
 	 * <p>
-	 * If the entire workspace is being cleaned, then the first call will have a null project, and then there will be
-	 * subsequent calls for each open project in the workspace.
+	 * If you override this method then you should not override the other
+	 * validate method.
+	 * </p>
 	 * 
-	 * @param project the project being cleaned. This may be null, which is an indication that the workspace
-	 * is being cleaned. 
+	 * @param event
+	 *            An object that describes the resource to be validated and why
+	 *            it should be validated.
 	 * 
-	 * @param state a way to pass arbitrary, validator specific, data from one invocation of a validator to
-	 * the next, during the validation phase.
+	 * @param state
+	 *            A way to pass arbitrary, validator specific, data from one
+	 *            invocation of a validator to the next, during the validation
+	 *            phase. At the end of the validation phase, this object will be
+	 *            cleared, thereby allowing any of this state information to be
+	 *            garbaged collected.
 	 * 
-	 * @param monitor the monitor that should be used for reporting progress if the clean takes a long time.
+	 * @param monitor
+	 *            A monitor that you can use to report your progress. To be a
+	 *            well behaved validator you need to check the isCancelled()
+	 *            method at appropriate times.
+	 * 
+	 * @return the result of the validation. Null should never be returned. If
+	 *         null is returned then the other validate method will be called as
+	 *         well.
+	 */
+	public ValidationResult validate(ValidationEvent event, ValidationState state, IProgressMonitor monitor){
+		return null;
+	}
+	
+	
+	/**
+	 * A call back method that lets the validator know that the project is being
+	 * cleaned. This method gives the validator a chance to do any special
+	 * cleanup. The default is to do nothing.
+	 * <p>
+	 * If the entire workspace is being cleaned, then the first call will have a
+	 * null project, and then there will be subsequent calls for each open
+	 * project in the workspace.</p>
+	 * 
+	 * @param project
+	 * 		The project being cleaned. This may be null, which is an indication
+	 * 		that the workspace is being cleaned.
+	 * 
+	 * @param state
+	 * 		A way to pass arbitrary, validator specific, data from one
+	 * 		invocation of a validator to the next, during the validation phase.
+	 * 
+	 * @param monitor
+	 * 		The monitor that should be used for reporting progress if the clean
+	 * 		takes a long time.
 	 */
 	public void clean(IProject project, ValidationState state, IProgressMonitor monitor){		
 	}
 		
 	/**
-	 * This method will be called before any validation takes place. It allows validators to perform any
-	 * initialization that they might need. 
-	 *  
-	 * @param project the project that is being validated. For the very first call in the validation phase,
-	 * this will be null. That is the signal to the validator that a top level validation is starting.
-	 * Subsequently, the project will be set, as each of the individual projects are validated.
+	 * This method is called before any validation takes place. It allows
+	 * validators to perform any initialization that they might need.
 	 * 
-	 * @param state a way to pass arbitrary, validator specific, data from one invocation of a validator to
-	 * the next, during the validation phase.
+	 * @param project
+	 * 		The project that is being validated. For the very first call in the
+	 * 		validation phase, this will be null. A null project is the signal
+	 * 		that a top level validation is starting. Subsequently, the project
+	 * 		will be set, as each of the individual projects are validated.
 	 * 
-	 * @param monitor the monitor that should be used for reporting progress if the clean takes a long time.
+	 * @param state
+	 * 		A way to pass arbitrary, validator specific, data from one
+	 * 		invocation of a validator to the next, during the validation phase.
+	 * 
+	 * @param monitor
+	 * 		The monitor that should be used for reporting progress if the initialization
+	 * 		takes a long time.
 	 */
 	public void validationStarting(IProject project, ValidationState state, IProgressMonitor monitor){		
 	}
 	
 	/**
-	 * This method will be called when validation is complete. It allows validators to perform any
-	 * cleanup that they might need to do.  
-	 *  
-	 * @param project the project that was validated. The very last call in the validation will set this to 
-	 * null so that the validator knows that all the projects have now been validated.
+	 * This method will be called when validation is complete. It allows
+	 * validators to perform any cleanup that they might need to do.
 	 * 
-	 * @param state a way to pass arbitrary, validator specific, data from one invocation of a validator to
-	 * the next, during the validation phase.
+	 * @param project
+	 * 		The project that was validated. The very last call in the validation
+	 * 		sets this to null so that the validator knows that all the
+	 * 		projects have now been validated.
 	 * 
-	 * @param monitor the monitor that should be used for reporting progress if the clean takes a long time.
+	 * @param state
+	 * 		A way to pass arbitrary, validator specific, data from one
+	 * 		invocation of a validator to the next, during the validation phase.
+	 * 
+	 * @param monitor
+	 * 		The monitor that should be used for reporting progress if the cleanup
+	 * 		takes a long time.
 	 */
 	public void validationFinishing(IProject project, ValidationState state, IProgressMonitor monitor){		
 	}
+	
+	/**
+	 * Should the validation framework first clear the markers that this
+	 * validator has placed on this resource? This method can be overridden by
+	 * validator implementors to provide a validator specific behavior.
+	 * 
+	 * @param event
+	 *            The validation event that triggered the validation.
+	 * @return true if the validation framework should first clear all the
+	 *         markers that this validator produced. This is the default
+	 *         behavior. Return false to leave the markers unchanged. It then
+	 *         becomes the responsibility of the validator to manage it's own
+	 *         markers for this resource, for this validation event.
+	 */
+	public boolean shouldClearMarkers(ValidationEvent event){
+		return true;
+	}
 		
 	/**
-	 * Answer the validator that you belong to. The validator controls controls the filters and various other settings. 
+	 * Answer the validator that you belong to. The validator controls the
+	 * filters and various other settings.
+	 * 
+	 * @nooverride
 	 */
 	public V2 getParent(){
 		return _parent;
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/DependentResource.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/DependentResource.java
index 704f8a5..3f1c67d 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/DependentResource.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/DependentResource.java
@@ -16,6 +16,14 @@
  * A resource that is dependent on another resource.
  * <p>
  * This is returned by the IDependencyIndex.
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ * @noextend
+ * @see IDependencyIndex
  * @author karasiuk
  *
  */
@@ -23,14 +31,24 @@
 	private IResource 	_resource;
 	private Validator	_validator;
 	
+	/**
+	 * @noreference
+	 */
 	public DependentResource(IResource resource, Validator validator){
 		_resource = resource;
 		_validator = validator;
 	}
 	
+	/**
+	 * Answer the resource that is depended on.
+	 */
 	public IResource getResource() {
 		return _resource;
 	}
+	
+	/**
+	 * Answer the validator that asserted the dependency.
+	 */
 	public Validator getValidator() {
 		return _validator;
 	}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Friend.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Friend.java
index ada72d3..4146636 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Friend.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Friend.java
@@ -12,9 +12,16 @@
 
 import java.util.Map;
 
+import org.eclipse.core.resources.IResource;
+import org.eclipse.wst.validation.internal.ContentTypeWrapper;
+import org.eclipse.wst.validation.internal.ValType;
+
 /**
  * This class is only to be called by the validation framework and it's test cases.
  * This class is NOT part of the API.
+ * <p>
+ * This class provides access to some internal methods.
+ * </p>
  * @author karasiuk
  *
  */
@@ -31,5 +38,20 @@
 	public static boolean isLoaded(Validator validator){
 		return validator.isLoaded();
 	}
+	
+	public static boolean shouldValidate(Validator validator, IResource resource, boolean isManual, boolean isBuild, 
+			ContentTypeWrapper contentTypeWrapper){
+		return validator.shouldValidate(resource, isManual, isBuild, contentTypeWrapper);
+	}
+	
+	public static boolean shouldValidate(Validator validator, IResource resource, ValType valType, 
+		ContentTypeWrapper contentTypeWrapper){
+		
+		return validator.shouldValidate(resource, valType, contentTypeWrapper);		
+	}
+	
+	public static void setMigrated(Validator validator, boolean migrated){
+		validator.setMigrated(migrated);
+	}
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IDependencyIndex.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IDependencyIndex.java
index 19ea2a6..d9d494b 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IDependencyIndex.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IDependencyIndex.java
@@ -20,7 +20,14 @@
  * <p>
  * This is an optional service, validators do not need to use this Interface and can simply supply
  * their dependency information through the ValidationResult return result.
- * 
+ * </p>
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ * @noimplement
  * @see ValidationResult
  * @author karasiuk
  *
@@ -30,61 +37,75 @@
 	/**
 	 * Assert that one resource depends on another resource as part of it's validity.
 	 * <p>
-	 * For example, if an XML file is dependent on an XSD file to be valid, the resource that holds
-	 * the XML file would be the dependent, and the resource that holds the XSD would be the dependsOn.
-	 *  
-	 * @param id the validator id that is asserting that the dependency exists.
-	 * @param dependent the resource that is dependent on the other resource.
-	 * @param dependsOn the resource that this being depended on.
+	 * For example, if an XML file is dependent on an XSD file to be valid, the
+	 * resource that holds the XML file would be the dependent, and the resource
+	 * that holds the XSD would be the dependsOn.
+	 * </p>
+	 * 
+	 * @param id
+	 * 		The validator id that is asserting that the dependency exists.
+	 * @param dependent
+	 * 		The resource that is dependent on the other resource. For example a XML file.
+	 * @param dependsOn
+	 * 		The resource that this being depended on. For example a XSD file.
 	 */
 	void add(String id, IResource dependent, IResource dependsOn);
 	
 	/**
 	 * Remove all the dependency assertions for this project.
+	 * 
 	 * @param project
+	 * 		The project that will have it's dependency assertions removed.
 	 */
 	void clear(IProject project);
 	
-	/** 
-	 * Answer all the resources that depends on this resource.
-	 * For example, if this resource was an XSD, this could answer all the XML files that
+	/**
+	 * Answer all the resources that depend on this resource. For example, if
+	 * this resource was a XSD, this could answer all the XML files that
 	 * depended on it for their validity.
 	 * 
-	 * @param resource a resource that other resources may depend on.
+	 * @param resource
+	 * 		A resource that other resources may depend on.
 	 * 
 	 * @return the dependent resources.
 	 */
 	List<DependentResource> get(IResource resource);
 	
-	/** 
-	 * Answer all the resources that depend on this resource.
-	 * For example, if this resource was an XSD, this could answer all the XML files that
+	/**
+	 * Answer all the resources that depend on this resource. For example, if
+	 * this resource was a XSD, this could answer all the XML files that
 	 * depended on it for their validity.
 	 * 
-	 * @param id the validator id that asserted that the dependency existed.
-	 * @param resource a resource that other resources may depend on.
+	 * @param id
+	 * 		The validator id that asserted that the dependency exists.
+	 * @param resource
+	 * 		A resource that other resources may depend on.
 	 * 
-	 * @return the dependent resources. This method can also return null, if there are no
-	 * dependent resources.
+	 * @return the dependent resources. This method can return null or an empty array, if
+	 * 	there are no dependent resources.
 	 */
 	IResource[] get(String id, IResource resource);
 	
 	/**
-	 * Answer true if other resources depend on this resource in the context of this workspace.
+	 * Answer true if other resources depend on this resource.
 	 * 
-	 * @param resource the resource being tested.
+	 * @param resource
+	 * 		The resource being tested.
 	 * 
-	 * @return true if any of the validator's asserted a dependency on this resource.
+	 * @return true if any of the validators asserted a dependency on this resource.
 	 */
 	boolean isDependedOn(IResource resource);
 	
 	/**
-	 * Replace all the resources that the dependent dependsOn.
+	 * Replace all the resources that the dependent depends on.
 	 * 
-	 * @param id the validator id that is asserting that the dependency exists.
-	 * @param dependent the resource that is dependent on the other resource.
-	 * @param dependsOn all the resources that are depended on. This can be null or a zero length array,
-	 * in which case all the dependencies will be removed.
+	 * @param id
+	 * 		The validator id that is asserting that the dependency exists.
+	 * @param dependent
+	 * 		The resource that is dependent on the other resource.
+	 * @param dependsOn
+	 * 		All the resources that are depended on. This can be null or a zero
+	 * 		length array. Null or a zero length array removes all the dependencies.
 	 */
 	void set(String id, IResource dependent, IResource[] dependsOn);
 
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IMutableValidator.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IMutableValidator.java
new file mode 100644
index 0000000..bbb6627
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IMutableValidator.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.validation;
+
+/**
+ * A validator that has fields that can be updated.
+ * <p>
+ * The following procedure is used to change a Validator's settings.
+ * <ol>
+ * <li>An IMutableValidator is retrieved.</li>
+ * <li>The IMutableValidator is changed.</li>
+ * <li>The IMutableValidator is "activated".</li>
+ * </ol>
+ * </p>
+ * <p>The methods {@link ValidationFramework#getProjectSettings(org.eclipse.core.resources.IProject)} and 
+ * {@link ValidationFramework#getWorkspaceSettings()} can be used to retrieve IMutableValidator's.
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+
+ * @author karasiuk
+ *
+ */
+public interface IMutableValidator {
+	
+	/**
+	 * Answer the validator's id.
+	 * @return
+	 */
+	String getId();
+	
+	/**
+	 * Answer the validator's name.
+	 * @return
+	 */
+	String getName();
+	
+	/**
+	 * Answer the validator's class name.
+	 * @return
+	 */
+	String getValidatorClassname();
+	
+	/**
+	 * Answer if the validator is enabled for build based validation.
+	 */
+	boolean isBuildValidation();
+	
+	/**
+	 * Answer if the validator is enabled for manual based validation.
+	 */
+	boolean isManualValidation();
+	
+	/**
+	 * Set whether the validator should be enabled for build based validation.
+	 */
+	void setBuildValidation(boolean build);
+	
+	/**
+	 * Set whether the validator should be enabled for manual based validation.
+	 */	
+	void setManualValidation(boolean manual);
+
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IPerformanceMonitor.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IPerformanceMonitor.java
index 3068cc5..b951270 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IPerformanceMonitor.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IPerformanceMonitor.java
@@ -14,11 +14,22 @@
 
 /**
  * A service that collects performance information on validation operations.
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
  * @author karasiuk
  *
  */
 public interface IPerformanceMonitor {
 	
+	/**
+	 * The level of information to collect.
+	 */
 	public enum CollectionLevel {None, Default}
 	
 	/** 
@@ -30,18 +41,19 @@
 	public void add(PerformanceCounters counters);
 	
 	/**
-	 * Answer true if we have been asked to collect performance events.
+	 * Answer true if the performance monitor is collecting performance events.
 	 */
 	public boolean isCollecting();
 	
-	/** Answer true if only summary information is wanted. */
+	/** Answer true if only summary information is requested. */
 	public boolean isSummaryOnly();
 	
-	/** 
-	 * Set the performance event collection level. This controls which performance events are
-	 * collected, including none of them.
+	/**
+	 * Set the performance event collection level. This controls which
+	 * performance events are collected, including none of them.
 	 * 
-	 * @param level the level to collect. The default is to not collect anything.
+	 * @param level
+	 * 		The level to collect. The default is to not collect anything.
 	 */
 	public void setCollectionLevel(CollectionLevel level);
 	
@@ -51,10 +63,11 @@
 	public CollectionLevel getCollectionLevel();
 	
 	/**
-	 * Answer the performance counters that have been collected so far. Some monitors do
-	 * not save counters, and they will always return an empty list.
+	 * Answer the performance counters that have been collected so far. Some
+	 * monitors do not save counters, and they will always return an empty list.
 	 * 
-	 * @param asSummary if true only answer a summary of the counters
+	 * @param asSummary
+	 * 		If this parameter is true, only answer a summary of the counters.
 	 */
 	public List<PerformanceCounters> getPerformanceCounters(boolean asSummary);
 	
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IValidatorGroupListener.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IValidatorGroupListener.java
new file mode 100644
index 0000000..5f4feee
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/IValidatorGroupListener.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.validation;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+/**
+ * Validators may wish to join validator groups for performance or other
+ * reasons. That way expensive operations like creating and releasing models can
+ * be done in a common location, and be done only once per resource. Group listeners
+ * are declared via the <code>org.eclipse.wst.validation.validatorGroup</code> extension point.
+ * <p>
+ * As validation proceeds, the validation framework, on a resource by resource
+ * bases, determines if any validators that are members of a group are
+ * interested in the resource. If they are, before the first validator in the
+ * group is called, the <code>validationStarting</code> method is called. If this method was
+ * called, then the <code>validationFinishing</code> method will be called once all the
+ * validators have processed the resource.
+ * </p>
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ */
+public interface IValidatorGroupListener {
+	/**
+	 * This is called before the first validator in the group that is interested
+	 * in the resource is called. If no validators in the group are interested
+	 * in the resource, then this method is not called.
+	 * 
+	 * @param resource
+	 *            The resource that is being validated.
+	 * @param monitor
+	 *            A progress monitor that the method should use.
+	 * @param state
+	 *            The validation state for the current operation.
+	 */
+	void validationStarting(IResource resource, IProgressMonitor monitor, ValidationState state);
+	
+	/**
+	 * If the validationStarting method was called on the resource, then this
+	 * method will be called after the last validator has processed the
+	 * resource.
+	 * 
+	 * @param resource
+	 * 		The resource that is being validated.
+	 * @param monitor
+	 * 		A progress monitor that the method can use.
+	 * @param state
+	 * 		The validation state for the current operation.
+	 */
+	void validationFinishing(IResource resource, IProgressMonitor monitor, ValidationState state);
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/MessageSeveritySetting.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/MessageSeveritySetting.java
index 1c8d660..4eaa3b7 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/MessageSeveritySetting.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/MessageSeveritySetting.java
@@ -15,6 +15,13 @@
 
 /**
  * Associate a message severity with a message category.
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ * @noextend
  * @author karasiuk
  *
  */
@@ -36,6 +43,9 @@
 			return _severityLabel;
 		}
 
+		/**
+		 * Answer the associated IMarker severity.
+		 */
 		public int getMarkerSeverity() {
 			return _markerSeverity;
 		}
@@ -48,16 +58,19 @@
 	private Severity 	_current;
 	
 	/**
-	 * Create an association between a label and a message severity. 
+	 * Create an association between a label and a message severity.
 	 * 
-	 * @param id an id that is used to identify this particular setting. This must be unique within the
-	 * scope of this particular validator.
+	 * @param id
+	 * 		An id that is used to identify this particular setting. This must be
+	 * 		unique within the scope of this particular validator.
 	 * 
-	 * @param label an end user string,
-	 * that can describe either an individual message or a message category.
+	 * @param label
+	 * 		An end user string, that can describe either an individual message
+	 * 		or a message category.
 	 * 
-	 * @param defaultSeverity the default severity for this label. If the user doesn't change anything
-	 * this is what the severity will be.
+	 * @param defaultSeverity
+	 * 		The default severity for this label. If the end user doesn't change
+	 * 		anything this is what the severity will be.
 	 */
 	public MessageSeveritySetting(String id, String label, Severity defaultSeverity){
 		_id = id;
@@ -77,21 +90,30 @@
 		return _label;
 	}
 
+	/** Answer the default severity as defined by the validator owner. */
 	public Severity getDefault() {
 		return _default;
 	}
 
+	/** 
+	 * Answer the current severity for the message. The end user may have changed this through a
+	 * preference dialog.
+	 */
 	public Severity getCurrent() {
 		if (_current != null)return _current;
 		return _default;
 	}
 
+	/**
+	 * The id that the validator owner assigned to the message.
+	 */
 	public String getId() {
 		return _id;
 	}
 
 	/**
-	 * Set the current message severity. 
+	 * Set the current message severity.
+	 * 
 	 * @param severity
 	 * @return true if the setting changed
 	 */
@@ -106,6 +128,9 @@
 		return _id + " " + getCurrent().toString(); //$NON-NLS-1$
 	}
 
+	/**
+	 * Answer a copy of this object.
+	 */
 	public MessageSeveritySetting copy() {
 		MessageSeveritySetting ms = new MessageSeveritySetting(_id, _label, _default);
 		ms._current = _current;
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/MutableProjectSettings.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/MutableProjectSettings.java
new file mode 100644
index 0000000..73bf21c
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/MutableProjectSettings.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.validation;
+
+import org.eclipse.core.resources.IProject;
+
+/**
+ * This class holds the overall project validation settings.
+ * <p>
+ * The following procedure is used to change a project's Validation settings.
+ * <ol>
+ * <li>The MutableProjectSettings are retrieved.</li>
+ * <li>The MutableProjectSettings are changed.</li>
+ * <li>The MutableProjectSettings are "applied".</li>
+ * </ol>
+ * </p>
+ * <p>In order for a project's validation setting to be effective, both 
+ * {@link #getOverride()} and {@link MutableWorkspaceSettings#getOverride()}
+ * must be true.
+ * </p>
+ * <p>
+ * These settings can be retrieved with {@link ValidationFramework#getProjectSettings(IProject)}.
+ * </p>
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+
+ * @author karasiuk
+ *
+ */
+public final class MutableProjectSettings {
+	private final IProject	_project;
+
+	private boolean _override;
+	private boolean	_suspend;
+	private final IMutableValidator[] _validators;
+	
+	public IMutableValidator[] getValidators() {
+		return _validators;
+	}
+
+	public MutableProjectSettings(IProject project, IMutableValidator[] validators){
+		_project = project;
+		_validators = validators;
+	}
+
+	/**
+	 * Can this project override the workspace level validation settings?
+	 */
+	public boolean getOverride() {
+		return _override;
+	}
+
+	/**
+	 * Change whether this project can override workspace level validation settings.
+	 * @param override Set to true if the project is allowed to override workspace level validation settings.
+	 */
+	public void setOverride(boolean override) {
+		_override = override;
+	}
+
+	/**
+	 * Is validation suspended for this project?
+	 */
+	public boolean getSuspend() {
+		return _suspend;
+	}
+
+	/**
+	 * Change whether this project is suspending it's validation.
+	 * @param suspend Set to true, to suspend validation for this project.
+	 */
+	public void setSuspend(boolean suspend) {
+		_suspend = suspend;
+	}
+
+	/**
+	 * Answer the project that these settings are for.
+	 */
+	public IProject getProject() {
+		return _project;
+	}
+
+
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/MutableWorkspaceSettings.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/MutableWorkspaceSettings.java
new file mode 100644
index 0000000..80d18f1
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/MutableWorkspaceSettings.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.validation;
+
+import org.eclipse.wst.validation.internal.model.GlobalPreferencesValues;
+
+
+/**
+ * This class holds the overall workspace validation settings.
+ * <p>
+ * The following procedure is used to change a project's Validation settings.
+ * <ol>
+ * <li>The MutableWorkspaceSettings are retrieved.</li>
+ * <li>The MutableWorkspaceSettings are changed.</li>
+ * <li>The MutableWorkspaceSettings are "applied".</li>
+ * </ol>
+ * </p>
+ * <p>
+ * These settings can be retrieved with {@link ValidationFramework#getWorkspaceSettings()}.
+ * </p>
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+
+ * @author karasiuk
+ *
+ */
+public final class MutableWorkspaceSettings {
+
+	private final GlobalPreferencesValues _values;
+	
+	private final IMutableValidator[] _validators;
+	
+	public IMutableValidator[] getValidators() {
+		return _validators;
+	}
+
+	public MutableWorkspaceSettings(IMutableValidator[] validators, GlobalPreferencesValues values){
+		_validators = validators;
+		_values = values;
+	}
+	
+	public GlobalPreferencesValues getGlobalPreferencesValues(){
+		return _values;
+	}
+	
+	public boolean getAutoSave() {
+		return _values.saveAutomatically;
+	}
+
+	public void setAutoSave(boolean autoSave) {
+		_values.saveAutomatically = autoSave;
+	}
+
+	/**
+	 * Can this project override the workspace level validation settings?
+	 */
+	public boolean getOverride() {
+		return _values.override;
+	}
+
+	/**
+	 * Change whether this project can override workspace level validation settings.
+	 * @param override Set to true if the project is allowed to override workspace level validation settings.
+	 */
+	public void setOverride(boolean override) {
+		_values.override = override;
+	}
+
+	/**
+	 * Is validation suspended for this project?
+	 */
+	public boolean getSuspend() {
+		return _values.disableAllValidation;
+	}
+
+	/**
+	 * Change whether this project is suspending it's validation.
+	 * @param suspend Set to true, to suspend validation for this project.
+	 */
+	public void setSuspend(boolean suspend) {
+		_values.disableAllValidation = suspend;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/PerformanceCounters.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/PerformanceCounters.java
index b19d448..cf57721 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/PerformanceCounters.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/PerformanceCounters.java
@@ -16,12 +16,19 @@
 
 /**
  * Some performance information for a validation invocation. This object is immutable.
- * 
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ * @noextend
  * @author karasiuk
  *
  */
 public class PerformanceCounters {
 	
+	private long	_when;
 	private String 	_validatorId;
 	private String	_validatorName;
 	private String	_resourceName;
@@ -39,6 +46,8 @@
 	 */
 	public PerformanceCounters(String validatorId, String validatorName, String resourceName, 
 		int numberInvocations, long elapsedTime, long cpuTime){
+		
+		_when = System.currentTimeMillis();
 		_validatorId = validatorId;
 		_validatorName = validatorName;
 		_resourceName = resourceName;
@@ -63,7 +72,7 @@
 	
 	/**
 	 * Answer the amount of CPU time in nanoseconds. If this can not be determined,
-	 * answer -1;
+	 * answer -1.
 	 */
 	public long getCpuTime() {
 		return _cpuTime;
@@ -91,4 +100,17 @@
 		return _validatorName;
 	}
 
+	/** 
+	 * Answer when was the event logged. 
+	 * 
+	 * @see System#currentTimeMillis()
+	 */
+	public long getWhen() {
+		return _when;
+	}
+
+	public String getResourceName() {
+		return _resourceName;
+	}
+
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationEvent.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationEvent.java
new file mode 100644
index 0000000..528e58e
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationEvent.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.validation;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+
+/**
+ * An object that describes which object should be validated and what triggered its validation.
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ * @author karasiuk
+ *
+ */
+
+public final class ValidationEvent {
+	
+	private IResource 		_resource;
+	private int				_kind;
+	private IResourceDelta 	_dependsOn;
+	
+	/**
+	 * Create an object that describes what should be validated.
+	 * 
+	 * @param resource
+	 *            The resource to be validated.
+	 * @param kind
+	 *            The way the resource changed. It uses the same values as the
+	 *            kind parameter in IResourceDelta.
+	 * @param dependsOn
+	 *            If the resource is being validated because one of it's
+	 *            dependencies has changed, that change is described here. This
+	 *            can be null.
+	 */
+	public ValidationEvent(IResource resource, int kind, IResourceDelta dependsOn){
+		_resource = resource;
+		_kind = kind;
+		_dependsOn = dependsOn;
+	}
+
+	/**
+	 * The resource to be validated.
+	 */
+	public IResource getResource() {
+		return _resource;
+	}
+
+	/**
+	 * The way the resource changed. It uses the same values as the kind
+	 * parameter in IResourceDelta.
+	 */
+	public int getKind() {
+		return _kind;
+	}
+
+	/**
+	 * If the resource is being validated because one of it's dependencies has changed, that change is described here.
+	 * This method will return null when the trigger is not because of a dependency change.
+	 */
+	public IResourceDelta getDependsOn() {
+		return _dependsOn;
+	}
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationFramework.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationFramework.java
index c28a821..41f20b7 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationFramework.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationFramework.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.validation;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -18,6 +19,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceVisitor;
@@ -29,18 +31,32 @@
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
 import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.wst.validation.Validator.V1;
+import org.eclipse.wst.validation.internal.ConfigurationManager;
+import org.eclipse.wst.validation.internal.ContentTypeWrapper;
 import org.eclipse.wst.validation.internal.DebugConstants;
 import org.eclipse.wst.validation.internal.DependencyIndex;
 import org.eclipse.wst.validation.internal.DisabledResourceManager;
 import org.eclipse.wst.validation.internal.DisabledValidatorManager;
+import org.eclipse.wst.validation.internal.GlobalConfiguration;
 import org.eclipse.wst.validation.internal.MarkerManager;
 import org.eclipse.wst.validation.internal.Misc;
 import org.eclipse.wst.validation.internal.PerformanceMonitor;
+import org.eclipse.wst.validation.internal.ProjectUnavailableError;
 import org.eclipse.wst.validation.internal.ValManager;
 import org.eclipse.wst.validation.internal.ValOperation;
+import org.eclipse.wst.validation.internal.ValPrefManagerGlobal;
+import org.eclipse.wst.validation.internal.ValPrefManagerProject;
 import org.eclipse.wst.validation.internal.ValType;
 import org.eclipse.wst.validation.internal.ValidationRunner;
+import org.eclipse.wst.validation.internal.ValidatorMetaData;
+import org.eclipse.wst.validation.internal.ValidatorMutable;
+import org.eclipse.wst.validation.internal.ValManager.UseProjectPreferences;
+import org.eclipse.wst.validation.internal.model.GlobalPreferences;
+import org.eclipse.wst.validation.internal.model.GlobalPreferencesValues;
+import org.eclipse.wst.validation.internal.model.ProjectPreferences;
 import org.eclipse.wst.validation.internal.operations.ValidationBuilder;
+import org.eclipse.wst.validation.internal.operations.ValidatorManager;
 import org.eclipse.wst.validation.internal.operations.WorkbenchReporter;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -50,34 +66,50 @@
  * The central class of the Validation Framework.
  * <p>
  * This is a singleton class that is accessed through the getDefault() method. 
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
  * @author karasiuk
  *
  */
 public final class ValidationFramework {
 	
-	private IDependencyIndex 			_dependencyIndex;
+	private volatile IDependencyIndex 	_dependencyIndex;
 	private IPerformanceMonitor			_performanceMonitor;
 	
 	private Set<IProject> 				_suspendedProjects;
 	private boolean 					_suspendAllValidation;
 
-	private static ValidationFramework 	_me;
-	
 	/** 
 	 * Answer the singleton, default instance of this class.
 	 */
 	public static ValidationFramework getDefault(){
-		if (_me == null)_me = new ValidationFramework();
-		return _me;
+		return Singleton.vf;
 	}
 	
 	private ValidationFramework(){}
 	
 	/**
+	 * Add the validation builder to the project, so that the project can support
+	 * build time validation. It is safe to call this method, if the builder was
+	 * previously added to the project. It will not be added more than once.
+	 * 
+	 * @param project The project that the builder is added to.
+	 */
+	public void addValidationBuilder(IProject project){
+		ValidatorManager.addProjectBuildValidationSupport(project);
+	}
+	
+	/**
 	 * Clear any validation markers that may have been set by this validator.
-	 *  
-	 * @param resource the resource that may have it's markers cleared
-	 * @param validatorId the id of validator that created the marker
+	 * 
+	 * @param resource
+	 * 		The resource that may have it's markers cleared.
+	 * @param validatorId
+	 * 		The id of validator that created the marker.
 	 */
 	public void clearMessages(IResource resource, String validatorId) throws CoreException {
 		Validator v = getValidator(validatorId, null);
@@ -85,12 +117,13 @@
 	}
 	
 	/**
-	 * Disable all validation for the given resource. This method instructions
+	 * Disable all validation for the given resource. This method instructs
 	 * the framework to not run any validators on the given resource or any of
 	 * it's children. This setting is persistent. Currently this only works with version 2
 	 * validators.
-	 * 
+	 * <p>
 	 * Use the enableValidation method to restore validation.
+	 * </p>
 	 * 
 	 * @param resource
 	 *            The resource that is having validation disabled. It must be an IFolder or an IFile.
@@ -103,11 +136,12 @@
 	}
 	
 	/**
-	 * Enable validation for the given resource. If the resource was not previously
-	 * disabled this method call has no effect. Currently this only works with version 2 
-	 * validators.
+	 * Enable validation for the given resource. If the resource was not
+	 * previously disabled this method call has no effect. Currently this only
+	 * works with version 2 validators.
 	 * 
-	 * @param resource The resource that is having validation re-enabled.
+	 * @param resource
+	 * 		The resource that is having validation re-enabled.
 	 * 
 	 * @see #disableValidation(IResource)
 	 */
@@ -120,27 +154,31 @@
 	 * other resources.
 	 */
 	public IDependencyIndex getDependencyIndex(){
-		if (_dependencyIndex != null)return _dependencyIndex;
-		return getDependencyIndex2();
-	}
-
-	private synchronized IDependencyIndex getDependencyIndex2() {
-		if (_dependencyIndex == null)_dependencyIndex = new DependencyIndex();
+		// note how the _dependencyIndex is volatile so that this double checking approach can be used.
+		if (_dependencyIndex == null){
+			synchronized(this){
+				if (_dependencyIndex == null)_dependencyIndex = new DependencyIndex();
+			}
+		}
 		return _dependencyIndex;
 	}
-	
+
+	/**
+	 * Answer a performance monitor for the validators.
+	 */
 	public synchronized IPerformanceMonitor getPerformanceMonitor(){
 		if (_performanceMonitor == null){
 			boolean traceTimes = Misc.debugOptionAsBoolean(DebugConstants.TraceTimes);
 			String traceFile = Platform.getDebugOption(DebugConstants.TraceTimesFile);
+			boolean useDoubles = Misc.debugOptionAsBoolean(DebugConstants.TraceTimesUseDoubles);
 
-			_performanceMonitor = PerformanceMonitor.create(traceTimes, traceFile);
+			_performanceMonitor = PerformanceMonitor.create(traceTimes, traceFile, useDoubles);
 		}
 		return _performanceMonitor;
 	}
 	
 	/**
-	 * Answer the preference store that holds the global validation settings.
+	 * Answer the preference store that holds the persisted global validation settings.
 	 */
 	public IEclipsePreferences getPreferenceStore(){
 		return new InstanceScope().getNode(ValidationPlugin.PLUGIN_ID);
@@ -151,19 +189,26 @@
 	}
 	
 	/**
-	 * Answer all the validators that are applicable for the given resource, even if the
-	 * validator has been turned off by the user.
+	 * Answer all the validators that are applicable for the given resource. A validator is
+	 * still returned even if it has been turned off by the user.
 	 * <p>
-	 * The caller may still need to test if the validator has been turned off by the
-	 * user, by using the isBuildValidation() and isManualValidation() methods.
+	 * The caller may still need to test if the validator has been turned off by
+	 * the user, by using the isBuildValidation() and isManualValidation()
+	 * methods.
 	 * </p>
-	 * @param resource the resource that determines which validators are applicable.
 	 * 
-	 * @param isManual if true then the validator must be turned on for manual validation. 
-	 * If false then the isManualValidation setting isn't used to filter out validators.
-	 *   
-	 * @param isBuild if true then the validator must be turned on for build based validation.
-	 * If false then the isBuildValidation setting isn't used to filter out validators.  
+	 * @param resource
+	 * 		The resource that determines which validators are applicable.
+	 * 
+	 * @param isManual
+	 * 		If true then the validator must be turned on for manual validation.
+	 * 		If false then the isManualValidation setting isn't used to filter
+	 * 		out validators.
+	 * 
+	 * @param isBuild
+	 * 		If true then the validator must be turned on for build based
+	 * 		validation. If false then the isBuildValidation setting isn't used
+	 * 		to filter out validators.
 	 * 
 	 * @see Validator#isBuildValidation()
 	 * @see Validator#isManualValidation()
@@ -171,8 +216,9 @@
 	public Validator[] getValidatorsFor(IResource resource, boolean isManual, boolean isBuild){
 		IProject project = resource.getProject();
 		List<Validator> list = new LinkedList<Validator>();
+		ContentTypeWrapper ctw = new ContentTypeWrapper();
 		for (Validator val : ValManager.getDefault().getValidators(project)){
-			if (val.shouldValidate(resource, isManual, isBuild))list.add(val);
+			if (val.shouldValidate(resource, isManual, isBuild, ctw))list.add(val);
 		}
 		
 		Validator[] result = new Validator[list.size()];
@@ -181,10 +227,12 @@
 	}
 	
 	/**
-	 * Answer all the validators that should not validate the resource, either because
-	 * their filters don't support the resource, or the validator has been disabled for
-	 * both build validation and manual validation.
+	 * Answer all the validators that should not validate the resource, either
+	 * because their filters don't support the resource, or the validator has
+	 * been disabled for both build validation and manual validation.
+	 * 
 	 * @param resource
+	 * 		The resource this is being tested.
 	 */
 	public Set<Validator> getDisabledValidatorsFor(IResource resource){
 		return DisabledValidatorManager.getDefault().getDisabledValidatorsFor(resource);
@@ -203,19 +251,25 @@
 	}
 	
 	/**
-	 * Answer the validator with the given id that is in effect for the given project.
+	 * Answer the validator with the given id that is in effect for the given
+	 * project.
 	 * <p>
-	 * Individual projects may override the global validation preference settings. If this is allowed and if
-	 * the project has it's own settings, then those validators are returned via this method.
+	 * Individual projects may override the global validation preference
+	 * settings. If this is allowed and if the project has it's own settings,
+	 * then those validators are returned via this method.
 	 * </p>
 	 * <p>
-	 * The following approach is used. For version 1 validators, the validator is only returned if it
-	 * is defined to operate on this project type. This is the way that the previous version of the framework
-	 * did it. For version 2 validators, they are all returned.
+	 * The following approach is used. For version 1 validators, the validator
+	 * is only returned if it is defined to operate on this project type. This
+	 * is the way that the previous version of the framework did it. For version
+	 * 2 validators, they are all returned.
 	 * </p>
 	 * 
-	 * @param id validator id.
-	 * @param project this can be null, in which case all the registered validators are checked.
+	 * @param id
+	 * 		Validator id.
+	 * @param project
+	 * 		This can be null, in which case all the registered validators are
+	 * 		checked.
 	 * @return null if the validator is not found
 	 */
 	public Validator getValidator(String id, IProject project){
@@ -223,6 +277,112 @@
 	}
 	
 	/**
+	 * Answer copies of all the registered validators.
+	 * 
+	 * @return Answer an empty array if there are no validators.
+	 */
+	public Validator[] getValidators(){
+		return ValManager.getDefault().getValidatorsCopy();
+	}
+		
+	/**
+	 * Answer the validation settings that have been defined on the
+	 * project. To "activate" any changes to these settings, the
+	 * {@link #applyChanges(MutableProjectSettings, boolean)} method needs to be
+	 * called.
+	 * 
+	 * @param project The project who's settings you wish to examine or change.
+	 * @return Validation settings that apply to the given project.
+	 */
+	public MutableProjectSettings getProjectSettings(IProject project){
+		ProjectPreferences pp = ValManager.getDefault().getProjectPreferences(project);
+		Validator[] vals = pp.getValidators();
+		ValidatorMutable[] vms = new ValidatorMutable[vals.length];
+		for (int i=0; i<vals.length; i++)vms[i] = new ValidatorMutable(vals[i]);
+
+		MutableProjectSettings mps = new MutableProjectSettings(project, vms);
+		mps.setOverride(pp.getOverride());
+		mps.setSuspend(pp.getSuspend());
+		return mps;
+	}
+	
+	/**
+	 * Answer the validation settings that have been defined at the workspace level.
+	 * To "activate" any changes to these settings, the
+	 * {@link #applyChanges(MutableWorkspaceSettings, boolean)} method needs to be
+	 * called.
+	 * 
+	 * @return Validation settings that apply to the entire workspace.
+	 */
+	public MutableWorkspaceSettings getWorkspaceSettings() throws InvocationTargetException{
+		
+		ValManager vm = ValManager.getDefault();
+		GlobalPreferences gp = vm.getGlobalPreferences();
+		
+		Validator[] vals = vm.getValidators();		
+		ValidatorMutable[] vms = new ValidatorMutable[vals.length];
+		for (int i=0; i<vals.length; i++)vms[i] = new ValidatorMutable(vals[i]);
+
+		MutableWorkspaceSettings mws = new MutableWorkspaceSettings(vms, gp.asValues());
+		return mws;
+	}
+		
+	/**
+	 * Apply the changes that have been been to the validation settings.
+	 * 
+	 * @param settings
+	 *            The project settings.
+	 * @param persist
+	 *            If true then the changes are persisted to the property files.
+	 *            If false the changes are applied to the validators, but are
+	 *            not persisted.
+	 */
+	public void applyChanges(MutableProjectSettings settings, boolean persist){
+		ValPrefManagerProject vpm = new ValPrefManagerProject(settings.getProject());
+		vpm.savePreferences(settings, persist);
+	}
+	
+	/**
+	 * Apply the changes that have been been to the validation settings.
+	 * 
+	 * @param settings
+	 *            The workspace settings.
+	 * @param persist
+	 *            If true then the changes are persisted to the property files.
+	 *            If false the changes are applied to the validators, but are
+	 *            not persisted.
+	 */
+	public void applyChanges(MutableWorkspaceSettings settings, boolean persist){
+		
+		ValManager vm = ValManager.getDefault();
+		GlobalPreferencesValues gpv = settings.getGlobalPreferencesValues();
+		vm.replace(gpv);
+		
+		IMutableValidator[] mvs = settings.getValidators();
+		ValidatorMutable[] vals = new ValidatorMutable[mvs.length];
+		for (int i=0; i<mvs.length; i++)vals[i] = (ValidatorMutable)mvs[i];
+		ValPrefManagerGlobal.getDefault().savePreferences(vm.getGlobalPreferences(), vals, persist);
+		ValPrefManagerGlobal.saveV1Preferences(vals, persist);		
+	}
+	
+	/**
+	 * Validators can use project level settings (Project natures and facets) to
+	 * determine if they are applicable to the project or not.
+	 * 
+	 * @param project
+	 *            The project that the configuration is based on.
+	 * @return The copies of the validators that are configured to run on this project based
+	 *         on the project level settings.
+	 * @throws ProjectUnavailableError
+	 */
+	public Validator[] getValidatorsConfiguredForProject(IProject project) throws ProjectUnavailableError {
+		Validator[] orig = ValManager.getDefault().getValidatorsConfiguredForProject(project, UseProjectPreferences.Normal);
+		Validator[] copy = new Validator[orig.length];
+		for (int i=0; i<orig.length; i++)copy[i] = orig[i].copy();
+		return copy;
+	}
+	
+	/**
 	 * Answer all the validators that are applicable for the given resource.
 	 * 
 	 * @param resource the resource that determines which validators are applicable.
@@ -239,41 +399,73 @@
 	/**
 	 * Answer true if the resource has any enabled validators.
 	 * 
-	 * @param resource a file, folder or project.
+	 * @param resource
+	 * 		A file, folder or project.
 	 * 
-	 * @param isManual if true then the validator must be turned on for manual validation. 
-	 * If false then the isManualValidation setting isn't used to filter out validators.
-	 *   
-	 * @param isBuild if true then the validator must be turned on for build based validation.
-	 * If false then the isBuildValidation setting isn't used to filter out validators.  
+	 * @param isManual
+	 * 		If true then the validator must be turned on for manual validation.
+	 * 		If false then the isManualValidation setting isn't used to filter
+	 * 		out validators.
+	 * 
+	 * @param isBuild
+	 * 		If true then the validator must be turned on for build based
+	 * 		validation. If false then the isBuildValidation setting isn't used
+	 * 		to filter out validators.
 	 */
 	public boolean hasValidators(IResource resource, boolean isManual, boolean isBuild){
 		return ValManager.getDefault().hasValidators(resource, isManual, isBuild);
 	}
 	
 	/**
-	 * Waits until all validation jobs are finished.  This method will block the 
-	 * calling thread until all such jobs have finished executing, or until this thread is
-	 * interrupted.   If there are no validation jobs in 
-	 * that are currently waiting, running, or sleeping, this method returns 
-	 * immediately.  Feedback on how the join is progressing is provided to a progress monitor.
+	 * Answer whether or not the validator has been activated, i.e. has the
+	 * bundle that defines the validator been loaded. We do not want to cause
+	 * unnecessary bundle loading, so this check can be performed by third party
+	 * callers, to prevent making other calls that will force the validator to
+	 * be loaded.
+	 * 
+	 * @param validator
+	 *            The validator that is being tested.
+	 * @return true if the validator has already been loaded.
+	 */
+	public boolean isLoaded(Validator validator){
+		return validator.isLoaded();
+	}
+	
+	/**
+	 * Waits until all the validation jobs and all the other auto build jobs are finished. 
+	 * This method will block the
+	 * calling thread until all such jobs have finished executing, or until this
+	 * thread is interrupted. If there are no relevant jobs that are
+	 * currently waiting, running, or sleeping, this method returns immediately.
+	 * Feedback on how the join is progressing is provided to the progress
+	 * monitor.
 	 * <p>
 	 * If this method is called while the job manager is suspended, only jobs
-	 * that are currently running will be joined; Once there are no jobs
-	 * in the family in the {@link Job#RUNNING} state, this method returns.
+	 * that are currently running will be joined. Once there are no jobs in the
+	 * family in the {@link Job#RUNNING} state, this method returns.
 	 * </p>
 	 * <p>
-	 * Note that there is a deadlock risk when using join.  If the calling thread owns
-	 * a lock or object monitor that the joined thread is waiting for, deadlock 
-	 * will occur. This method can also result in starvation of the current thread if
-	 * another thread continues to add jobs of the given family, or if a
-	 * job in the given family reschedules itself in an infinite loop.
+	 * Note that there is a deadlock risk when using join. If the calling thread
+	 * owns a lock or object monitor that the joined thread is waiting for,
+	 * deadlock will occur. This method can also result in starvation of the
+	 * current thread if another thread continues to add jobs of the given
+	 * family, or if a job in the given family reschedules itself in an infinite
+	 * loop.
 	 * </p>
 	 * 
-	 * @param monitor Progress monitor for reporting progress on how the
-	 * wait is progressing, or <code>null</code> if no progress monitoring is required.
-	 * @exception InterruptedException if this thread is interrupted while waiting
-	 * @exception OperationCanceledException if the progress monitor is canceled while waiting
+	 * <p>If you are interested in only waiting for the validation jobs, see the
+	 * joinValidationOnly method.
+	 * 
+	 * @param monitor
+	 * 		Progress monitor for reporting progress on how the wait is
+	 * 		progressing, or <code>null</code> if no progress monitoring is
+	 * 		required.
+	 * @exception InterruptedException
+	 * 		if this thread is interrupted while waiting
+	 * @exception OperationCanceledException
+	 * 		if the progress monitor is canceled while waiting
+	 * 
+	 * @see #joinValidationOnly(IProgressMonitor)
 	 */
 	public void join(IProgressMonitor monitor) throws InterruptedException, OperationCanceledException {
 		Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, monitor);
@@ -281,16 +473,57 @@
 	}
 	
 	/**
-	 * Suspends, or undoes the suspension of, validation on the current project. If "suspend" is
-	 * true then validation is suspended and if it's "false" then validation is not suspended on the
-	 * project. The value of this variable is not persisted.
+	 * Waits until all the validation jobs are finished. 
+	 * This method will block the
+	 * calling thread until all such jobs have finished executing, or until this
+	 * thread is interrupted. If there are no relevant jobs that are
+	 * currently waiting, running, or sleeping, this method returns immediately.
+	 * Feedback on how the join is progressing is provided to the progress
+	 * monitor.
 	 * <p>
-	 * Be VERY CAREFUL when you use this method! Turn validation back on in a finally block because
-	 * if the code which suspended validation crashes, the user has no way to reset the suspension.
-	 * The user will have to shut down and restart the workbench to get validation to work again.
+	 * If this method is called while the job manager is suspended, only jobs
+	 * that are currently running will be joined. Once there are no jobs in the
+	 * family in the {@link Job#RUNNING} state, this method returns.
 	 * </p>
-	 * @param project the project that is to be suspended or unsuspended.
-	 * @param suspend if true validation on the project will be suspend. If false it will not be suspended.
+	 * <p>
+	 * Note that there is a deadlock risk when using join. If the calling thread
+	 * owns a lock or object monitor that the joined thread is waiting for,
+	 * deadlock will occur. This method can also result in starvation of the
+	 * current thread if another thread continues to add jobs of the given
+	 * family, or if a job in the given family reschedules itself in an infinite
+	 * loop.
+	 * </p>
+	 * 
+	 * @param monitor
+	 * 		Progress monitor for reporting progress on how the wait is
+	 * 		progressing, or <code>null</code> if no progress monitoring is
+	 * 		required.
+	 * @exception InterruptedException
+	 * 		if this thread is interrupted while waiting
+	 * @exception OperationCanceledException
+	 * 		if the progress monitor is canceled while waiting
+	 */
+	public void joinValidationOnly(IProgressMonitor monitor) throws InterruptedException, OperationCanceledException {
+		Job.getJobManager().join(ValidationBuilder.FAMILY_VALIDATION_JOB, monitor);
+	}
+	
+	/**
+	 * Suspends, or undoes the suspension of, validation on the current project.
+	 * If <b>suspend</b> is true then validation is suspended and if it's false
+	 * then validation is not suspended on the project. The value of this
+	 * variable is not persisted.
+	 * <p>
+	 * Be <b>very careful</b> when you use this method! Turn validation back on in a
+	 * finally block because if the code which suspended validation crashes, the
+	 * user has no way to reset the suspension. The user will have to shut down
+	 * and restart the workbench to get validation to work again.
+	 * </p>
+	 * 
+	 * @param project
+	 * 		The project that is to be suspended or unsuspended.
+	 * @param suspend
+	 * 		If true, validation on the project will be suspend. If false it will
+	 * 		not be suspended.
 	 */
 	public void suspendValidation(IProject project, boolean suspend) {
 		if (project == null)return;
@@ -302,15 +535,67 @@
 		if (_suspendedProjects == null)_suspendedProjects = Collections.synchronizedSet(new HashSet<IProject>(20));
 		return _suspendedProjects;
 	}
+	
+	/**
+	 * Save the validators settings into the persistent store, there by making their settings the active settings.
+	 * <p>
+	 * A common use of this method would be to change whether particular validators are enabled or not. For example
+	 * if you only wanted the JSP validator enabled, you could use code similar to this:
+	 * <pre>
+	 * ValidationFramework vf = ValidationFramework.getDefault();
+	 * Validator[] vals = vf.getValidators();
+	 * for (Validator v : vals){
+	 *   boolean enabled = false;
+	 *   if (v.getValidatorClassname().equals("org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator"))enabled = true;
+	 *     v.setBuildValidation(enabled);
+	 *     v.setManualValidation(enabled);
+	 *  }
+	 * vf.saveValidators(vals);
+	 * </pre>
+	 * </p> 
+	 * 
+	 * @param validators The validators that you are saving.
+	 * 
+	 * @throws InvocationTargetException
+	 */
+	public void saveValidators(Validator[] validators) throws InvocationTargetException{
+		
+		
+		ValPrefManagerGlobal gp = ValPrefManagerGlobal.getDefault();
+		gp.saveAsPrefs(validators);	
+		
+		GlobalConfiguration gc = ConfigurationManager.getManager().getGlobalConfiguration();
+		
+		List<ValidatorMetaData> manual = new LinkedList<ValidatorMetaData>();
+		List<ValidatorMetaData> build = new LinkedList<ValidatorMetaData>();
+		for (Validator v : validators){
+			V1 v1 = v.asV1Validator();
+			if (v1 == null)continue;
+			if (v1.isManualValidation())manual.add(v1.getVmd());
+			if (v1.isBuildValidation())build.add(v1.getVmd());
+		}
+		
+		ValidatorMetaData[] array = new ValidatorMetaData[manual.size()];
+		gc.setEnabledManualValidators(manual.toArray(array));
+		
+		array = new ValidatorMetaData[build.size()];
+		gc.setEnabledBuildValidators(build.toArray(array));
+
+		gc.passivate();
+		gc.store();		
+	}
 
 	/**
-	 * Suspends, or undoes the suspension of, validation on all projects in the workbench. If
-	 * "suspend" is true then validation is suspended and if it's "false" then validation is not suspended.
-	 * The value of this variable is not persisted.
+	 * Suspends, or undoes the suspension of, validation on all projects in the
+	 * workbench. If "suspend" is true then validation is suspended and if it's
+	 * "false" then validation is not suspended. The value of this variable is
+	 * not persisted.
 	 * <p>
-	 * Be VERY CAREFUL when you use this method! Turn validation back on in a finally block because
-	 * if the code which suspended validation crashes, the user has no way to reset the suspension.
-	 * The user will have to shut down and restart the workbench to get validation to work again.
+	 * Be <b>very careful</b> when you use this method! Turn validation back on in a
+	 * finally block because if the code which suspended validation crashes, the
+	 * user has no way to reset the suspension. The user will have to shut down
+	 * and restart the workbench to get validation to work again.
+	 * </p>
 	 */
 	public void suspendAllValidation(boolean suspend) {
 		_suspendAllValidation = suspend;
@@ -370,10 +655,24 @@
 		IProgressMonitor monitor) throws CoreException{
 		ValType type = ValType.Build;
 		if (isManual)type = ValType.Manual;
-		ValOperation vo = ValidationRunner.validate(createMap(projects), type, monitor);
+		ValOperation vo = ValidationRunner.validate(createMap(projects), type, monitor, true);
 		return vo.getResults();
 	}
-	
+
+	/**
+	 * Validate a specific file resource.
+	 * 
+	 * @param file
+	 *            The file to be validated.
+	 * @param monitor
+	 *            Progress monitor.
+	 * @return the result of validating the file.
+	 */
+  public ValidationResults validate(IFile file, IProgressMonitor monitor) throws CoreException{
+      ValOperation vo = ValidationRunner.validate(file, ValType.Manual, monitor, true);
+      return vo.getResults();
+    }
+	  
 	/**
 	 * Answer all the resources in the projects as a map.
 	 * @param projects
@@ -403,10 +702,23 @@
 		}
 
 		public boolean visit(IResource resource) throws CoreException {
-			_set.add(resource);
+			// [225839] the older validators only expect files and folders.
+			int type = resource.getType();
+			if (type == IResource.FILE || type == IResource.FOLDER)_set.add(resource);
 			return true;
 		}
 		
 	}
+	
+	/**
+	 * Store the singleton for the ValidationFramework. This approach is used to avoid having to synchronize the
+	 * ValidationFramework.getDefault() method.
+	 * 
+	 * @author karasiuk
+	 *
+	 */
+	private static class Singleton {
+		static ValidationFramework vf = new ValidationFramework();
+	}
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationResult.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationResult.java
index 7419b36..c1714e1 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationResult.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationResult.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -21,15 +21,22 @@
 import org.eclipse.wst.validation.internal.provisional.core.IReporter;
 
 /**
- * The result of running a validate operation.
+ * The result of running a validate operation. Validators create and return this objects as part of
+ * performing their validation.
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
  * @author karasiuk
  *
  */
 public final class ValidationResult {
 	
-	private List<ValidatorMessage> _messages;
+	private final List<ValidatorMessage> _messages = new LinkedList<ValidatorMessage>();
 	
-	private static ValidatorMessage[] _noMessages = new ValidatorMessage[0];
+	private final static ValidatorMessage[] _noMessages = new ValidatorMessage[0];
 	
 	private boolean		_canceled;
 	
@@ -59,27 +66,34 @@
 	private ValidationException	_validationException;
 	
 	/**
-	 * This is an optional method, that a validator can use to return error messages. When the validation framework
-	 * is invoking the validator these will be converted into IMarkers. If the validator is being called directly then
-	 * the caller is responsible for using the messages.
+	 * This is an optional method, that a validator can use to return error
+	 * messages. The validation framework converts these into IMarkers.
 	 * <p>
-	 * The scenario that motivated this method, is when a validator is used both for as-you-type validation and batch
-	 * validation. In this scenario the validator when called in as-you-type mode doesn't want to directly create IMarkers,
-	 * because the resource hasn't even been saved. It needs to return something other than an IMarker. But when called
-	 * in batch mode, it does ultimately want IMarkers. By returning ValidatorMessages, it only needs to return one type
-	 * of message, and those messages can be either be directly used by the caller, or automatically converted into IMarkers by
-	 * the validation framework.
+	 * The scenario that motivated this method, is when a validator is used both
+	 * for <b>as you type</b> validation and <b>build</b> validation. When
+	 * called in as you type mode, the validator doesn't want to directly create IMarkers,
+	 * because the resource hasn't been saved yet. It needs to return something
+	 * other than an IMarker. But when called in build mode, it does ultimately
+	 * want IMarkers. By returning ValidatorMessages, it only needs to return
+	 * one type of message, and those messages can be either be directly used by
+	 * the caller, or automatically converted into IMarkers by the validation
+	 * framework.
+	 * </p>
 	 * <p>
-	 * To make matters even more complicated there is a third way to return messages. To make it easier for 
-	 * old validators to port to the new framework, they can continue to use an IReporter. If a validator calls the
-	 * getReporter() method then it is assumed by the framework that that is the approach that they have chosen.  
+	 * To make matters even more complicated there is a third way to return
+	 * messages. To make it easier for old validators to port to the new
+	 * framework, they can continue to use an IReporter. If a validator calls
+	 * the getReporter() method then it is assumed by the framework that that is
+	 * the approach that they have chosen.
+	 * </p>
 	 * 
 	 * @see #getReporter(IProgressMonitor)
 	 * 
-	 * @param message a message
+	 * @param message
+	 * 		A validation message.
 	 */
 	public void add(ValidatorMessage message){
-		getMessageList().add(message);
+		_messages.add(message);
 	}
 	
 	/**
@@ -134,7 +148,9 @@
 		
 	}
 
-
+	/**
+	 * Answer the resources that the validated resource depends on.
+	 */
 	public IResource[] getDependsOn() {
 		return _dependsOn;
 	}
@@ -149,39 +165,52 @@
 		_messages.toArray(msgs);
 		return msgs;
 	}
+		
+	/**
+	 * Answer a copy of any validation messages that were added by the validator. The array is a new
+	 * array, and each message is a copy. 
+	 * @return an array is returned even if there are no messages.
+	 */
+	public synchronized ValidatorMessage[] getMessagesAsCopy(){
+		if (_messages == null)return _noMessages;
+		ValidatorMessage[] msgs = new ValidatorMessage[_messages.size()];
+		int i = 0;
+		for (ValidatorMessage msg : _messages)msgs[i++] = msg.asCopy();
+		return msgs;
+	}
 
 	/**
-	 * Update the resources that the validated resource depends on. This can be left null.
-	 * For example, an XML file may depend on a XSD in order to know if it is valid or not.
-	 * It would pass back the XSD file. 
+	 * Update the resources that the validated resource depends on. This can be
+	 * left null. For example, a XML file may depend on a XSD file in order to
+	 * know if it is valid or not. It would pass back that XSD file.
 	 * 
-	 * @param dependsOn if this is null then the dependency information is not updated. To remove the
-	 * dependency information, an empty array needs to be supplied. A non null parameter, <b>replaces</b> all the
-	 * dependency information for this resource, for this validator. 
+	 * @param dependsOn
+	 * 		If this is null then the dependency information is not updated. To
+	 * 		remove the dependency information, an empty array needs to be
+	 * 		supplied. A non null parameter, <b>replaces</b> all the dependency
+	 * 		information for this resource, for this validator.
 	 */
 	public void setDependsOn(IResource[] dependsOn) {
 		_dependsOn = dependsOn;
 	}
 	
-	private List<ValidatorMessage> getMessageList(){
-		if (_messages == null)_messages = new LinkedList<ValidatorMessage>();
-		return _messages;
-	}
-
 	/**
-	 * @return All the resources that were validated as a side-effect of validating the main resource, or null if none were.
+	 * @return All the resources that were validated as a side-effect of
+	 * 	validating the main resource, or null if none were.
 	 */
 	public IResource[] getValidated() {
 		return _validated;
 	}
 	
 	/**
-	 * Indicate that additional resources have been validated as part of this validate operation. 
-	 * Sometimes in the course of performing a validation on one one resource it is
-	 * necessary to validate other resources as well. This method is used to let the framework know about these 
-	 * additional validated resources, to possibly save them being validated redundantly.
+	 * Indicate that additional resources have been validated as part of this
+	 * validate operation. Sometimes in the course of performing a validation on
+	 * one resource it is necessary to validate other resources as well. This
+	 * method is used to let the framework know about these additional validated
+	 * resources, to possibly save them being validated redundantly.
 	 * 
 	 * @param validated
+	 * 		Any additional resources that were validated.
 	 */
 	public void setValidated(IResource[] validated) {
 		_validated = validated;
@@ -199,6 +228,7 @@
 	 * <p>
 	 * Messages added through the add(ValidationMessage) method should not be included here, as this
 	 * information will be determined from the ValidationMessage.
+	 * </p>
 	 */
 	public void setSeverityError(int severityError) {
 		_severityError = severityError;
@@ -210,6 +240,7 @@
 	 * <p>
 	 * Messages added through the add(ValidationMessage) method should not be included here, as this
 	 * information will be determined from the ValidationMessage.
+	 * </p>
 	 * 
 	 * @return the current number of errors.
 	 */
@@ -230,6 +261,7 @@
 	 * <p>
 	 * Messages added through the add(ValidationMessage) method should not be included here, as this
 	 * information will be determined from the ValidationMessage.
+	 * </p>
 	 */
 	public void setSeverityWarning(int severityWarning) {
 		_severityWarning = severityWarning;
@@ -240,6 +272,7 @@
 	 * <p>
 	 * Messages added through the add(ValidationMessage) method should not be included here, as this
 	 * information will be determined from the ValidationMessage.
+	 * </p>
 	 * 
 	 * @return the current number of warnings.
 	 */
@@ -260,6 +293,7 @@
 	 * <p>
 	 * Messages added through the add(ValidationMessage) method should not be included here, as this
 	 * information will be determined from the ValidationMessage.
+	 * </p>
 	 */
 	public void setSeverityInfo(int severityInfo) {
 		_severityInfo = severityInfo;
@@ -270,6 +304,7 @@
 	 * <p>
 	 * Messages added through the add(ValidationMessage) method should not be included here, as this
 	 * information will be determined from the ValidationMessage.
+	 * </p>
 	 * 
 	 * @return the current number of informational message.
 	 */
@@ -280,7 +315,7 @@
 
 	/**
 	 * Was the operation canceled before it completed? For example if the validation is being run through the
-	 * UI, the end user can cancel the operation through the progress monitor.
+	 * user interface, the end user can cancel the operation through the progress monitor.
 	 * 
 	 * @return true if the operation was canceled
 	 */
@@ -290,7 +325,9 @@
 
 	/**
 	 * Indicate if the operation was canceled.
+	 * 
 	 * @param canceled
+	 * 		Set to true if it was canceled and false if it was not canceled.
 	 */
 	public void setCanceled(boolean canceled) {
 		_canceled = canceled;
@@ -304,6 +341,10 @@
 		return _numberOfValidatedResources + _validated.length;
 	}
 
+	/**
+	 * If the validation ended with an exception, answer it.
+	 * @return null if the validator did not finish with an exception.
+	 */
 	public ValidationException getValidationException() {
 		return _validationException;
 	}
@@ -312,6 +353,7 @@
 	 * If the validation failed with an exception, it can be recorded here.
 	 * <p>
 	 * This method is provided for old validators to ease their transition to the new framework.
+	 * </p>
 	 * @param validationException
 	 */
 	public void setValidationException(ValidationException validationException) {
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationResults.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationResults.java
index 4f9dd36..ba947f8 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationResults.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationResults.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
+ * Copyright (c) 2007, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,16 +10,38 @@
  *******************************************************************************/
 package org.eclipse.wst.validation;
 
+
 /**
  * The combined results of validating multiple resources.
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
  * @author karasiuk
  *
  */
-public class ValidationResults {
-	private ValidationResult _result;
+public final class ValidationResults {
+	
+	private final ValidatorMessage[] _messages;
+	private final int 	_error;
+	private final int	_warn;
+	private final int	_info;
 	
 	public ValidationResults(ValidationResult result){
-		_result = result;
+		if (result == null){
+			_messages = new ValidatorMessage[0];
+			_error = 0;
+			_warn = 0;
+			_info = 0;
+		}
+		else {
+			_messages = result.getMessagesAsCopy();
+			_error = result.getSeverityError();
+			_warn = result.getSeverityWarning();
+			_info = result.getSeverityInfo();
+		}
 	}
 	
 	/**
@@ -27,32 +49,28 @@
 	 * @return an array is returned even if there are no messages.
 	 */
 	public ValidatorMessage[] getMessages(){
-		if (_result == null)return new ValidatorMessage[0];
-		return _result.getMessages();
+		return _messages;
 	}
 
 	/**
 	 * Answer the number of error messages that were generated as part of this validation operation.
 	 */
 	public int getSeverityError() {
-		if (_result == null)return 0;
-		return _result.getSeverityError();
+		return _error;
 	}
 
 	/**
 	 * Answer the number of informational messages that were generated as part of this validation operation.
 	 */
 	public int getSeverityInfo() {
-		if (_result == null)return 0;
-		return _result.getSeverityInfo();
+		return _info;
 	}
 	
 	/**
 	 * Answer the number of warning messages that were generated as part of this validation operation.
 	 */
 	public int getSeverityWarning() {
-		if (_result == null)return 0;
-		return _result.getSeverityWarning();
+		return _warn;
 	}
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationState.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationState.java
index 4248298..8097de4 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationState.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidationState.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
+ * Copyright (c) 2007, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -25,43 +25,64 @@
  * any other validator, since the id is simply the validator's extension id.
  * <p>
  * This object is freed at the end of the validation process.
- * 
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that is still under development and expected to 
+ * change significantly before reaching stability. It is being made available at this early stage to solicit feedback 
+ * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
+ * (repeatedly) as the API evolves.
+ * </p>
+ * @noextend
  * @author karasiuk
  *
  */
-public class ValidationState {
+public final class ValidationState {
 	
-	/** 
-	 * This is the key, and the value is an IResource. If a resource that is depended on by others is changed,
-	 * then the dependent resources are validated. The depended on resource, which is the resource that
-	 * actually changed, is placed into the ValidationState, as it might be useful information to the validator.
+	/**
+	 * This is a special id.
+	 * <p>
+	 * If a resource that is depended on by others is changed, then the
+	 * dependent resources are validated. The depended on resource, which is the
+	 * resource that actually changed, is placed into the ValidationState using
+	 * this id.
+	 * </p>
+	 * @deprecated This approach is not thread safe, the longer form of the AbstractValidator validate method should be used instead.
+	 * @see AbstractValidator#validate(ValidationEvent, ValidationState, org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	public static final String TriggerResource = ValidationPlugin.PLUGIN_ID + ".Trigger"; //$NON-NLS-1$
 
-	private Map<String, Object> _map = new HashMap<String, Object>(50);
+	// I can't use a ConncurrentHashMap because some of the clients store nulls.
+	private final Map<String, Object> _map = new HashMap<String, Object>(50);
+	
+	public ValidationState(){
+	}
 	
 	/**
 	 * Save some state information.
 	 * 
-	 * @param id by convention this is the fully qualified validator extension id.
-	 * For example: org.eclipse.wst.html.ui.HTMLValidator
+	 * @param id
+	 * 		By convention this is the fully qualified validator extension id.
+	 * 		For example: org.eclipse.wst.html.ui.HTMLValidator
 	 * 
-	 * @param value any arbitrary data that the validator might find useful. The validation framework
-	 * doesn't do anything with this object except pass it along during the validation process. 
+	 * @param value
+	 * 		Any arbitrary data that the validator might find useful. The
+	 * 		validation framework doesn't do anything with this object except
+	 * 		pass it along during the validation process.
 	 */
-	public void put(String id, Object value){
+	public synchronized void put(String id, Object value){
 		_map.put(id, value);
 	}
 	
 	/**
 	 * Answer the state data for the given validator.
 	 * 
-	 * @param id by convention this is the fully qualified validator extension point id.
-	 * For example org.eclipse.wst.html.ui.HTMLValidator
+	 * @param id
+	 * 		By convention this is the fully qualified validator extension point
+	 * 		id. For example org.eclipse.wst.html.ui.HTMLValidator
 	 * 
-	 * @return any arbitrary data that the validator might find useful, including null.
+	 * @return any arbitrary data that the validator might find useful,
+	 * 	including null.
 	 */
-	public Object get(String id){
+	public synchronized Object get(String id){
 		return _map.get(id);
 	}
 
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java
index cac7a2f..88f5ec5 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -11,11 +11,15 @@
 package org.eclipse.wst.validation;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IProject;
@@ -28,16 +32,18 @@
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.validation.internal.ConfigurationConstants;
 import org.eclipse.wst.validation.internal.ConfigurationManager;
+import org.eclipse.wst.validation.internal.ContentTypeWrapper;
 import org.eclipse.wst.validation.internal.ExtensionConstants;
 import org.eclipse.wst.validation.internal.MarkerManager;
 import org.eclipse.wst.validation.internal.Misc;
 import org.eclipse.wst.validation.internal.NullValidator;
 import org.eclipse.wst.validation.internal.SummaryReporter;
+import org.eclipse.wst.validation.internal.Tracing;
 import org.eclipse.wst.validation.internal.ValManager;
 import org.eclipse.wst.validation.internal.ValMessages;
 import org.eclipse.wst.validation.internal.ValOperation;
-import org.eclipse.wst.validation.internal.ValOperationManager;
 import org.eclipse.wst.validation.internal.ValPrefManagerGlobal;
 import org.eclipse.wst.validation.internal.ValPrefManagerProject;
 import org.eclipse.wst.validation.internal.ValType;
@@ -53,14 +59,18 @@
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 import org.eclipse.wst.validation.internal.provisional.core.IValidator;
+import org.eclipse.wst.validation.internal.provisional.core.IValidatorExtender;
 
 /**
  * Represents a validator. This gets instantiated through one of the validator extension points.
+ * <p>
+ * <b>This class is not API</b>.
+ * </p>
  * 
  * @author karasiuk
  *
  */
-public abstract class Validator implements Comparable {
+public abstract class Validator implements Comparable<Validator> {
 	// Remember if you add a new instance variable, make sure that you update the copy and become methods
 	
 	/**
@@ -107,6 +117,17 @@
 	/** How many times has a message field in this validator been changed since it was created (or copied)? */
 	protected transient int _changeCountMessages;
 	
+	/** Has the validator been migrated from an earlier version in this session, but not yet saved? */
+	private boolean _migrated;
+	
+	public Validator(IProject project){
+		_project = project;
+	}
+		
+	void setMigrated(boolean migrated){
+		_migrated = migrated;
+	}
+	
 	/**
 	 * Create a new validator based on a abstract validator.
 	 * 
@@ -130,8 +151,7 @@
 	 *            means that you are a global validator.
 	 */
 	public static Validator create(ValidatorMetaData vmd, ValidationConfiguration config, IProject project){
-		V1 v1 = new V1(vmd, config);
-		v1._project = project;
+		V1 v1 = new V1(vmd, config, project);
 		return v1;
 	}
 	
@@ -156,18 +176,14 @@
 	 * @param project the project being built.
 	 * @param monitor the monitor that should be used for reporting progress if the clean takes a long time.
 	 */
-	public void clean(IProject project, IProgressMonitor monitor){
+	public void clean(IProject project, ValOperation operation, IProgressMonitor monitor){
 	}	
 	
 	/**
 	 * Compare yourself based on Validator name.
 	 */
-	public int compareTo(Object validator) {
-		if (validator instanceof Validator){
-			Validator other = (Validator)validator;
-			return getName().compareTo(other.getName());			
-		}
-		return -1;
+	public int compareTo(Validator validator) {
+		return getName().compareTo(validator.getName());			
 	}
 	
 	/** Answer a deep copy of yourself. */
@@ -186,9 +202,9 @@
 		_manualValidation = v._manualValidation;
 		_markerId = v._markerId;
 		_messageSettings = v._messageSettings;
-		_project = v._project;
 		_sourceId = v._sourceId;
 		_version = v._version;
+		_migrated = v._migrated;
 		
 		if (includeChangeCounts){
 			_changeCountGlobal = v._changeCountGlobal;
@@ -197,36 +213,116 @@
 	}
 	
 	/**
-	 * Answer true if this validator, based on it's filters, should validate this resource. This method
-	 * does not check to see if global validation or project validation has been suspended or not.
+	 * Should the validation framework first clear the markers that this
+	 * validator has placed on this resource? This method can be overridden by
+	 * validator implementors to provide a validator specific behavior.
 	 * 
-	 * @param resource the resource to be checked
-	 * @param isManual if true then this validator must also be enabled for manual validation.
-	 * @param isBuild if true then this validator must also be enabled for builder based validation.
+	 * @param event
+	 *            The validation event that triggered the validation.
+	 * @return true if the validation framework should first clear all the
+	 *         markers that this validator produced. This is the default
+	 *         behavior. Return false to leave the markers unchanged. It then
+	 *         becomes the responsibility of the validator to manage it's own
+	 *         markers for this resource, for this validation event.
+	 */
+	public boolean shouldClearMarkers(ValidationEvent event){
+		return true;
+	}
+	
+	/**
+	 * Answer true if this validator, based on it's filters, should validate
+	 * this resource. This method does not check to see if global validation or
+	 * project validation has been suspended or not.
+	 * 
+	 * @param resource
+	 *            The resource to be checked.
+	 * @param isManual
+	 *            If true then this validator must also be enabled for manual
+	 *            validation.
+	 * @param isBuild
+	 *            If true then this validator must also be enabled for builder
+	 *            based validation.
 	 * 
 	 * @return true if the resource should be validated.
 	 */
 	public boolean shouldValidate(IResource resource, boolean isManual, boolean isBuild){
-		if (isManual && !_manualValidation)return false;
-		if (isBuild && !_buildValidation)return false;
-		
-		return shouldValidate(resource);
+		return shouldValidate(resource, isManual, isBuild, new ContentTypeWrapper());
 	}
 	
 	/**
-	 * Answer true if this validator, based on it's filters, should validate this resource. This method
-	 * does not check to see if global validation or project validation has been suspended or not.
+	 * Answer true if this validator, based on it's filters, should validate
+	 * this resource. This method does not check to see if global validation or
+	 * project validation has been suspended or not.
 	 * 
-	 * @param resource the resource to be checked
-	 * @param valType The content to use when perform the check.
+	 * @param resource
+	 *            The resource to be checked.
+	 * @param isManual
+	 *            If true then this validator must also be enabled for manual
+	 *            validation.
+	 * @param isBuild
+	 *            If true then this validator must also be enabled for builder
+	 *            based validation.
+	 * @param contentTypeWrapper 
+	 *            For repeated calls on the same resource, it is more efficient
+	 *            to remember the content type.
+	 * @return true if the resource should be validated.
+	 * @see Friend#shouldValidate(Validator, IResource, boolean, boolean, ContentTypeWrapper)
+	 */
+	boolean shouldValidate(IResource resource, boolean isManual, boolean isBuild, 
+		ContentTypeWrapper contentTypeWrapper){
+		
+		if (isManual && !_manualValidation)return false;
+		if (isBuild && !_buildValidation)return false;
+		
+		return shouldValidate(resource, contentTypeWrapper);
+	}
+	
+	/**
+	 * Answer true if this validator, based on it's filters, should validate
+	 * this resource. This method does not check to see if global validation or
+	 * project validation has been suspended or not.
+	 * 
+	 * @param resource
+	 *            The resource to be checked.
+	 * @param valType
+	 *            The context to use when performing the check.
 	 * 
 	 * @return true if the resource should be validated.
 	 */
 	public boolean shouldValidate(IResource resource, ValType valType){
+		return shouldValidate(resource, valType, new ContentTypeWrapper());
+	}
+	
+	/**
+	 * Answer true if this validator, based on it's filters, should validate
+	 * this resource. This method does not check to see if global validation or
+	 * project validation has been suspended or not.
+	 * 
+	 * @param resource
+	 *            The resource to be checked.
+	 * @param valType
+	 *            The context to use when performing the check.
+	 * @param contentTypeWrapper
+	 *            For repeated calls on the same resource, it is more efficient
+	 *            to remember the content type.
+	 * 
+	 * @return true if the resource should be validated.
+	 * 
+	 * @see Friend#shouldValidate(Validator, IResource, ValType, ContentTypeWrapper)
+	 */
+	boolean shouldValidate(IResource resource, ValType valType, ContentTypeWrapper contentTypeWrapper){
+		if (Tracing.matchesExtraDetail(getId())){
+			Tracing.log("Validator-01: checking if " + getId() + " should validate " + resource); //$NON-NLS-1$ //$NON-NLS-2$
+		}
 		if (valType == ValType.Manual && !_manualValidation)return false;
 		if (valType == ValType.Build && !_buildValidation)return false;
 		
-		return shouldValidate(resource);
+		boolean result = shouldValidate(resource, contentTypeWrapper);
+		if (Tracing.matchesExtraDetail(getId())){
+			Tracing.log("Validator-02: result = " + result); //$NON-NLS-1$
+		}
+		
+		return result;
 	}
 	
 	/**
@@ -253,22 +349,61 @@
 	 * @return true if the project should be validated.
 	 */
 	public boolean shouldValidateProject(IProject project, boolean isManual, boolean isBuild){
+		if (Tracing.matchesExtraDetail(getId())){
+			Tracing.log("Validator-03: checking if " + getId() + " should validate " + project); //$NON-NLS-1$ //$NON-NLS-2$
+		}
 		if (isManual && !_manualValidation)return false;
 		if (isBuild && !_buildValidation)return false;
 		if (project == null || !project.isOpen())return false;
-		return shouldValidateProject(project);
+		boolean result = shouldValidateProject(project);
+		if (Tracing.matchesExtraDetail(getId())){
+			Tracing.log("Validator-04: result " + result); //$NON-NLS-1$
+		}
+		return result;
 	}
+	
 	/**
 	 * Validate the resource.
 	 * 
-	 * @param resource the resource to be validated
-	 * @param kind the kind of resource change, see IResourceDelta for values.
-	 * @param operation the operation that this validation is running under. This can be null.
-	 * @param monitor a way to report progress. This can be null.
+	 * @param resource
+	 *            The resource to be validated.
+	 * @param kind
+	 *            The kind of resource change, see IResourceDelta for values.
+	 * @param operation
+	 *            The operation that this validation is running under. This can
+	 *            be null.
+	 * @param monitor
+	 *            A way to report progress. This can be null.
 	 * 
-	 * @return the result of doing the validation, it can be, but usually isn't null.
+	 * @return the result of doing the validation, it can be, but usually isn't
+	 *         null.
 	 */
-	public abstract ValidationResult validate(IResource resource, int kind, ValOperation operation, IProgressMonitor monitor);	
+	public abstract ValidationResult validate(IResource resource, int kind, ValOperation operation, IProgressMonitor monitor);
+	
+	/**
+	 * Validate the resource.
+	 * 
+	 * @param resource
+	 *            The resource to be validated.
+	 * @param kind
+	 *            The kind of resource change, see IResourceDelta for values.
+	 * @param operation
+	 *            The operation that this validation is running under. This can
+	 *            be null.
+	 * @param monitor
+	 *            A way to report progress. This can be null.
+	 * @param event
+	 *            An event that describes in more detail what should be
+	 *            validated and why it should be validated. This can be null.
+	 * 
+	 * @return the result of doing the validation, it can be, but usually isn't
+	 *         null.
+	 */
+	public ValidationResult validate(IResource resource, int kind, ValOperation operation, IProgressMonitor monitor, ValidationEvent event){
+		// The reason that the resource and kind are still specified, is that I didn't want to remove a public method in the service
+		// stream. 
+		return validate(resource, kind, operation, monitor);		
+	}
 
 	/**
 	 * This method will be called before any validation takes place. It allows validators to perform any
@@ -316,7 +451,7 @@
 		return null;
 	}
 	
-	protected abstract boolean shouldValidate(IResource resource);
+	protected abstract boolean shouldValidate(IResource resource, ContentTypeWrapper contentTypeWrapper);
 	protected abstract boolean shouldValidateProject(IProject project);
 			
 	public abstract String getId();
@@ -384,7 +519,6 @@
 		
 	/**
 	 * Answer the name of the class that implements the validator.
-	 * @return
 	 */
 	public abstract String getValidatorClassname();
 	
@@ -399,16 +533,20 @@
 	 * Set whether this validator should be triggered as part of a manual validation.
 	 * 
 	 * @param manualValidation
+	 * @return true if the setting changed.
 	 */
-	public void setManualValidation(boolean manualValidation) {
-		setManualValidation2(manualValidation);
+	public boolean setManualValidation(boolean manualValidation) {
+		return setManualValidation2(manualValidation);
 	}
 	
-	protected final void setManualValidation2(boolean manualValidation) {
+	protected final boolean setManualValidation2(boolean manualValidation) {
+		boolean changed = false;
 		if (_manualValidation != manualValidation){
 			bumpChangeCountGlobal();
+			changed = true;
 			_manualValidation = manualValidation;
 		}
+		return changed;
 	}
 
 	/**
@@ -419,10 +557,10 @@
 	}
 	
 	/**
-	 * Has the validator changed since it was last created or copied?
+	 * Has the validator changed since it was last created or copied? Or was it migrated from an earlier version. 
 	 */
 	public boolean isChanged(){
-		if (_changeCountGlobal > 0 || _changeCountMessages > 0)return true;
+		if (_changeCountGlobal > 0 || _changeCountMessages > 0 || _migrated)return true;
 		return false;
 	}
 	
@@ -437,16 +575,20 @@
 	 * Set whether this validator should be triggered by the build process.
 	 * 
 	 * @param buildValidation
+	 * @return true if the setting changed.
 	 */
-	public void setBuildValidation(boolean buildValidation) {
-		setBuildValidation2(buildValidation);
+	public boolean setBuildValidation(boolean buildValidation) {
+		return setBuildValidation2(buildValidation);
 	}
 	
-	protected final void setBuildValidation2(boolean buildValidation) {
+	protected final boolean setBuildValidation2(boolean buildValidation) {
+		boolean changed = false;
 		if (_buildValidation != buildValidation){
 			bumpChangeCountGlobal();
+			changed = true;
 			_buildValidation = buildValidation;
 		}
+		return changed;
 	}
 
 	/**
@@ -499,7 +641,8 @@
 	 * @param vmd
 	 * @param config this is used to set the global enablement options. In some case this can be null.
 	 */
-	public V1(ValidatorMetaData vmd, ValidationConfiguration config){
+	public V1(ValidatorMetaData vmd, ValidationConfiguration config, IProject project){
+		super(project);
 		_vmd = vmd;
 		if (config != null){
 			setBuildValidation(config.isBuildEnabled(vmd));
@@ -511,6 +654,17 @@
 	}
 	
 	@Override
+	public void validationFinishing(IProject project, ValidationState state, IProgressMonitor monitor) {
+		if (project != null) {
+			IValidator v = asIValidator();
+			if (v instanceof IValidatorExtender) {
+				IValidatorExtender vExt = (IValidatorExtender) v;
+				vExt.validationFinishing(project, state, monitor);
+			}	
+		}
+	}
+
+	@Override
 	public IValidator asIValidator() {
 		IValidator v = null;
 		try {
@@ -526,17 +680,9 @@
 	public V1 asV1Validator() {
 		return this;
 	}
-	
-	@Override
-	public void become(Validator val) {
-		super.become(val);
-		V1 v1 = val.asV1Validator();
-		if (v1 == null)throw new IllegalArgumentException("Internal error, the incoming validator must be a v1 validator"); //$NON-NLS-1$
-		_vmd = v1._vmd;
-	}
-		
+			
 	public Validator copy(boolean includeChangeCounts) {
-		V1 v = new V1Copy(_vmd, null);
+		V1 v = new V1Copy(_vmd, null, _project);
 		v.copyLocal(this, includeChangeCounts);
 				
 		return v;
@@ -570,19 +716,21 @@
 	}
 	
 	@Override
-	public void setBuildValidation(boolean buildValidation) {
-		super.setBuildValidation(buildValidation);
+	public boolean setBuildValidation(boolean buildValidation) {
+		boolean changed = super.setBuildValidation(buildValidation);
 		_vmd.setBuildValidation(buildValidation);
+		return changed;
 	}
 	
 	@Override
-	public void setManualValidation(boolean manualValidation) {
-		super.setManualValidation(manualValidation);
+	public boolean setManualValidation(boolean manualValidation) {
+		boolean changed = super.setManualValidation(manualValidation);
 		_vmd.setManualValidation(manualValidation);
+		return changed;
 	}
 
 	@Override
-	protected boolean shouldValidate(IResource resource) {
+	protected boolean shouldValidate(IResource resource, ContentTypeWrapper contentTypeWrapper) {
 		return _vmd.isApplicableTo(resource);
 	}
 
@@ -602,6 +750,8 @@
 		IValidator v = asIValidator();
 		if (v == null)return null;
 		
+		if (shouldSkipValidator(resource, operation))return null;
+		
 		try {
 			IProject project = resource.getProject();
 			SummaryReporter reporter = new SummaryReporter(project, monitor);
@@ -614,7 +764,17 @@
 				files.add(wc.getPortableName(resource));
 				wc.setValidationFileURIs(files);
 			}
-			ValidatorLauncher.getLauncher().start(helper, v, reporter);
+			try {
+				ValidatorLauncher.getLauncher().start(helper, v, reporter);
+			}
+			finally {
+				try {
+					v.cleanup(reporter);
+				}
+				finally {
+					helper.cleanup(reporter);
+				}
+			}
 			
 			vr.incrementError(reporter.getSeverityHigh());
 			vr.incrementWarning(reporter.getSeverityNormal());
@@ -627,33 +787,49 @@
 		return vr;
 	}
 	
+
+	private static final String VALIDATE_PROJECT_ONCE = "ValidateProjectOnce"; //$NON-NLS-1$
+
+		@SuppressWarnings("unchecked")	
+		private boolean shouldSkipValidator(IResource resource, ValOperation operation) {
+
+			if (_vmd.isValidateByProject())
+			{
+				ValidationState validationState = operation.getState();
+				Set<String> projectsNameSet = (Set<String>)validationState.get(VALIDATE_PROJECT_ONCE);
+				String projectName = resource.getProject().getName();
+
+				if (projectsNameSet == null) {
+					projectsNameSet = new HashSet<String>();
+					validationState.put(VALIDATE_PROJECT_ONCE, projectsNameSet);
+				}
+
+				if (projectsNameSet.contains(projectName))return true;
+				else projectsNameSet.add(projectName);
+			}
+			return false;
+		}
+
 	/*
 	 * GRK - Because I didn't want to try to make a true copy of the V1 validator, (because I didn't
 	 * want to copy the vmd object), I came up with this approach to only copy the fields that
 	 * the preference page was worried about. 
 	 */
-	public static class V1Copy extends V1 {
-		public V1Copy(ValidatorMetaData vmd, ValidationConfiguration vc){
-			super(vmd, vc);
+	public final static class V1Copy extends V1 {
+		public V1Copy(ValidatorMetaData vmd, ValidationConfiguration vc, IProject project){
+			super(vmd, vc, project);
 		}
 		
 		@Override
-		public void setManualValidation(boolean bool) {
-			setManualValidation2(bool);
+		public boolean setManualValidation(boolean bool) {
+			return setManualValidation2(bool);
 		}
 		
 		@Override
-		public void setBuildValidation(boolean bool) {
-			setBuildValidation2(bool);
+		public boolean setBuildValidation(boolean bool) {
+			return setBuildValidation2(bool);
 		}
-		
-		@Override
-		public void become(Validator val) {
-			super.become(val);
-			super.setBuildValidation(val.isBuildValidation());
-			super.setManualValidation(val.isManualValidation());
-		}
-		
+				
 	}
 		
 }
@@ -682,6 +858,11 @@
 	private IConfigurationElement _validatorConfigElement;
 	
 	private String	_validatorClassName;
+	
+	/**
+	 * An array containing the validator group IDs for which this validator is a member.
+	 */
+	private String[] _validatorGroupIds;
 		
 	/** 
 	 * If this validator is a delegating validator, then this is the "real" validator (i.e. the one that
@@ -694,18 +875,38 @@
 		
 	private Level _level;
 	
+	/**
+	 * Do we still need to invoke the validateStarting method for this validator, for the null project?
+	 * 
+	 * Because we do not want to activate a validator's plug-in too soon, we do not activate the validator
+	 * as a reaction to the global validation starting event. Instead we mark it pending, and wait until
+	 * we are sure that we have something to validate.
+	 * 
+	 * If this flag is true, it means that the validateStarting method still needs to be called for this validator.
+	 */
+	private AtomicBoolean _pendingValidationStarted = new AtomicBoolean();
+	
 	V2(IConfigurationElement configElement, IProject project){
+		super(project);
 		assert configElement != null;
 		_validatorConfigElement = configElement;
 		_validatorClassName = configElement.getAttribute(ExtensionConstants.AttribClass);
-		_project = project;
+
+		IConfigurationElement[] groupReferenceElements = configElement.getChildren(ExtensionConstants.Group.elementGroup);
+		List<String> validatorGroupIDs = new ArrayList<String>();
+		for (IConfigurationElement groupElement : groupReferenceElements) {
+			String id = groupElement.getAttribute(ExtensionConstants.Group.attId);
+			if (id != null)validatorGroupIDs.add(id);
+		}
+		_validatorGroupIds = validatorGroupIDs.toArray(new String[validatorGroupIDs.size()]);
+			
 		init();
 	}
 	
 	private V2(IProject project, String validatorClassName, AbstractValidator validator){
+		super(project);
 		assert validator != null;
 		
-		_project = project;
 		_validatorClassName = validatorClassName;
 		_validator = validator;
 		init();
@@ -724,6 +925,7 @@
 	}
 
 	public synchronized void add(FilterGroup fg) {
+		assert fg != null;
 		_groupsArray = null;
 		_groups.add(fg);
 		bumpChangeCountGroups();
@@ -736,6 +938,7 @@
 		return super.asIValidator();
 	}
 	
+	@Override
 	public V2 asV2Validator() {
 		return this;
 	}
@@ -745,11 +948,14 @@
 	 * 
 	 * @param project the project that is being cleaned. This can be null which means that the workspace
 	 * is being cleaned (in which case a separate call will be made for each open project).
+	 * 
 	 */
-	public void clean(IProject project, IProgressMonitor monitor) {
-		getDelegatedValidator().clean(project, ValOperationManager.getDefault().getOperation().getState(), monitor);
+	@Override
+	public void clean(IProject project, ValOperation operation, IProgressMonitor monitor) {
+		getDelegatedValidator().clean(project, operation.getState(), monitor);
 	}
 	
+	@Override
 	public Validator copy(boolean includeChangeCounts) {
 		V2 v = null;
 		if (_validatorConfigElement != null)v = new V2(_validatorConfigElement, _project);
@@ -761,12 +967,14 @@
 		FilterGroup[] groups = getGroups();
 		v._groupsArray = new FilterGroup[groups.length];
 		for (int i=0; i<groups.length; i++){
-			v._groupsArray[i] = groups[i].copy();
-			v._groups.add(v._groupsArray[i]);
+			v._groupsArray[i] = groups[i];
+			v._groups.add(groups[i]);
 		}
 
 		v._id = _id;
 		v._name = _name;
+		v._validatorGroupIds = _validatorGroupIds;
+		v._pendingValidationStarted = _pendingValidationStarted;
 				
 		return v;
 	}
@@ -792,8 +1000,6 @@
 	 * Answer the actual validator that is going to perform the validation. If this is a normal validator this
 	 * method will simply answer itself. However if this is a delegating validator, then this will answer the
 	 * "real" validator.
-	 *
-	 * @return
 	 */
 	public AbstractValidator getDelegatedValidator(){
 		AbstractValidator delegated = _delegated;
@@ -813,14 +1019,14 @@
 		_delegated = delegated;
 		return delegated;
 	}
-	
+		
+	@Override
 	public String getId() {
 		return _id;
 	}
 	
 	/**
 	 * Answer the validator's filter groups.
-	 *  
 	 * @return an empty array if the validator does not have any filter groups.
 	 */
 	public synchronized FilterGroup[] getGroups(){
@@ -833,6 +1039,7 @@
 		return groups;
 	}
 	
+	@Override
 	public String getName() {
 		return _name;
 	}
@@ -856,10 +1063,15 @@
 		return _validator;
 	}
 	
+	@Override
 	public String getValidatorClassname(){
 		return _validatorClassName;
 	}
 	
+	public String[] getValidatorGroups(){
+		return _validatorGroupIds;
+	}
+	
 	@Override
 	public int hashCodeForConfig() {
 		int h =  super.hashCodeForConfig();
@@ -880,17 +1092,26 @@
 	boolean isLoaded() {
 		return _validator != null;
 	}
+	
+	@Override
+	public boolean shouldClearMarkers(ValidationEvent event) {
+		return getValidator().shouldClearMarkers(event);
+	}
 		
 	/**
 	 * Answer true if this validator, based on it's filters, should validate this resource.
 	 * 
 	 * @return true if the resource should be validated.
 	 */
-	protected boolean shouldValidate(IResource resource) {
+	@Override
+	protected boolean shouldValidate(IResource resource, ContentTypeWrapper contentTypeWrapper) {
+	    if (resource.isDerived()){
+	      return false;
+	    }
 		FilterGroup[] groups = getGroups();
 		IProject project = resource.getProject();
 		for (FilterGroup group : groups){
-			if (!group.shouldValidate(project, resource))return false;
+			if (!group.shouldValidate(project, resource, contentTypeWrapper))return false;
 		}
 		return true;
 	}
@@ -923,14 +1144,28 @@
 	}
 	
 	@Override
-	public ValidationResult validate(IResource resource, int kind, ValOperation operation, IProgressMonitor monitor) {
+	public ValidationResult validate(IResource resource, int kind, ValOperation operation, IProgressMonitor monitor){
+		return validate(resource, kind, operation, monitor, null);
+	}
+	
+	@Override
+	public ValidationResult validate(IResource resource, int kind, ValOperation operation, IProgressMonitor monitor, ValidationEvent event) {
 		ValidationResult vr = null;
 		if (operation == null)operation = new ValOperation();
 		if (monitor == null)monitor = new NullProgressMonitor();
 		try {
-			vr = getDelegatedValidator().validate(resource, kind, operation.getState(), monitor);
+			if (event == null)event = new ValidationEvent(resource, kind, null);
+			vr = getDelegatedValidator().validate(event, operation.getState(), monitor);
+			if (vr == null)vr = getDelegatedValidator().validate(resource, kind, operation.getState(), monitor);
 		}
 		catch (Exception e){
+			try {
+				String msg = NLS.bind(ValMessages.LogValEnd, getName(), resource.getLocationURI());
+				ValidationPlugin.getPlugin().logMessage(IStatus.ERROR, msg);
+			}
+			catch (Exception e2 ){
+				// ignore it
+			}
 			ValidationPlugin.getPlugin().handleException(e);
 		}
 		
@@ -950,16 +1185,16 @@
 			}
 			
 			ValidatorMessage[] msgs = vr.getMessages();
-			if (sanityTest(msgs.length, resource)){
+//			if (sanityTest(msgs.length, resource)){
 				MarkerManager mm = MarkerManager.getDefault();
 				for (ValidatorMessage m : msgs){
 					mm.createMarker(m, getId());
 				}
-			}
-			else {
-				setBuildValidation(false);
-				setManualValidation(false);
-			}
+//			}
+//			else {
+//				setBuildValidation(false);
+//				setManualValidation(false);
+//			}
 		}
 		return vr;		
 	}
@@ -969,18 +1204,17 @@
 	 * @param numberofMessages number of messages that the validator produced.
 	 * @return true if the test passed
 	 */
-	private boolean sanityTest(int numberofMessages, IResource resource) {
-		//FIXME make this more general and configurable
-		if (numberofMessages < 201)return true;
-		
-		String resName = ""; //$NON-NLS-1$
-		if (resource != null)resName = resource.getName();
-		String message = NLS.bind(ValMessages.ConfigError, new Object[]{
-				getName(), getId(), String.valueOf(numberofMessages), resName});
-		ValidationPlugin.getPlugin().logMessage(IStatus.ERROR, message);
-		
-		return false;
-	}
+//	private boolean sanityTest(int numberofMessages, IResource resource) {
+//		if (numberofMessages < 201)return true;
+//		
+//		String resName = ""; //$NON-NLS-1$
+//		if (resource != null)resName = resource.getName();
+//		String message = NLS.bind(ValMessages.ConfigError, new Object[]{
+//				getName(), getId(), String.valueOf(numberofMessages), resName});
+//		ValidationPlugin.getPlugin().logMessage(IStatus.ERROR, message);
+//		
+//		return false;
+//	}
 
 	/**
 	 * If the validator is using a report helper then update it with any of the messages that were
@@ -990,6 +1224,7 @@
 	private void updateResults(ValidationResult vr) {
 		ReporterHelper rh = vr.getReporterHelper();
 		if (rh == null)return;
+		ClassLoader classloader = getDelegatedValidator().getClass().getClassLoader();
 		for (IMessage message : rh.getMessages()){
 			Object target = message.getTargetObject();
 			if (target != null){
@@ -1000,7 +1235,8 @@
 					if (target != null && target instanceof IResource)res = (IResource)target;
 				}
 				if (res != null){
-					ValidatorMessage vm = ValidatorMessage.create(message.getText(), res);
+					
+					ValidatorMessage vm = ValidatorMessage.create(message.getText(classloader), res);
 					if (getMarkerId() != null)vm.setType(getMarkerId());
 					vr.add(vm);
 					int markerSeverity = IMarker.SEVERITY_INFO;
@@ -1018,30 +1254,51 @@
 							vm.setAttribute(IMarker.CHAR_END, offset+len);
 						}
 					}
-					
-					Map attributes = message.getAttributes();
-					if (attributes != null){						
-						for (Iterator it = attributes.entrySet().iterator(); it.hasNext();){
-							Map.Entry me = (Map.Entry)it.next();
-							String key = (String)me.getKey();
-							vm.setAttribute(key, me.getValue());
-						}
+					String groupName = message.getGroupName();
+					if (groupName != null){
+						vm.setAttribute(ConfigurationConstants.VALIDATION_MARKER_GROUP, groupName);
 					}
+					
+					copyAttributes(message, vm);
 				}
 			}
 		}		
 	}
+
+	@SuppressWarnings("unchecked")
+	private void copyAttributes(IMessage message, ValidatorMessage vm) {
+		// I made this a separate method, so that I could localize the suppression of unchecked warnings.
+		Map attributes = message.getAttributes();
+		if (attributes != null){						
+			for (Iterator it = attributes.entrySet().iterator(); it.hasNext();){
+				Map.Entry me = (Map.Entry)it.next();
+				String key = (String)me.getKey();
+				vm.setAttribute(key, me.getValue());
+			}
+		}
+	}
 	
 	@Override
 	public void validationStarting(IProject project, ValidationState state, IProgressMonitor monitor) {
-		getDelegatedValidator().validationStarting(project, state, monitor);
+		if (project == null)_pendingValidationStarted.set(true);
+		else {
+			AbstractValidator val = getDelegatedValidator();
+			if (_pendingValidationStarted.getAndSet(false)){
+				val.validationStarting(null, state, monitor);
+			}
+			val.validationStarting(project, state, monitor);
+		}
 	}
 	
 	@Override
 	public void validationFinishing(IProject project, ValidationState state, IProgressMonitor monitor) {
-		getDelegatedValidator().validationFinishing(project, state, monitor);
+		if (project == null){
+			if (!_pendingValidationStarted.getAndSet(false))getDelegatedValidator().validationFinishing(null, state, monitor);
+		}
+		else getDelegatedValidator().validationFinishing(project, state, monitor);
 	}
 
+	@SuppressWarnings("unchecked")
 	public Object getAdapter(Class adapter) {
 		return Platform.getAdapterManager().getAdapter(this, adapter);
 	}
@@ -1061,27 +1318,18 @@
 	@Override
 	protected boolean shouldValidateProject(IProject project) {
 		FilterGroup[] groups = getGroups();
+		ContentTypeWrapper ctw = new ContentTypeWrapper();
 		for (FilterGroup group : groups){
-			if (!group.shouldValidate(project, null))return false;
+			if (!group.shouldValidate(project, null, ctw))return false;
 		}
 		return true;
 	}
 	
-	@Override
-	public void become(Validator val) {
-		super.become(val);
-		V2 v2 = val.asV2Validator();
-		if (v2 == null)throw new IllegalArgumentException(ValMessages.Error20);
-		_changeCountGroups = v2._changeCountGroups;
-		_delegated = v2._delegated;
-		_groups = v2._groups;
-		_groupsArray = v2._groupsArray;
-		_id = v2._id;
-		_name = v2._name;
-		_validator = v2._validator;
-		_validatorConfigElement = v2._validatorConfigElement;
-		_validatorClassName = v2._validatorClassName;
+	public synchronized void replaceFilterGroup(FilterGroup existing, FilterGroup merged) {
+		remove(existing);
+		add(merged);
 	}
+
 }
 
 public String getSourceId() {
@@ -1095,22 +1343,6 @@
 	}
 }
 
-/**
- * Take the instance variables from the incoming validator and set them to yourself.
- * @param validator
- */
-public void become(Validator validator) {
-	_buildValidation = validator._buildValidation;
-	_delegatingId = validator._delegatingId;
-	_manualValidation = validator._manualValidation;
-	_markerId = validator._markerId;
-	_messageSettings = validator._messageSettings;
-	_project = validator._project;
-	_sourceId = validator._sourceId;
-	_version = validator._version;
-	_changeCountGlobal = validator._changeCountGlobal;
-	_changeCountMessages = validator._changeCountMessages;
-}
 
 void setMessages(Map<String, MessageSeveritySetting> map) {
 	_messageSettings = map;
@@ -1121,6 +1353,10 @@
 	return _changeCountGlobal;
 }
 
+public boolean hasGlobalChanges(){
+	return _migrated || _changeCountGlobal > 0;
+}
+
 public int getChangeCountMessages() {
 	return _changeCountMessages;
 }
@@ -1141,7 +1377,6 @@
 /**
  * Answer true if you have the same configuration settings as validator.
  * @param validator this can be null.
- * @return
  */
 public boolean sameConfig(Validator validator) {
 	if (validator == null)return false;
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidatorMessage.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidatorMessage.java
index 4900054..a16c26e 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidatorMessage.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/ValidatorMessage.java
@@ -22,12 +22,22 @@
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 
 /**
- * This class provides a way for a validator to return messages, that are easily converted into IMarkers.
+ * This class provides a way for a validator to return messages, that are easily
+ * converted into IMarkers.
  * <p>
- * This class is completely optional for validators. A validator can choose to directly manage IMarkers.
- * However, some validators want to be used in multiple contexts, for example as-you-type validation and 
- * batch validation. For these types of validators it is not possible for them to use only IMarkers, because
- * often the Resource has not been saved yet.
+ * This class is completely optional for validators. A validator can choose to
+ * directly manage IMarkers. However, some validators want to be used in
+ * multiple contexts, for example as-you-type validation and build based
+ * validation. For these types of validators it is not possible for them to use
+ * only IMarkers, because often the Resource has not been saved yet.
+ * </p>
+ * <p>
+ * <b>Provisional API:</b> This class/interface is part of an interim API that
+ * is still under development and expected to change significantly before
+ * reaching stability. It is being made available at this early stage to solicit
+ * feedback from pioneering adopters on the understanding that any code that
+ * uses this API will almost certainly be broken (repeatedly) as the API
+ * evolves.
  * </p>
  */
 public class ValidatorMessage {
@@ -35,7 +45,7 @@
 	public static final String ValidationId = "ValidationId"; //$NON-NLS-1$
 	
 	/** Associate some arbitrary attributes with a message. */
-	private Map<String, Object>	_map = new HashMap<String, Object>(5);
+	private final Map<String, Object>	_map = new HashMap<String, Object>(5);
 	
 	private IResource	_resource;
 	
@@ -43,11 +53,13 @@
 	private String		_type;
 	
 	/**
-	 * Create a new validation message. 
+	 * Create a new validation message.
 	 * 
-	 * @param message The localized message that will be displayed to the user.
+	 * @param message
+	 * 		The localized message that will be displayed to the user.
 	 * 
-	 * @param resource the resource that the message is associated with.
+	 * @param resource
+	 * 		The resource that the message is associated with.
 	 */
 	public static ValidatorMessage create(String message, IResource resource){
 		ValidatorMessage msg = new ValidatorMessage();
@@ -59,13 +71,26 @@
 	}
 	
 	private ValidatorMessage(){}
+	
 	/**
-	 * Returns the attribute with the given name.  The result is an instance of one
-	 * of the following classes: <code>String</code>, <code>Integer</code>, 
-	 * or <code>Boolean</code>.
-	 * Returns <code>null</code> if the attribute is undefined.
-	 *
-	 * @param attributeName the name of the attribute
+	 * Answer a copy of yourself.
+	 */
+	public ValidatorMessage asCopy(){
+		ValidatorMessage msg = new ValidatorMessage();
+		msg._resource = _resource;
+		msg._type = _type;
+		msg._map.putAll(_map);
+		return msg;
+	}
+	
+	/**
+	 * Returns the attribute with the given name. The result is an instance of
+	 * one of the following classes: <code>String</code>, <code>Integer</code>,
+	 * or <code>Boolean</code>. Returns <code>null</code> if the attribute is
+	 * undefined.
+	 * 
+	 * @param attributeName
+	 * 		The name of the attribute.
 	 * @return the value, or <code>null</code> if the attribute is undefined.
 	 */
 	public Object getAttribute(String attributeName){
@@ -73,13 +98,15 @@
 	}
 
 	/**
-	 * Returns the integer-valued attribute with the given name.  
-	 * Returns the given default value if the attribute is undefined.
-	 * or the marker does not exist or is not an integer value.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param defaultValue the value to use if no value is found
-	 * @return the value or the default value if no value was found.
+	 * Returns the integer valued attribute with the given name. Returns the
+	 * given default value if the attribute is undefined or the marker does not
+	 * exist or is not an integer value.
+	 * 
+	 * @param attributeName
+	 * 		The name of the attribute.
+	 * @param defaultValue
+	 * 		The value to use if no integer value is found.
+	 * @return the value or the default value if no integer value was found.
 	 */
 	public int getAttribute(String attributeName, int defaultValue){
 		Integer value = null;
@@ -94,12 +121,14 @@
 	}
 
 	/**
-	 * Returns the string-valued attribute with the given name.  
-	 * Returns the given default value if the attribute is undefined
-	 * or the marker does not exist or is not a string value.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param defaultValue the value to use if no value is found
+	 * Returns the string valued attribute with the given name. Returns the
+	 * given default value if the attribute is undefined or the marker does not
+	 * exist or is not a string value.
+	 * 
+	 * @param attributeName
+	 * 		The name of the attribute.
+	 * @param defaultValue
+	 * 		The value to use if no value is found.
 	 * @return the value or the default value if no value was found.
 	 */
 	public String getAttribute(String attributeName, String defaultValue){
@@ -116,12 +145,14 @@
 	}
 
 	/**
-	 * Returns the boolean-valued attribute with the given name.  
-	 * Returns the given default value if the attribute is undefined
-	 * or the marker does not exist or is not a boolean value.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param defaultValue the value to use if no value is found
+	 * Returns the boolean valued attribute with the given name. Returns the
+	 * given default value if the attribute is undefined or the marker does not
+	 * exist or is not a boolean value.
+	 * 
+	 * @param attributeName
+	 * 		The name of the attribute.
+	 * @param defaultValue
+	 * 		The value to use if no value is found.
 	 * @return the value or the default value if no value was found.
 	 */
 	public boolean getAttribute(String attributeName, boolean defaultValue){
@@ -138,13 +169,14 @@
 	}
 
 	/**
-	 * Returns a map with all the attributes for the marker.
-	 * If the marker has no attributes then <code>null</code> is returned.
-	 *
-	 * @return a map of attribute keys and values (key type : <code>String</code> 
-	 *		value type : <code>String</code>, <code>Integer</code>, or 
-	 *		<code>Boolean</code>) or <code>null</code>.
+	 * Returns a map with all the attributes for the marker. If the marker has
+	 * no attributes then <code>null</code> is returned.
+	 * 
+	 * @return a map of attribute keys and values (key type :
+	 * 	<code>String</code> value type : <code>String</code>,
+	 * 	<code>Integer</code>, or <code>Boolean</code>) or <code>null</code>.
 	 */
+	@SuppressWarnings("unchecked")
 	public Map getAttributes() {
 		return _map;
 	}
@@ -179,15 +211,17 @@
 	}
 		
 	/**
-	 * Sets the integer-valued attribute with the given name.  
+	 * Sets the integer valued attribute with the given name.
 	 * <p>
-	 * This method changes resources; these changes will be reported
-	 * in a subsequent resource change event, including an indication 
-	 * that this marker has been modified.
+	 * This method changes resources; these changes will be reported in a
+	 * subsequent resource change event, including an indication that this
+	 * marker has been modified.
 	 * </p>
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param value the value
+	 * 
+	 * @param attributeName
+	 * 		The name of the attribute.
+	 * @param value
+	 * 		The value.
 	 */
 	public void setAttribute(String attributeName, int value){
 		_map.put(attributeName, new Integer(value));
@@ -195,37 +229,42 @@
 	}
 
 	/**
-	 * Sets the attribute with the given name.  The value must be <code>null</code> or 
-	 * an instance of one of the following classes: 
+	 * Sets the attribute with the given name. The value must be
+	 * <code>null</code> or an instance of one of the following classes:
 	 * <code>String</code>, <code>Integer</code>, or <code>Boolean</code>.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param value the value, or <code>null</code> if the attribute is to be undefined
+	 * 
+	 * @param attributeName
+	 * 		The name of the attribute.
+	 * @param value
+	 * 		The value, or <code>null</code> if the attribute is to be undefined.
 	 */
 	public void setAttribute(String attributeName, Object value){
 		_map.put(attributeName, value);
 	}
 
 	/**
-	 * Sets the boolean-valued attribute with the given name.  
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param value the value
+	 * Sets the boolean valued attribute with the given name.
+	 * 
+	 * @param attributeName
+	 * 		The name of the attribute.
+	 * @param value
+	 * 		The value.
 	 */
 	public void setAttribute(String attributeName, boolean value){
 		_map.put(attributeName, value ? Boolean.TRUE : Boolean.FALSE);		
 	}
 
 	/**
-	 * Sets the given attribute key-value pairs on this marker.
-	 * The values must be <code>null</code> or an instance of 
-	 * one of the following classes: <code>String</code>, 
-	 * <code>Integer</code>, or <code>Boolean</code>.
-	 * If a value is <code>null</code>, the new value of the 
-	 * attribute is considered to be undefined.
-	 *
-	 * @param attributeNames an array of attribute names
-	 * @param values an array of attribute values
+	 * Sets the given attribute key-value pairs on this marker. The values must
+	 * be <code>null</code> or an instance of one of the following classes:
+	 * <code>String</code>, <code>Integer</code>, or <code>Boolean</code>. If a
+	 * value is <code>null</code>, the new value of the attribute is considered
+	 * to be undefined.
+	 * 
+	 * @param attributeNames
+	 * 		An array of attribute names.
+	 * @param values
+	 * 		An array of attribute values.
 	 */
 	public void setAttributes(String[] attributeNames, Object[] values){
 		Assert.isTrue(attributeNames.length == values.length);
@@ -235,16 +274,18 @@
 	}
 
 	/**
-	 * Sets the attributes for this marker to be the ones contained in the
-	 * given table. The values must be an instance of one of the following classes: 
+	 * Sets the attributes for this marker to be the ones contained in the given
+	 * table. The values must be an instance of one of the following classes:
 	 * <code>String</code>, <code>Integer</code>, or <code>Boolean</code>.
 	 * Attributes previously set on the marker but not included in the given map
-	 * are considered to be removals. Setting the given map to be <code>null</code>
-	 * is equivalent to removing all marker attributes.
+	 * are considered to be removals. This includes the text of the message.
+	 * Setting the given map to be
+	 * <code>null</code> is equivalent to removing all marker attributes.
 	 * 
-	 * @param attributes a map of attribute names to attribute values 
-	 *		(key type : <code>String</code> value type : <code>String</code>, 
-	 *		<code>Integer</code>, or <code>Boolean</code>) or <code>null</code>
+	 * @param attributes
+	 * 		A map of attribute names to attribute values (key type :
+	 * 		<code>String</code> value type : <code>String</code>,
+	 * 		<code>Integer</code>, or <code>Boolean</code>) or <code>null</code>.
 	 */
 	public void setAttributes(Map<String, Object> attributes) {
 		_map.clear();
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/doc-files/faq.html b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/doc-files/faq.html
new file mode 100644
index 0000000..8096d0a
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/doc-files/faq.html
@@ -0,0 +1,40 @@
+<html>
+<head>
+<title>Validation Framework - Frequently Asked Questions</title>
+</head>
+<body>
+<h1>Validation Framework - Frequently Asked Questions</h1>
+<h3>How do I create Problem Markers?</h3>
+<p>There are three different ways to create problem markers.</p>
+<ol>
+	<li>Use the native support in the validation framework.</li>
+	<li>Manage your own markers.</li>
+	<li>Use the support in the previous version of the validation framework.</li>
+</ol>
+<p>The first approach, is the recommended approach.</p>
+
+<h4>1. Use the native support in the validation framework</h4>
+<p>After you have finished performing your validation, and are returning control back to
+the validation framework, add your messages into the 
+<a href="../ValidationResult.html">ValidationResult</a> by using
+the <a href="../ValidationResult.html#add(org.eclipse.wst.validation.ValidatorMessage)">add(ValidatorMessage message)</a> method.
+
+<h4>2. Manage your own markers</h4>
+
+<p>Create and remove your own markers. So that summary information can still be displayed, set the counts of any newly
+created markers in the <a href="../ValidationResult.html">ValidationResult</a> by using the setSeverityXXX() methods.
+For example, if this validation pass generated two error markers, you would call 
+<a href="../ValidationResult.html#setSeverityError(int)">setSeverityError(2)</a>. 
+</p>
+
+<h4>3. Use the support in the previous version of the validation framework</h4>
+
+<p>If you are porting a validator that used the previous version of the validation framework, and you wish to continue to use an
+<A HREF="../../../../../org/eclipse/wst/validation/internal/provisional/core/IReporter.html">IReporter</a> to
+report your markers, you can continue to do so.</p>
+<p>For this approach, use the
+<a href="../ValidationResult.html#getReporter(IProgressMonitor)">getReporter(IProgressMonitor&nbsp;monitor)</a> method,
+and return your messages through the IReporter. If this method is called it is assumed by the framework, 
+that this IReporter will be used as the only way of passing messages back to the framework. 
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ContentTypeWrapper.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ContentTypeWrapper.java
new file mode 100644
index 0000000..53dd045
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ContentTypeWrapper.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.validation.internal;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.content.IContentDescription;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
+
+/**
+ * Since it can be expense to determine a content type, we provide a wrapper so that we only
+ * need to get it once, as we validate a resource.
+ * @author karasiuk
+ *
+ */
+public class ContentTypeWrapper {
+	
+	private IContentType _type;
+	private boolean 	_initialized;
+	
+	public IContentType getContentType(IFile file){
+		if (_initialized)return _type;
+		
+		IContentDescription cd = null;
+		try {
+			cd = file.getContentDescription();
+		}
+		catch (CoreException e){
+			try {
+				file.refreshLocal(IResource.DEPTH_ZERO, null);
+				cd = file.getContentDescription();
+			}
+			catch (CoreException e2){
+				if (Tracing.isLogging())ValidationPlugin.getPlugin().handleException(e2);
+			}
+		}
+		if (cd == null)return null;
+		_type = cd.getContentType();
+		_initialized = true;
+		return _type;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DebugConstants.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DebugConstants.java
index 64342f8..a466241 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DebugConstants.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DebugConstants.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -25,5 +25,31 @@
 	
 	/** timings/tracefile - file that stores the trace events */
 	String TraceTimesFile = ValidationPlugin.PLUGIN_ID+"/timings/tracefile"; //$NON-NLS-1$
+	
+	/** 
+	 * timings/useDoubles - By default times that are written to the trace file are
+	 * in milliseconds for elapsed time and nanoseconds for cpu time. 
+	 * If you find these times easier to read as seconds as expressed by a double, 
+	 * the following flag can be turned on.
+	 */
+	String TraceTimesUseDoubles = ValidationPlugin.PLUGIN_ID+"/timings/useDoubles"; //$NON-NLS-1$
+	
+	/** 
+	 * extraValDetail - If extra detail is needed for a particular validator it's id can be specified here. 
+	 * For example, if you wanted more detail on the XML validator you would use org.eclipse.wst.xml.core.xml 
+	 */
+	String ExtraValDetail = ValidationPlugin.PLUGIN_ID+"/extraValDetail"; //$NON-NLS-1$
+	
+	/** 
+	 * filter/allExcept - If supplied, it is as if this is the only validator that gets defined via
+	 * the extension point. All the other validators are ignored.
+	 */
+	String FilterAllExcept = ValidationPlugin.PLUGIN_ID+"/filter/allExcept"; //$NON-NLS-1$
+	
+	/**
+	 * trace/level - The tracing level. If not supplied a default of zero is used. The higher the number the
+	 * more verbose the tracing.
+	 */
+	String TraceLevel = ValidationPlugin.PLUGIN_ID+"/trace/level"; //$NON-NLS-1$
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DependencyIndex.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DependencyIndex.java
index ca051ba..074593b 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DependencyIndex.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DependencyIndex.java
@@ -12,6 +12,7 @@
 
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
+import java.io.EOFException;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -76,6 +77,7 @@
 
 	public synchronized void add(String id, IResource dependent, IResource dependsOn) {
 		init();
+		if (dependsOn == null || dependent == null)return;
 		Depends d = getOrCreateDepends(dependent, dependsOn);
 		if (d.getValidators().add(id))_dirty = true;
 	}
@@ -83,7 +85,7 @@
 	private Depends getOrCreateDepends(IResource dependent, IResource dependsOn) {
 		Set<Depends> set = getSet(_dependents, dependent);
 		for (Depends d : set){
-			if (d.getDependsOn() == dependsOn)return d;
+			if (d.getDependsOn() != null && d.getDependsOn().equals(dependsOn)) return d;
 		}
 		Depends d = new Depends(dependent, dependsOn);
 		_dirty = true;
@@ -118,8 +120,7 @@
 			_dependents = new HashMap<IResource,Set<Depends>>(100);
 		}
 		else {
-			String errorMessage = "The following dependency could not be restored " + //$NON-NLS-1$
-				"because the following resource {0} could no longer be found."; //$NON-NLS-1$
+			String errorMessage = ValMessages.Error21; 
 			DataInputStream in = null;
 			try {
 				IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
@@ -127,6 +128,7 @@
 				
 				int version = in.readInt();
 				if (version != CurrentVersion){
+					error = true;
 					String msg = NLS.bind(ValMessages.ErrDependencyVersion, CurrentVersion);
 					throw new IllegalStateException(msg);
 				}
@@ -136,9 +138,8 @@
 				for (int i=0; i<numDependsOn; i++){
 					String v = in.readUTF();
 					IResource dependsOn = root.findMember(v);
-					if (v == null){
+					if (dependsOn == null){
 						Tracing.log(NLS.bind(errorMessage, v));
-						continue;
 					}
 					int numDependents = in.readInt();
 					for (int j=0; j<numDependents; j++){
@@ -146,32 +147,38 @@
 						IResource dependent = root.findMember(v);
 						if (dependent == null){
 							Tracing.log(NLS.bind(errorMessage, v));
-							continue;
 						}
 						int numVal = in.readInt();
 						for (int k=0; k<numVal; k++){
 							String id = in.readUTF();
-							add(id, dependent, dependsOn);
+							if (dependent != null && dependsOn != null)add(id, dependent, dependsOn);
 						}
 					}					
 				}				
 			}
+			catch (EOFException e){
+				Tracing.log("Unable to read the dependency index file because of EOF exception");  //$NON-NLS-1$
+			}
 			catch (IOException e){
 				error = true;
 				ValidationPlugin.getPlugin().handleException(e);
 			}
 			finally {
 				Misc.close(in);
-			}
-			
-			if (error)f.delete();
+				if (error){
+					_dependsOn = new HashMap<IResource,Set<Depends>>(100);
+					_dependents = new HashMap<IResource,Set<Depends>>(100);
+					f.delete();
+				}
+			}			
 		}
 	}
 
 	public synchronized void clear(IProject project) {
 		init();
 		for (Map.Entry<IResource,Set<Depends>> me : _dependents.entrySet()){
-			if (me.getKey().getProject() == project){
+			IResource key = me.getKey();
+			if (key != null && key.getProject() == project){
 				for (Depends d : me.getValue()){
 					if (d.delete())_dirty = true;
 				}
@@ -222,7 +229,7 @@
 		}
 	}
 		
-	public boolean isDependedOn(IResource resource) {
+	public synchronized boolean isDependedOn(IResource resource) {
 		init();
 		Set<Depends> set = _dependsOn.get(resource);
 		if (set == null || set.size() == 0)return false;
@@ -244,10 +251,11 @@
 	public synchronized void saving(ISaveContext context) throws CoreException {
 		if (!_dirty)return;
 		_dirty = false;
-		
+		boolean error = false;
 		DataOutputStream out = null;
+		File f = null;
 		try {
-			File f = getIndexLocation();
+			f = getIndexLocation();
 			out = new DataOutputStream(new FileOutputStream(f));
 			out.writeInt(CurrentVersion);
 			Map<String, Set<DependsResolved>> map = compress(_dependsOn);
@@ -266,10 +274,12 @@
 			}
 		}
 		catch (IOException e){
+			error = true;
 			ValidationPlugin.getPlugin().handleException(e);
 		}
-		finally {
+		finally {		
 			Misc.close(out);
+			if (error)f.delete();
 		}
 	}
 
@@ -280,17 +290,18 @@
 			for (Depends d : me.getValue()){
 				IPath path = d.getDependent().getFullPath();
 				if (path != null){
-					DependsResolved dr = new DependsResolved();
-					dr.resource = path.toPortableString();
-					if (d.getValidators().size() > 0){
-						dr.validators = d.getValidators();
+					DependsResolved dr = new DependsResolved(path.toPortableString(), d.getValidators());
+					if (dr.validators.size() > 0){
 						set.add(dr);
 					}
 				}				
 			}
 			if (set.size() > 0){
-				IPath path = me.getKey().getFullPath();
-				if (path != null)map.put(path.toPortableString(), set);
+				IResource res = me.getKey();
+				if (res != null){
+					IPath path = res.getFullPath();
+					if (path != null)map.put(path.toPortableString(), set);
+				}
 			}
 		}
 		return map;
@@ -308,16 +319,16 @@
 	 * @author karasiuk
 	 * 
 	 */
-	private static class Depends {
+	private final static class Depends {
 
 		/** The resource that is being depended on, for example a.xsd */
-		private IResource _dependsOn;
+		private final IResource _dependsOn;
 
 		/** The resource that is dependent, for example a.xml */
-		private IResource _dependent;
+		private final IResource _dependent;
 
 		/** The id's of the validators that have asserted the dependency. */
-		private Set<String> _validators;
+		private final Set<String> _validators;
 
 		public Depends(IResource dependent, IResource dependsOn) {
 			_dependent = dependent;
@@ -355,9 +366,15 @@
 		}
 }
 
-	private static class DependsResolved {
-		String 		resource;
-		Set<String> validators;
+	private final static class DependsResolved {
+		final String 		resource;
+		final Set<String> validators;
+		
+		DependsResolved(String resource, Set<String> validators){
+			this.resource = resource;
+			this.validators = validators;
+			
+		}
 	}
 
 
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DisabledResourceManager.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DisabledResourceManager.java
index 1b522fa..120180f 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DisabledResourceManager.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DisabledResourceManager.java
@@ -15,11 +15,8 @@
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ProjectScope;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 import org.osgi.service.prefs.BackingStoreException;
 
@@ -31,11 +28,8 @@
  */
 public class DisabledResourceManager implements IProjectChangeListener {
 	
-	private static DisabledResourceManager _me;
-	
 	public static DisabledResourceManager getDefault(){
-		if (_me == null)_me = new DisabledResourceManager();
-		return _me;
+		return Singleton.disabledResourceManager;
 	}
 	
 	private Set<IResource> _disabled = new HashSet<IResource>(100);
@@ -66,12 +60,7 @@
 		save(copy, resource.getProject());
 		_disabled = copy;		
 	}
-	
-	private IEclipsePreferences getPreferences(IProject project){
-		IScopeContext projectContext = new ProjectScope(project);
-		return projectContext.getNode(ValidationPlugin.PLUGIN_ID);
-	}
-	
+		
 	private void save(Set<IResource> disabled, IProject project) {
 		Serializer ser = new Serializer(200);
 		for (IResource resource : disabled){
@@ -79,7 +68,7 @@
 				ser.put(resource.getProjectRelativePath().toPortableString());
 			}
 		}
-		IEclipsePreferences prefs = getPreferences(project);
+		PreferencesWrapper prefs = PreferencesWrapper.getPreferences(project, null);
 		prefs.put(PrefConstants.disabled, ser.toString());
 		try {
 			prefs.flush();
@@ -92,7 +81,7 @@
 	private void load(IProject project){
 		Set<IResource> copy = new HashSet<IResource>(_disabled.size()+10);
 		copy.addAll(_disabled);
-		IEclipsePreferences prefs = getPreferences(project);
+		PreferencesWrapper prefs = PreferencesWrapper.getPreferences(project, null);
 		String disabled = prefs.get(PrefConstants.disabled, ""); //$NON-NLS-1$
 		if (disabled.length() > 0){
 			Deserializer des = new Deserializer(disabled);
@@ -153,5 +142,17 @@
 		}
 		_disabled = copy;
 	}
+	
+	/**
+	 * Store the singleton for the DisabledResourceManager. This approach is used to avoid having to synchronize the
+	 * DisabledResourceManager.getDefault() method.
+	 * 
+	 * @author karasiuk
+	 *
+	 */
+	private static class Singleton {
+		static DisabledResourceManager disabledResourceManager = new DisabledResourceManager();
+	}
+
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DisabledValidatorManager.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DisabledValidatorManager.java
index 4afe15e..8a141c5 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DisabledValidatorManager.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/DisabledValidatorManager.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
 package org.eclipse.wst.validation.internal;
 
 import java.util.Collections;
@@ -5,6 +15,7 @@
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
@@ -18,20 +29,15 @@
  * @author karasiuk
  *
  */
-public class DisabledValidatorManager implements IValChangedListener {
+public final class DisabledValidatorManager implements IValChangedListener {
 	
-	private static DisabledValidatorManager _me;
-	private static int _counter;
+	private static final AtomicInteger _counter = new AtomicInteger();
 	private static final int CacheSize = 5;
 	
-	private Map<IResource, LRUSet> _map = Collections.synchronizedMap(new HashMap<IResource, LRUSet>(5));
+	private final Map<IResource, LRUSet> _map = Collections.synchronizedMap(new HashMap<IResource, LRUSet>(5));
 	
 	public static DisabledValidatorManager getDefault(){
-		DisabledValidatorManager me = _me;
-		if (me != null)return me;
-		me = new DisabledValidatorManager();
-		_me = me;
-		return me;
+		return Singleton.disabledValidatorManager;
 	}
 	
 	private DisabledValidatorManager(){
@@ -48,7 +54,7 @@
 	public Set<Validator> getDisabledValidatorsFor(IResource resource) {
 		LRUSet set = _map.get(resource);
 		if (set != null){
-			set.counter = _counter++;
+			set.counter = _counter.getAndIncrement();
 			return set.validators;
 		}
 		
@@ -71,18 +77,18 @@
 			_map.remove(oldest);
 		}
 		LRUSet set = new LRUSet();
-		set.counter = _counter++;
+		set.counter = _counter.getAndIncrement();
 		set.validators = vset;
 		_map.put(resource, set);		
 	}
 
 
-	private static class LRUSet {
+	private final static class LRUSet {
 		int counter;
 		Set<Validator> validators;
 	}
 	
-	private static class DisabledValidationFinder implements IValidatorVisitor {
+	private final static class DisabledValidationFinder implements IValidatorVisitor {
 		
 		private Map<String, Validator> _validators;
 
@@ -112,5 +118,18 @@
 	public void validatorsForProjectChanged(IProject project, boolean configSettingChanged) {
 		_map.clear();
 	}
+	
+	
+	/**
+	 * Store the singleton for the DisabledValidatorManager. This approach is used to avoid having to synchronize the
+	 * DisabledValidatorManager.getDefault() method.
+	 * 
+	 * @author karasiuk
+	 *
+	 */
+	private final static class Singleton {
+		final static DisabledValidatorManager disabledValidatorManager = new DisabledValidatorManager();
+	}
+
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ExtensionConstants.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ExtensionConstants.java
index 7b2a3ab..6649d59 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ExtensionConstants.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ExtensionConstants.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * Copyright (c) 2005, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -20,6 +20,9 @@
 	/** validatorV2 - extension point for registering validators that use version 2 of the validation framework. */
 	String validator = "validatorV2"; //$NON-NLS-1$
 	
+	/** exclude - extension point for adding extra exclusion filters to a validator. */ 
+	String excludeExtension = "exclude"; //$NON-NLS-1$
+	
 	/** build - is the validator enabled by default for build based validations? true or false */
 	String build = "build"; //$NON-NLS-1$
 	
@@ -61,6 +64,27 @@
 	/** rules - a group of inclusion or exclusion rules. */
 	String rules = "rules"; //$NON-NLS-1$
 	
+	/** rules - extension point to declare a validator group */
+	String group = "validatorGroup"; //$NON-NLS-1$
+	
+	/** removeV2Validator - extension point to remove a V2 validator */
+	String removedValidatorExtension = "removeV2Validator"; //$NON-NLS-1$
+	
+
+	interface Group {
+		/*
+		 * The group sub-element for either the validatorGroup or validator
+		 * extension points.
+		 */
+		String elementGroup = "group"; //$NON-NLS-1$
+		// a validator group identifier
+		String attId = "id"; //$NON-NLS-1$
+		// the listener sub-element
+		String elementListener = "listener"; //$NON-NLS-1$
+		// the group listener class name
+		String attClass = "class"; //$NON-NLS-1$
+	}
+	
 	/** Different types of rules for filtering validation. */
 	interface Rule {
 		
@@ -78,6 +102,9 @@
 		
 		/** contentType - filter by content type. */
 		String contentType = "contentType"; //$NON-NLS-1$
+		
+		/** pattern - filter paths by regular expression. */
+		String pattern = "pattern"; //$NON-NLS-1$
 	}
 	
 	/** Rule attributes */
@@ -101,6 +128,9 @@
 		/** name - a file name. */
 		String name = "name"; //$NON-NLS-1$
 		
+		/** regex - a Java regular expression. */
+		String regex = "regex"; //$NON-NLS-1$
+		
 		/** 
 		 * type - the type of file to be matched:
 		 * <ul>
@@ -110,6 +140,9 @@
 		 * </ul>
 		 */
 		String fileType = "type"; //$NON-NLS-1$
+		
+		/** version - facet version expression. See the facet framework for the exact syntax of this expression. */
+		String version = "version"; //$NON-NLS-1$
 	}
 	
 	interface FileType {
@@ -141,6 +174,15 @@
 		String sevIgnore = "ignore";  //$NON-NLS-1$
 	}
 	
+	interface Exclude {
+		/** id - fully qualified id of the validator that is being extended. */
+		String id = "id"; //$NON-NLS-1$
+	}
+	
+	interface RemovedValidator {
+		/** validatorId - the validator ID. The String represents the validator that will be removed */
+		String validatorIDAttr = "validatorId"; //$NON-NLS-1$
+	}
 	/** true */
 	String True = "true"; //$NON-NLS-1$
 	
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ExtensionValidators.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ExtensionValidators.java
index 5b74568..090f4af 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ExtensionValidators.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ExtensionValidators.java
@@ -12,6 +12,8 @@
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 
 import org.eclipse.core.resources.IProject;
@@ -23,29 +25,26 @@
  * @author karasiuk
  *
  */
-public class ExtensionValidators {
+public final class ExtensionValidators {
 	private static ExtensionValidators _me;
 	
 	/** All the registered validators. The key is the validator id and the value is the validator. */
-	private Map<String, Validator> _map;
+	private final Map<String, Validator> _map;
 	
 	public synchronized static ExtensionValidators instance(){
 		if (_me == null){
 			_me = new ExtensionValidators();
-			_me.load();
 		}
 		return _me;
 	}
 
-	private ExtensionValidators(){};
-	
-	private void load() {
+	private ExtensionValidators(){
 		_map = new HashMap<String, Validator>(100);
 		for (Validator v : ValidatorExtensionReader.getDefault().process()){
 			_map.put(v.getId(), v);
-		}
+		}		
 	}
-
+	
 	/**
 	 * Answer all the v2 validators that have been defined by the extension point. This is the real
 	 * map (not a copy).
@@ -81,19 +80,31 @@
 		Map<String, Validator> map = new HashMap<String, Validator>();
 		map.putAll(_map);
 		
+		for (Validator v : getV1Validators(project))map.put(v.getId(), v);
+		
+		return map;
+	}
+	
+	/**
+	 * Answer the v1 validators that have been defined just on this project.
+	 * @param project
+	 * @return
+	 */
+	List<Validator> getV1Validators(IProject project){
+		List<Validator> list = new LinkedList<Validator>();
 		try {
 			ProjectConfiguration pc = new ProjectConfiguration(project);
 			pc.resetToDefault();
 			for (ValidatorMetaData vmd : pc.getValidators()){
 				Validator v = Validator.create(vmd, pc, project);
-				map.put(v.getId(), v);
+				list.add(v);
 			}
 		}
 		catch (InvocationTargetException e){
 			ValidationPlugin.getPlugin().handleException(e);
 		}
 
-		return map;
+		return list;
 	}
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/IProjectChangeListener.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/IProjectChangeListener.java
index 179f03a..6788534 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/IProjectChangeListener.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/IProjectChangeListener.java
@@ -26,6 +26,9 @@
 	/** 8 - Something in the project description has changed. For example, a Nature was added. */
 	int ProjectChanged = 8;
 	
+	/** 16 - The project has been added. */
+	int ProjectAdded = 16;
+	
 	/**
 	 * The project has changed in some way.
 	 * 
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/MarkerManager.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/MarkerManager.java
index 4307902..8776525 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/MarkerManager.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/MarkerManager.java
@@ -31,13 +31,10 @@
  */
 public class MarkerManager {
 	
-	private static MarkerManager _me;
-	
 	private Set<String> _markers = new HashSet<String>(50);
 	
 	public static MarkerManager getDefault(){
-		if (_me == null)_me = new MarkerManager();
-		return _me;
+		return Singleton.markerManager;
 	}
 	
 	private MarkerManager(){
@@ -60,7 +57,12 @@
 		
 		String id = validator.getMarkerId();
 		if (id != null){
-			resource.deleteMarkers(id, true, IResource.DEPTH_ZERO);
+			try {
+				resource.deleteMarkers(id, true, IResource.DEPTH_ZERO);
+			}
+			catch (CoreException e){
+				// Nothing that we can do. This is not worth logging.
+			}
 			return;
 		}
 				
@@ -106,11 +108,26 @@
 		try {
 			hook(resource); 
 			IMarker[] markers = resource.findMarkers(null, true, depth);
+			String markerType;
 			for (IMarker marker : markers){
-				if (_markers.contains(marker.getType())){
+				try {
+					markerType = marker.getType();
+				}
+				catch (CoreException e)
+				{
+					//ignore the marker
+					return;
+				}
+				if (_markers.contains(markerType)){
 					long createTime = marker.getCreationTime();
-//					long diff = createTime - operationStartTime;
-					if (createTime < operationStartTime)marker.delete();
+					if (createTime < operationStartTime){
+						try {
+							marker.delete();
+						}
+						catch (CoreException e){
+							// eat it - there is nothing we can do about this.
+						}
+					}
 				}
 			}
 		}
@@ -160,10 +177,11 @@
 	 * @param resource
 	 */
 	public void hook(IResource resource){
-//		if (resource.getName().equals("first.test2x")){
+//		String name = "first.test2x";
+//		if (resource.getName().equals(name)){
 //			String markers = Misc.listMarkers(resource);
-//			Tracing.log("MarkerManager has hooked: first.test2x"); //$NON-NLS-1$
-//			RuntimeException rt = new RuntimeException("hooking first.test2x");
+//			Tracing.log("MarkerManager has hooked: ", name); //$NON-NLS-1$
+//			RuntimeException rt = new RuntimeException("hooking " + name);
 //			rt.printStackTrace();
 //		}
 	}
@@ -171,5 +189,17 @@
 	public Set<String> getMarkers() {
 		return _markers;
 	}
+	
+	/**
+	 * Store the singleton for the MarkerManager. This approach is used to avoid having to synchronize the
+	 * MarkerManager.getDefault() method.
+	 * 
+	 * @author karasiuk
+	 *
+	 */
+	private static class Singleton {
+		static MarkerManager markerManager = new MarkerManager();
+	}
+
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/Misc.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/Misc.java
index bf9beeb..ceafc41 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/Misc.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/Misc.java
@@ -29,7 +29,7 @@
  * @author karasiuk
  *
  */
-public class Misc {
+public final class Misc {
 	
 	public static void close(InputStream in){
 		if (in == null)return;
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/PerformanceMonitor.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/PerformanceMonitor.java
index 56f4fd5..f00e93d 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/PerformanceMonitor.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/PerformanceMonitor.java
@@ -14,6 +14,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.text.DateFormat;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -34,16 +35,21 @@
 	 * Create a performance monitor.
 	 * 
 	 * @param traceTimes
-	 *            should the monitor be turned on?
+	 *            Should the monitor be turned on?
 	 * @param file
-	 *            should the events be logged to a file. If this is null or the
+	 *            Should the events be logged to a file. If this is null or the
 	 *            empty string the events will be written to stderr. Otherwise
 	 *            the events are appended to a file with this name.
+	 * 
+	 * @param logInSeconds
+	 *            Set this to true if you want the times that are logged in the
+	 *            trace file normalized to seconds. Otherwise the default units are used,
+	 *            milliseconds for elapsed time and nanoseconds for cpu time.
 	 */
-	public static PerformanceMonitor create(boolean traceTimes, String file){
+	public static PerformanceMonitor create(boolean traceTimes, String file, boolean logInSeconds){
 		PerformanceMonitor pm = null;
 		if (file == null || file.length() == 0)pm = new PerformanceMonitor();
-		else pm = new ToFile(file);
+		else pm = new ToFile(file, logInSeconds);
 		
 		if (traceTimes)pm.setCollectionLevel(CollectionLevel.Default);
 		
@@ -94,19 +100,34 @@
 	public static class ToFile extends PerformanceMonitor {
 		
 		private String 		_fileName;
+		private boolean		_logInSeconds;
+		
 		private PrintWriter _pw;
 		private static final String Comma=","; //$NON-NLS-1$
+		private static DateFormat 	_df = new SimpleDateFormat("HH:mm:ss.SSSS"); //$NON-NLS-1$
 		
-		private ToFile(String fileName){
+		private ToFile(String fileName, boolean logInSeconds){
 			_fileName = fileName;
+			_logInSeconds = logInSeconds;
 		}
 		
 		@Override
 		public synchronized void add(PerformanceCounters pc) {
 			try {
 				PrintWriter pw = getWriter();
-				pw.println(pc.getValidatorId() + Comma + pc.getNumberInvocations() +
-					Comma+pc.getElapsedTime()+Comma+pc.getCpuTime());
+				pw.print(_df.format(pc.getWhen()) + Comma + 
+					pc.getValidatorId() + Comma + pc.getNumberInvocations() + Comma);
+				if (_logInSeconds){
+					double sec = ((double)pc.getElapsedTime()) / 1000.0;
+					pw.print(sec);
+					pw.print(Comma);
+					sec = ((double)pc.getCpuTime()) / 1000000000.0;
+					pw.print(sec);
+				}
+				else {
+					pw.print(pc.getElapsedTime()+Comma+pc.getCpuTime());
+				}
+				pw.println(Comma + pc.getResourceName());
 				pw.flush();
 			}
 			catch (IOException e){
@@ -120,6 +141,10 @@
 				DateFormat df = DateFormat.getDateTimeInstance();
 				_pw.println("# " + NLS.bind(ValMessages.LogSession,  //$NON-NLS-1$
 					df.format(new Date(System.currentTimeMillis()))));
+				if (_logInSeconds)
+					_pw.println("# when, id, invocation count, elapsed time (seconds), cpu time (seconds), resource"); //$NON-NLS-1$
+				else 
+					_pw.println("# when, id, invocation count, elapsed time (ms), cpu time (ns), resource"); //$NON-NLS-1$
 			}
 			return _pw;
 			
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/PreferencesWrapper.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/PreferencesWrapper.java
new file mode 100644
index 0000000..0f3a5e7
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/PreferencesWrapper.java
@@ -0,0 +1,431 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.validation.internal;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicReference;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.wst.validation.ValidationFramework;
+import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+/**
+ * The subset of the IEclipsePreferences interface that the framework needs to
+ * be able to persist preferences.
+ * @author karasiuk
+ *
+ */
+public abstract class PreferencesWrapper {
+	
+	private static final WrapperManger _manager = new WrapperManger();
+	
+	/**
+	 * Answer the preferences for the project. If project is null answer the global preferences.
+	 * @param project
+	 * @param persistent if null the default preferences are returned, if True the persisted 
+	 * preferences are return and if False the transient preferences are returned.
+	 * @return
+	 */
+	public static PreferencesWrapper getPreferences(IProject project, Boolean persistent){
+		return _manager.get(project, persistent);
+	}
+		
+	/**
+	 * These are the names of the node entries.
+	 * @return
+	 * @throws BackingStoreException
+	 */
+	public abstract String[] childrenNames() throws BackingStoreException;
+	
+	public void flush() throws BackingStoreException {
+	}
+	
+	public abstract boolean getBoolean(String key, boolean def);
+	
+	public abstract String get(String key, String def);
+	
+	public abstract int getInt(String key, int def);
+	
+	public abstract long getLong(String key, long def);
+
+	public abstract String[] keys() throws BackingStoreException;
+
+	public boolean isPersistent(){
+		return false;
+	}
+
+	public boolean isTransient(){
+		return false;
+	}
+	
+	public abstract void put(String key, String value);
+	
+	public abstract void putBoolean(String key, boolean value);
+	
+	public abstract void putLong(String key, long value);
+	
+	public abstract void putInt(String key, int value);
+	
+	/**
+	 * Unlike the more sophisticated org.osgi.service.prefs.Preferences support, 
+	 * this is currently limited to simple node names.
+	 */
+	public abstract PreferencesWrapper node(String nodeName);
+	
+	public abstract boolean nodeExists();
+	
+	public abstract boolean nodeExists(String pathName)  throws BackingStoreException;
+	
+	public abstract void removeNode()  throws BackingStoreException;
+
+
+public final static class PreferencesWrapperPersistent extends PreferencesWrapper {
+	
+	private final Preferences _preferences;
+	
+	public PreferencesWrapperPersistent(Preferences preferences){
+		_preferences = preferences;
+	}
+	
+	@Override
+	public String[] childrenNames() throws BackingStoreException {
+		return _preferences.childrenNames();
+	}
+	
+	public void flush() throws BackingStoreException {
+		_preferences.flush();
+	}
+	
+	@Override
+	public String get(String key, String def) {
+		return _preferences.get(key, def);
+	}
+	
+	@Override
+	public boolean getBoolean(String key, boolean def) {
+		return _preferences.getBoolean(key, def);
+	}
+	
+	@Override
+	public int getInt(String key, int def) {
+		return _preferences.getInt(key, def);
+	}
+	
+	@Override
+	public long getLong(String key, long def) {
+		return _preferences.getLong(key, def);
+	}
+	
+	@Override
+	public String[] keys() throws BackingStoreException {
+		return _preferences.keys();
+	}
+	
+	@Override
+	public boolean isPersistent() {
+		return true;
+	}
+	
+	@Override
+	public void put(String key, String value) {
+		_preferences.put(key, value);
+	}
+	
+	@Override
+	public PreferencesWrapper node(String path) {
+		Preferences prefs = _preferences.node(path);
+		return new PreferencesWrapperPersistent(prefs);
+	}
+	
+	@Override
+	public boolean nodeExists() {
+		try {
+			return nodeExists(""); //$NON-NLS-1$
+		}
+		catch (BackingStoreException e){
+		
+		}
+		return false;
+	}
+	
+	@Override
+	public boolean nodeExists(String pathName) throws BackingStoreException  {
+		return _preferences.nodeExists(pathName);
+	}
+	
+	public void putBoolean(String key, boolean value) {
+		_preferences.putBoolean(key, value);	
+	}
+	
+	public void putLong(String key, long value){
+		_preferences.putLong(key, value);
+	}
+	
+	@Override
+	public void putInt(String key, int value) {
+		_preferences.putInt(key, value);
+	}
+	
+	@Override
+	public void removeNode() throws BackingStoreException {
+		_preferences.removeNode();
+	}
+}
+
+public final static class PreferencesWrapperTransient extends PreferencesWrapper {
+	
+	private final PreferencesWrapperTransient _parent;
+	private final Map<String, String> _children = Collections.synchronizedMap(new HashMap<String, String>(10));
+	private final Map<String, PreferencesWrapperTransient> _nodes = Collections.synchronizedMap(new HashMap<String, PreferencesWrapperTransient>(10));
+	
+	public PreferencesWrapperTransient(PreferencesWrapperTransient parent){
+		_parent = parent;
+	}
+	
+	public PreferencesWrapperTransient(PreferencesWrapper pw, PreferencesWrapperTransient parent) {
+		_parent = parent;
+		try {
+			for (String key : pw.keys()){
+				put(key, pw.get(key, null));
+			}
+			
+			
+			for (String nodeName : pw.childrenNames()){
+				PreferencesWrapper p = pw.node(nodeName);
+				PreferencesWrapperTransient pwt = new PreferencesWrapperTransient(p, this);
+				_nodes.put(nodeName, pwt);
+			}
+		}
+		catch (BackingStoreException e){
+			
+		}
+	}
+
+	@Override
+	public String[] childrenNames() throws BackingStoreException {
+		Set<String> keys = _nodes.keySet();
+		String names[] = new String[keys.size()];
+		keys.toArray(names);
+		return names;
+	}
+	
+	@Override
+	public String get(String key, String def) {
+		String value = _children.get(key);
+		if (value != null)return value;
+		return def;
+	}
+	
+	@Override
+	public boolean getBoolean(String key, boolean def) {
+		String value = _children.get(key);
+		if (value == null)return def;
+		value = value.toLowerCase();
+		if ("true".equals(value))return true; //$NON-NLS-1$
+		if ("false".equals(value))return false; //$NON-NLS-1$
+		return def;
+	}
+	
+	@Override
+	public int getInt(String key, int def) {
+		String value = _children.get(key);
+		if (value == null)return def;
+		try {
+			return Integer.parseInt(value);
+		}
+		catch (NumberFormatException e){
+		}
+		return def;
+	}
+	
+	@Override
+	public long getLong(String key, long def) {
+		String value = _children.get(key);
+		if (value == null)return def;
+		try {
+			return Long.parseLong(value);
+		}
+		catch (NumberFormatException e){
+		}
+		return def;
+	}
+	
+	@Override
+	public boolean isTransient() {
+		return true;
+	}
+	
+	@Override
+	public synchronized String[] keys() throws BackingStoreException {
+		String[] keys = new String[_children.size()];
+		_children.keySet().toArray(keys);
+		return keys;
+	}
+	
+	@Override
+	public synchronized PreferencesWrapper node(String name) {
+		PreferencesWrapperTransient pw  = _nodes.get(name);
+		if (pw != null)return pw;
+		pw = new PreferencesWrapperTransient(this);
+		_nodes.put(name, pw);
+		return pw;
+	}
+	
+	@Override
+	public boolean nodeExists() {
+		return true;
+	}
+	
+	@Override
+	public boolean nodeExists(String key) throws BackingStoreException {
+		PreferencesWrapperTransient pw = _nodes.get(key);
+		if (pw != null)return true;
+		return false;
+	}
+	
+	@Override
+	public void put(String key, String value) {
+		_children.put(key, value);
+	}
+	
+	@Override
+	public void putBoolean(String key, boolean bool) {
+		String value = bool ? "true" : "false";  //$NON-NLS-1$//$NON-NLS-2$
+		_children.put(key, value);
+	}
+	
+	@Override
+	public void putInt(String key, int value) {
+		_children.put(key, String.valueOf(value));
+	}
+	
+	@Override
+	public void putLong(String key, long value) {
+		_children.put(key, String.valueOf(value));
+	}
+	
+	@Override
+	public void removeNode() throws BackingStoreException {
+		if (_parent == null)return;
+		_parent.removeNode(this);
+	}
+	
+	private synchronized void removeNode(PreferencesWrapperTransient node){
+		String key = null;
+		for (Map.Entry<String, PreferencesWrapperTransient> me : _nodes.entrySet()){
+			if (me.getValue().equals(node)){
+				key = me.getKey();
+				break;
+			}
+		}
+		if (key != null)_nodes.remove(key);
+	}
+}
+
+private final static class WrapperManger implements IProjectChangeListener {
+	
+	private final Map<IProject, PreferencesWrapper> _map = new HashMap<IProject, PreferencesWrapper>(20); 
+	private final AtomicReference<PreferencesWrapper> _global = new AtomicReference<PreferencesWrapper>();
+	
+	private WrapperManger(){
+		EventManager.getManager().addProjectChangeListener(this);
+	}
+	
+	/**
+	 * Currently this object never goes away, but if that was ever to change then we would need to dispose it.
+	 */
+	@Override
+	protected void finalize() throws Throwable {
+		dispose();
+	}
+	
+	public void dispose(){
+		EventManager.getManager().removeProjectChangeListener(this);
+	}
+
+	public PreferencesWrapper get(IProject project, Boolean persistent) {
+		if (project == null)return globalPreferences(persistent);
+		PreferencesWrapper pw = null;
+		synchronized(_map){
+			pw = _map.get(project);
+		}
+		
+		if (pw != null && (persistent == null || persistent == pw.isPersistent()))return pw;
+		
+		if (pw == null)pw = new PreferencesWrapperPersistent(ValidationPlugin.getPreferences(project));
+		if (persistent != null && persistent && pw.isTransient())pw = new PreferencesWrapperPersistent(ValidationPlugin.getPreferences(project));
+		if (persistent != null && !persistent && pw.isPersistent())pw = new PreferencesWrapperTransient(pw, null);
+		
+		synchronized(_map){
+			_map.put(project, pw);
+		}
+		
+		return pw;
+	}
+
+	/**
+		 * Answer the appropriate global preferences.
+		 * 
+		 * @param persistent
+		 *            If null then answer the current saved global preferences,
+		 *            creating a new persistent one if there is none. If True,
+		 *            then ensure that the preferences are persistent. If False,
+		 *            ensure that the preferences are transient.
+		 * @return
+		 */
+	private PreferencesWrapper globalPreferences(Boolean persistent) {
+		PreferencesWrapper pw = _global.get();
+		
+		while(pw == null){
+			PreferencesWrapper newPW = createGlobal(persistent);
+			if (_global.compareAndSet(null, newPW))pw = newPW;
+			else pw = _global.get();
+		}
+		
+		while (persistent != null && !persistent && !pw.isTransient()){
+			PreferencesWrapper newPW = new PreferencesWrapperTransient(pw, null);
+			if (_global.compareAndSet(pw, newPW))pw = newPW;
+			else pw = _global.get();
+		}
+		
+		while (persistent != null && persistent && !pw.isPersistent()){
+			PreferencesWrapper newPW = new PreferencesWrapperPersistent(ValidationFramework.getDefault().getPreferenceStore());
+			if (_global.compareAndSet(pw, newPW))pw = newPW;
+			else pw = _global.get();			
+		}
+		return pw;
+	}
+	
+	private PreferencesWrapper createGlobal(Boolean persistent){
+		PreferencesWrapper pw = new PreferencesWrapperPersistent(ValidationFramework.getDefault().getPreferenceStore());
+		if (persistent == null || persistent)return pw;
+		return new PreferencesWrapperTransient(pw, null);
+	}
+
+	public void projectChanged(IProject project, int type) {
+		int interested = IProjectChangeListener.ProjectClosed | IProjectChangeListener.ProjectDeleted;
+		if ((type & interested) != 0){
+			synchronized (_map) {
+				_map.remove(project);
+			}
+		}
+		
+	}
+	
+}
+
+
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/Tracing.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/Tracing.java
index d842a3d..77e49cb 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/Tracing.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/Tracing.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -14,6 +14,10 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 
 /**
@@ -21,33 +25,75 @@
  * @author karasiuk
  *
  */
-public class Tracing {
+public final class Tracing {
 	
-	private static DateFormat 	_df = new SimpleDateFormat("HH:mm:ss.SSSS"); //$NON-NLS-1$
-	private static boolean		_forceLogging;
-	private static Boolean		_traceMatches;
-	private static Boolean		_traceV1;
+	private final static DateFormat _df = new SimpleDateFormat("HH:mm:ss.SSSS"); //$NON-NLS-1$
+	private final static boolean	_isLogging = ValidationPlugin.getPlugin().isDebugging();
+	private final static boolean	_traceMatches = Misc.debugOptionAsBoolean(DebugConstants.TraceMatches);
+	private final static boolean	_traceV1 = Misc.debugOptionAsBoolean(DebugConstants.TraceV1);
+	private final static String		_extraValDetail = Platform.getDebugOption(DebugConstants.ExtraValDetail);
+	private final static int 		_tracingLevel;
+	
+	private final static String		_filter = Platform.getDebugOption(DebugConstants.FilterAllExcept);
+	
+	static {
+		String traceLevel = Platform.getDebugOption(DebugConstants.TraceLevel);
+		int level = 0;
+		if (traceLevel != null){
+			try {
+				level = Integer.parseInt(traceLevel);
+			}
+			catch (Exception e){
+			}
+		}
+		_tracingLevel = level;
+	}
+	
+	/**
+	 * Answer true if the filters allow this validator to be enabled. Normally this method will answer true.
+	 * It is only when filters are activated via the debugging options, that this method might return false.
+	 * This is used to aid in debugging by making it look like only one validator has been registered.
+	 * 
+	 * @param validatorId the validator id.
+	 * @return true if the validator should be registered via an extension point.
+	 */
+	public static boolean isEnabled(String validatorId){
+		if (_filter == null || _filter.length() == 0)return true;
+		return (_filter.equals(validatorId));		
+	}
 	
 	/**
 	 * Are we in logging/debugging mode?
 	 */
 	public static boolean isLogging(){
-		return _forceLogging || ValidationPlugin.getPlugin().isDebugging();
+		return _isLogging;
+	}
+	
+	/**
+	 * Answer true if we are in logging mode, and if the current logging level is greater than or
+	 * equal to level.
+	 * @param level The logging level that we are testing. The higher the level the more verbose
+	 * the tracing.
+	 */
+	public static boolean isLogging(int level){
+		if (_isLogging){
+			return _tracingLevel >= level;
+		}
+		return false;
 	}
 	
 	public static boolean isTraceMatches(){
-		if (_traceMatches == null){
-			_traceMatches = Misc.debugOptionAsBoolean(DebugConstants.TraceMatches);
-		}
 		return _traceMatches;
 	}
 	
 	public static boolean isTraceV1(){
-		if (_traceV1 == null){
-			_traceV1 = Misc.debugOptionAsBoolean(DebugConstants.TraceV1);
-		}
 		return _traceV1;
 	}
+	
+	public static boolean matchesExtraDetail(String validatorId){
+		if (_extraValDetail == null)return false;
+		return _extraValDetail.equals(validatorId);
+	}
 
 	/**
 	 * Write a line to the console for debugging, if in debugging mode.
@@ -57,10 +103,10 @@
 		if (isLogging())write(line);
 	}
 	
-	public static void log(String... parts){
+	public static void log(Object... parts){
 		if (isLogging()){
 			StringBuffer b = new StringBuffer(200);
-			for (String p : parts)b.append(p);
+			for (Object p : parts)b.append(p);
 			write(b.toString());
 		}
 	}
@@ -75,7 +121,7 @@
 
 	public static String timestampIt(String line){
 		Date date = new Date();
-		long thread = Thread.currentThread().getId();
+		String thread = Thread.currentThread().getName();
 		return _df.format(date) + " " + thread + " " + line;  //$NON-NLS-1$//$NON-NLS-2$		
 	}
 
@@ -88,14 +134,75 @@
 	}
 
 	/**
-	 * Force the logging to be turned on. Normally logging is turned on via -debug options. However
-	 * the logging can be forced to be on by setting this to true. (Setting this to false doesn't force
-	 * the logging to be turned off).
+	 * This method doesn't do anything, and will be removed.
 	 * 
-	 * @param forceLogging
+	 * @deprecated
 	 */
 	public static void setForceLogging(boolean forceLogging) {
-		_forceLogging = forceLogging;
+	}
+	
+	/**
+	 * Log up to maxNumber deltas to the log.
+	 * @param delta The deltas to log.
+	 * @param maxNumber The maximum number of deltas to log.
+	 */
+	public static void logResourceDeltas(IResourceDelta delta, int maxNumber){
+		if (!isLogging())return;
+		if (delta == null)Tracing.log("  ResourceDelta: null"); //$NON-NLS-1$
+		else {
+			DeltaLogger logger = new DeltaLogger(maxNumber);
+			try {
+				delta.accept(logger);
+				if (logger.getCount() == 0)Tracing.log("  ResourceDelta: no deltas"); //$NON-NLS-1$
+			}
+			catch (CoreException e){
+				// eat it
+			}
+		}
+	}
+	
+	/**
+	 * A debugging class that prints out some resource delta's.
+	 * @author karasiuk
+	 *
+	 */
+	private final static class DeltaLogger implements IResourceDeltaVisitor {
+		
+		private final int 	_max;
+		private int 		_count;
+		public int getCount() {
+			return _count;
+		}
+
+		private StringBuffer _b = new StringBuffer(200);
+		
+		public DeltaLogger(int max){
+			_max = max;
+		}
+
+		public boolean visit(IResourceDelta delta) throws CoreException {
+			if (_count++ > _max)return false;
+			int kind = delta.getKind();
+			String type = "unknown"; //$NON-NLS-1$
+			switch (kind){
+			case IResourceDelta.ADDED:
+				type = "Added"; //$NON-NLS-1$
+				break;
+			case IResourceDelta.CHANGED:
+				type = "Changed"; //$NON-NLS-1$
+				break;
+			case IResourceDelta.REMOVED:
+				type = "Removed"; //$NON-NLS-1$
+				break;				
+			}
+			_b.append("  ResourceDelta "); //$NON-NLS-1$
+			_b.append(type);
+			_b.append(' ');
+			_b.append(delta.getResource());
+			Tracing.log(_b);
+			return true;
+		}
+		
 	}
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java
index 32884ef..e40b2ba 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,10 +10,16 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal;
 
+import java.text.MessageFormat;
+import java.util.LinkedList;
+import java.util.Queue;
+
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceDelta;
 import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.IResourceProxy;
+import org.eclipse.core.resources.IResourceProxyVisitor;
 import org.eclipse.core.resources.IResourceVisitor;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.resources.WorkspaceJob;
@@ -21,10 +27,15 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.wst.validation.DependentResource;
+import org.eclipse.wst.validation.Friend;
 import org.eclipse.wst.validation.IDependencyIndex;
+import org.eclipse.wst.validation.ValidationEvent;
 import org.eclipse.wst.validation.ValidationFramework;
 import org.eclipse.wst.validation.ValidationState;
+import org.eclipse.wst.validation.Validator;
+import org.eclipse.wst.validation.internal.model.IValidatorVisitor;
 import org.eclipse.wst.validation.internal.operations.ValidationBuilder;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 
@@ -34,33 +45,41 @@
  * <p>
  * This is the main class for supporting build based validation. When triggered it looks at all of the
  * resource changes and determines what needs to be validated. 
+ * </p>
  * @author karasiuk
  *
  */
-public class ValBuilderJob extends WorkspaceJob implements IResourceDeltaVisitor, IResourceVisitor {
+public final class ValBuilderJob extends WorkspaceJob {
 	
-	/** The project that is being built. */
-	private IProject 			_project;
+	private static ValBuilderJob _job;
+	private static Queue<ValidationRequest> _work = new LinkedList<ValidationRequest>();
 	
-	/** The resource delta that triggered the build, it will be null for a full build. */
-	private IResourceDelta		_delta;
-	
-	private ValOperation		_operation;
-	
-	/** 
-	 * The kind of build.
-	 * 
-	 *  @see org.eclipse.core.resources.IncrementalProjectBuilder
-	 */
-	private int					_buildKind;
-	
-	/** The monitor to use while running the build. */
-	private IProgressMonitor	_monitor;
-	
+	private final ValOperation _operation = new ValOperation();
+		
 	/** The types of changes we are interested in. */
 	private final static int	InterestedFlags = IResourceDelta.CONTENT | IResourceDelta.ENCODING |
 		IResourceDelta.MOVED_FROM | IResourceDelta.MOVED_TO;
 	
+	public static synchronized void validateProject(IProject project, IResourceDelta delta, int buildKind){
+		ValidationRequest request = new ValidationRequest(project, delta, buildKind);
+		if (_job == null){
+			_job = new ValBuilderJob();
+			_job.add(request);
+			_job.schedule();
+		}
+		else {
+			_job.add(request);
+		}
+	}
+	
+	private static synchronized ValidationRequest getRequest(){
+		ValidationRequest request = _work.poll();
+		if (request == null){
+			_job = null;
+		}
+		return request;
+	}
+	
 	/**
 	 * Each validation run is done in it's own job.
 	 * 
@@ -77,14 +96,15 @@
 	 * @param operation some global context for the validation operation
 	 * 
 	 */
-	public ValBuilderJob(IProject project, IResourceDelta delta, int buildKind, ValOperation operation){
+	private ValBuilderJob(){
 		super(ValMessages.JobName);
-		_project = project;
-		_delta = delta;
-		_buildKind = buildKind;
-		_operation = operation;
 	}
 	
+	private void add(ValidationRequest request){
+		_work.add(request);
+	}
+	
+	@Override
 	public boolean belongsTo(Object family) {
 		if (family == ResourcesPlugin.FAMILY_MANUAL_BUILD)return true;
 		if (family == ValidationBuilder.FAMILY_VALIDATION_JOB){
@@ -94,13 +114,70 @@
 		return super.belongsTo(family);
 	}
 
+	@Override
 	public IStatus runInWorkspace(IProgressMonitor monitor) {
 		Tracing.log("ValBuilderJob-01: Starting"); //$NON-NLS-1$
-		_monitor = monitor;
 		
+		try {
+			startingValidation(monitor);
+			
+			ValidationRequest request = getRequest();
+			while(request != null){
+				run(request, monitor);
+				request = getRequest();
+			}
+		}
+		finally {
+			finishingValidation(monitor);
+		}
+		
+		Tracing.log("ValBuilderJob-02: Finished"); //$NON-NLS-1$
+		return Status.OK_STATUS;
+	}
+
+	private void startingValidation(IProgressMonitor monitor) {
+        IValidatorVisitor startingVisitor = new IValidatorVisitor(){
+
+            public void visit(Validator validator, IProject project, ValType valType, 
+                ValOperation operation, IProgressMonitor monitor) {
+                
+                validator.validationStarting(project, operation.getState(), monitor);                   
+            }               
+        };
+
+        ValManager.getDefault().accept(startingVisitor, null, ValType.Build, getOperation(), monitor);
+	}
+	
+	private void finishingValidation(IProgressMonitor monitor) {
+		
+		IValidatorVisitor finishedVisitor = new IValidatorVisitor(){
+
+		    public void visit(Validator validator, IProject project, ValType valType,
+		      ValOperation operation, IProgressMonitor monitor) {
+
+		      validator.validationFinishing(project, operation.getState(), monitor);              
+		    }           
+		  };
+		  ValManager.getDefault().accept(finishedVisitor, null, ValType.Build, getOperation(), monitor);
+	}
+
+	private void run(ValidationRequest request, IProgressMonitor monitor){
+		setName(MessageFormat.format(ValMessages.JobNameWithProjectName,new Object[] { request.getProject().getName() })); 
 		try {		
-			if (_delta == null)fullBuild();
-			else deltaBuild();
+	        IValidatorVisitor startingVisitor = new IValidatorVisitor(){
+
+	            public void visit(Validator validator, IProject project, ValType valType, 
+	                ValOperation operation, IProgressMonitor monitor) {
+	                
+	                validator.validationStarting(project, operation.getState(), monitor);                   
+	            }               
+	        };
+
+	        ValManager.getDefault().accept(startingVisitor, request.getProject(), ValType.Build, getOperation(), monitor);
+		  
+			if (request.getDelta() == null)fullBuild(request, monitor);
+			else deltaBuild(request, monitor);
+
 			
 		}
 		catch (ProjectUnavailableError e){
@@ -112,65 +189,164 @@
 		catch (CoreException e){
 			ValidationPlugin.getPlugin().handleException(e);
 		}
-		
-		Tracing.log("ValBuilderJob-02: Finished"); //$NON-NLS-1$
-		return Status.OK_STATUS;
-	}
+		finally {
+		  IValidatorVisitor finishedVisitor = new IValidatorVisitor(){
 
-	private void deltaBuild() throws CoreException {
-		_delta.accept(this);		
-	}
+		    public void visit(Validator validator, IProject project, ValType valType,
+		      ValOperation operation, IProgressMonitor monitor) {
 
-	private void fullBuild() throws CoreException {
-		_project.accept(this);
-		
-	}
-
-	public boolean visit(IResourceDelta delta) throws CoreException {
-		IResource resource = delta.getResource();
-		if (DisabledResourceManager.getDefault().isDisabled(resource)){
-			MarkerManager.getDefault().deleteMarkers(resource, _operation.getStarted(), IResource.DEPTH_INFINITE);
-			return false;
+		      validator.validationFinishing(project, operation.getState(), monitor);              
+		    }           
+		  };
+          ValManager.getDefault().accept(finishedVisitor, request.getProject(), ValType.Build, getOperation(), monitor);
 		}
-		int kind = delta.getKind();
-		if ((delta.getFlags() & InterestedFlags) == 0)return true;
 		
-		if ((kind & (IResourceDelta.ADDED | IResourceDelta.CHANGED)) != 0){
-			ValManager.getDefault().validate(_project, resource, delta.getKind(), ValType.Build, _buildKind, 
-				_operation, _monitor);
+	}
+
+	private void deltaBuild(ValidationRequest request, IProgressMonitor monitor) throws CoreException {
+		ResourceCounter counter = new ResourceCounter();
+		request.getDelta().accept(counter);
+		SubMonitor subMonitor = SubMonitor.convert(monitor, counter.getCount());
+		Visitor vistitor = new Visitor(request, subMonitor, monitor, getOperation());
+		request.getDelta().accept(vistitor);		
+	}
+
+	private void fullBuild(ValidationRequest request, IProgressMonitor monitor) throws CoreException {
+		ResourceCounter counter = new ResourceCounter();
+		request.getProject().accept(counter, 0);
+		SubMonitor subMonitor = SubMonitor.convert(monitor, counter.getCount());
+		Visitor vistitor = new Visitor(request, subMonitor, monitor, getOperation());
+		request.getProject().accept(vistitor);
+		
+	}
+	
+	private ValOperation getOperation(){
+		return _operation;
+	}
+
+	static final class ResourceCounter implements IResourceProxyVisitor, IResourceDeltaVisitor {
+		
+		private int _count;
+
+		public int getCount() {
+			return _count;
 		}
-				
-		IDependencyIndex index = ValidationFramework.getDefault().getDependencyIndex();
-		if (index.isDependedOn(resource)){
-			MarkerManager mm = MarkerManager.getDefault();
-			for (DependentResource dr : index.get(resource)){
-				if (dr.getValidator().shouldValidate(dr.getResource(), ValType.Build)){
-					mm.clearMarker(dr.getResource(), dr.getValidator()); 
-					_operation.getState().put(ValidationState.TriggerResource, resource);
-					ValManager.getDefault().validate(dr.getValidator(), _operation, dr.getResource(), 
-						IResourceDelta.NO_CHANGE, _monitor);
+
+		public boolean visit(IResourceProxy proxy) throws CoreException {
+			_count++;
+			return true;
+		}
+
+		public boolean visit(IResourceDelta delta) throws CoreException {
+			_count++;
+			return true;
+		}		
+	}
+	
+	static final class ValidationRequest {
+		/** The project that is being built. */
+		private final IProject 			_project;
+		
+		/** The resource delta that triggered the build, it will be null for a full build. */
+		private final IResourceDelta	_delta;
+		
+		/** 
+		 * The kind of build.
+		 * 
+		 *  @see org.eclipse.core.resources.IncrementalProjectBuilder
+		 */
+		private final int					_buildKind;
+		
+		public ValidationRequest(IProject project, IResourceDelta delta, int buildKind){
+			_project = project;
+			_delta = delta;
+			_buildKind = buildKind;
+		}
+
+		public IProject getProject() {
+			return _project;
+		}
+
+		public IResourceDelta getDelta() {
+			return _delta;
+		}
+
+		public int getBuildKind() {
+			return _buildKind;
+		}
+	}
+	
+	private final static class Visitor implements IResourceDeltaVisitor, IResourceVisitor{
+		
+		private final ValidationRequest 	_request;
+		private final SubMonitor 			_subMonitor;
+		private final IProgressMonitor 		_monitor;
+		private final ValOperation			_operation;
+		
+		public Visitor(ValidationRequest request, SubMonitor subMonitor, IProgressMonitor monitor, ValOperation operation){
+			_request = request;
+			_subMonitor = subMonitor;
+			_monitor = monitor;
+			_operation = operation;
+		}
+		
+		public boolean visit(IResource resource) throws CoreException {
+			try {
+				if (DisabledResourceManager.getDefault().isDisabled(resource)){
+					MarkerManager.getDefault().deleteMarkers(resource, _operation.getStarted(), IResource.DEPTH_INFINITE);
+					return false;
 				}
+				ValManager.getDefault().validate(_request.getProject(), resource, IResourceDelta.NO_CHANGE, ValType.Build, 
+					_request.getBuildKind(), _operation, _subMonitor.newChild(1));
 			}
+			catch (ResourceUnavailableError e){
+				if (Tracing.isLogging())Tracing.log("ValBuilderJob-02: " + e.toString()); //$NON-NLS-1$
+				return false;
+			}
+			return true;
 		}
-				
-		return true;
-	}
-
-	public boolean visit(IResource resource) throws CoreException {
-		try {
+		
+		@SuppressWarnings("deprecation")
+		public boolean visit(IResourceDelta delta) throws CoreException {
+			IResource resource = delta.getResource();
 			if (DisabledResourceManager.getDefault().isDisabled(resource)){
 				MarkerManager.getDefault().deleteMarkers(resource, _operation.getStarted(), IResource.DEPTH_INFINITE);
 				return false;
 			}
+			int kind = delta.getKind();
+			boolean isChanged = (kind & IResourceDelta.CHANGED) != 0;
+			if (isChanged &&  (delta.getFlags() & InterestedFlags) == 0)return true;
 			
-			ValManager.getDefault().validate(_project, resource, IResourceDelta.NO_CHANGE, ValType.Build, 
-				_buildKind, _operation, _monitor);
+			// Check for file ADDED and REMOVED events, which means that the file may have moved to a new
+			// project. To be safe we clear it's cached list of validators.
+			if (((kind & (IResourceDelta.ADDED | IResourceDelta.REMOVED)) != 0)	&& resource.getType() == IResource.FILE) {
+				ValManager.getDefault().clearValProperty(resource);
+			}
+
+			if ((kind & (IResourceDelta.ADDED | IResourceDelta.CHANGED)) != 0){
+				ValManager.getDefault().validate(_request.getProject(), resource, delta.getKind(), ValType.Build, 
+					_request.getBuildKind(), _operation, _subMonitor.newChild(1));
+			}
+					
+			IDependencyIndex index = ValidationFramework.getDefault().getDependencyIndex();
+			if (index.isDependedOn(resource)){
+				MarkerManager mm = MarkerManager.getDefault();
+				for (DependentResource dr : index.get(resource)){
+					Validator val = dr.getValidator();
+					if (Friend.shouldValidate(val, dr.getResource(), ValType.Build, new ContentTypeWrapper())){
+						_operation.getState().put(ValidationState.TriggerResource, resource);
+						ValidationEvent event = new ValidationEvent(dr.getResource(), IResourceDelta.NO_CHANGE, delta);
+						if (val.shouldClearMarkers(event))mm.clearMarker(dr.getResource(), val); 
+						ValManager.getDefault().validate(val, _operation, dr.getResource(), 
+							IResourceDelta.NO_CHANGE, _monitor, event);
+					}
+				}
+			}
+					
+			return true;
 		}
-		catch (ResourceUnavailableError e){
-			if (Tracing.isLogging())Tracing.log("ValBuilderJob-02: " + e.toString()); //$NON-NLS-1$
-			return false;
-		}
-		return true;
+
+		
 	}
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValManager.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValManager.java
index 9a6927a..0fd1c2a 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValManager.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -20,28 +20,44 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
 
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceStatus;
 import org.eclipse.core.resources.IResourceVisitor;
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.ISafeRunnable;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
 import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
 import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
+import org.eclipse.wst.validation.Friend;
 import org.eclipse.wst.validation.IPerformanceMonitor;
+import org.eclipse.wst.validation.IValidatorGroupListener;
 import org.eclipse.wst.validation.PerformanceCounters;
+import org.eclipse.wst.validation.ValidationEvent;
 import org.eclipse.wst.validation.ValidationFramework;
 import org.eclipse.wst.validation.ValidationResult;
+import org.eclipse.wst.validation.ValidationState;
 import org.eclipse.wst.validation.Validator;
 import org.eclipse.wst.validation.internal.model.GlobalPreferences;
+import org.eclipse.wst.validation.internal.model.GlobalPreferencesValues;
 import org.eclipse.wst.validation.internal.model.IValidatorVisitor;
 import org.eclipse.wst.validation.internal.model.ProjectPreferences;
+import org.eclipse.wst.validation.internal.operations.ManualValidatorsOperation;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 import org.osgi.service.prefs.BackingStoreException;
 
@@ -50,36 +66,34 @@
  * @author karasiuk
  *
  */
-public class ValManager implements IValChangedListener, IFacetedProjectListener, IProjectChangeListener {
+public final class ValManager implements IValChangedListener, IFacetedProjectListener, IProjectChangeListener {
 	
-	private static ValManager _me;
-		
 	/**
 	 * Projects may be allowed to override the global validation settings. If that is the case then those
 	 * project specific settings are saved here. If the key exists, but the value is null, then that
 	 * means that the project has been checked and it does not have any specific settings.
 	 */
-	private Map<IProject, ProjectPreferences> _projectPreferences = 
+	private final Map<IProject, ProjectPreferences> _projectPreferences = 
 		Collections.synchronizedMap(new HashMap<IProject, ProjectPreferences>(50));
 	
-	private GlobalPreferences _globalPreferences;
+	private final AtomicReference<GlobalPreferences> _globalPreferences = new AtomicReference<GlobalPreferences>();
 		
 	/**
 	 * This number increases each time any of the validation configurations change. It is used to determine
 	 * if information that we have cached in the ValProperty is stale or not. This starts off at zero, each time
 	 * the workbench is started.
 	 */
-	private int _configNumber;
-	private ValidatorIdManager _idManager = new ValidatorIdManager();
+	private final AtomicInteger _configNumber = new AtomicInteger();
 	
-	private ValidatorProjectManager _projectManager = new ValidatorProjectManager();
-	
+	private final ValidatorIdManager _idManager = new ValidatorIdManager();
+	private final ValidatorCache 	_cache = new ValidatorCache();
+		
 	private static final QualifiedName StatusBuild = new QualifiedName(ValidationPlugin.PLUGIN_ID, "sb"); //$NON-NLS-1$
 	private static final QualifiedName StatusManual = new QualifiedName(ValidationPlugin.PLUGIN_ID, "sm"); //$NON-NLS-1$
-			
-	public static synchronized ValManager getDefault(){
-		if (_me == null)_me = new ValManager();
-		return _me;
+
+	
+	public static ValManager getDefault(){
+		return Singleton.valManager;
 	}
 	
 	private ValManager(){
@@ -107,7 +121,7 @@
 	 * Because if you make changes to the original validators, and since we only save differences,
 	 * there won't be any differences. 
 	 * 
-	 * @return Answer an empty array if there are no validators.
+	 * @return Answer the validators in name sorted order. Answer an empty array if there are no validators.
 	 * 
 	 * @see #getValidatorsCopy()
 	 */
@@ -129,23 +143,6 @@
 	}
 	
 	/**
-	 * Answer all the validators that are in effect for the given project.
-	 * <p>
-	 * Individual projects may override the global validation preference settings. If this is allowed and if
-	 * the project has it's own settings, then those validators are returned via this method.
-	 * </p>
-	 * <p>
-	 * The following approach is used. For version 1 validators, the validator is only returned if it
-	 * is defined to operate on this project type. This is the way that the previous version of the framework
-	 * did it. For version 2 validators, they are all returned.
-	 * </p>
-	 * @param project this may be null, in which case the global preferences are returned.
-	 */
-	public Validator[] getValidators(IProject project) throws ProjectUnavailableError {
-		return getValidators(project, true);
-	}
-	
-	/**
 	 * Answer all the validators for the given project.
 	 * <p>
 	 * Individual projects may override the global validation preference
@@ -168,17 +165,80 @@
 	 *            preferences do not allow project overrides then none of the
 	 *            project settings are used. Normal validation would set this to true.
 	 *            The properties page would set this to false.
+	 *            
+	 * @deprecated Use {@link #getValidatorsNotCached(IProject)} instead            
 	 */
-	public synchronized Validator[] getValidators(IProject project, boolean respectOverrideSettings) throws ProjectUnavailableError {
-		Map<String,Validator> v2Vals = getV2Validators(project);
+	public Validator[] getValidators(IProject project, boolean respectOverrideSettings) throws ProjectUnavailableError {
+		return getValidators(project);
+	}
+	
+	/**
+	 * Answer a cached copy of the the validators for a given project. This is a front end method, 
+	 * for the getValidatorsNotCached() method.
+	 * <p>
+	 * Individual projects may override the global validation preference
+	 * settings. If the project has it's own settings, then those validators are
+	 * returned via this method.
+	 * </p>
+	 * <p>
+	 * The following approach is used. For version 1 validators, the validator
+	 * is only returned if it is defined to operate on this project type. This
+	 * is the way that the previous version of the framework did it. For version
+	 * 2 validators, they are all returned.
+	 * </p>
+	 * 
+	 * @param project
+	 *            This may be null, in which case the global preferences are
+	 *            returned.
+	 * 
+	 * @return The validators in name sorted order.
+	 */
+	public Validator[] getValidators(IProject project) throws ProjectUnavailableError {
+		return _cache.getValidatorsCached(project);
+	}
+	
+	/**
+	 * Answer all the validators for the given project.
+	 * <p>
+	 * Individual projects may override the global validation preference
+	 * settings. If the project has it's own settings, then those validators are
+	 * returned via this method.
+	 * </p>
+	 * <p>
+	 * The following approach is used. For version 1 validators, the validator
+	 * is only returned if it is defined to operate on this project type. This
+	 * is the way that the previous version of the framework did it. For version
+	 * 2 validators, they are all returned.
+	 * </p>
+	 * 
+	 * @param project
+	 *            This may be null, in which case the global preferences are
+	 *            returned.
+	 * 
+	 * @return The validators in name sorted order.
+	 */
+	private Validator[] getValidatorsNotCached(IProject project) throws ProjectUnavailableError {
+		Map<String,Validator> v2Vals = getV2Validators(project, UseProjectPreferences.Normal);
 		TreeSet<Validator> sorted = new TreeSet<Validator>();
-		for (Validator v : v2Vals.values())sorted.add(v);
+		sorted.addAll(v2Vals.values());
 		
 		try {
 			ValidationConfiguration vc = ConfigurationManager.getManager().getConfiguration(project);
-			for (ValidatorMetaData vmd : vc.getValidators()){
-				Validator v = Validator.create(vmd, vc, project);
-				sorted.add(v);
+			if (project == null){
+				// If the project is null we need to use this approach, since you can not use new ManualValidatorsOperation(null)
+				ValidatorMetaData[] vmds = vc.getValidators();
+				for (ValidatorMetaData vmd : vmds){
+					Validator v = Validator.create(vmd, vc, project);
+					sorted.add(v);
+				}
+			}
+			else {
+				ManualValidatorsOperation mvo = new ManualValidatorsOperation(project);
+				Set<ValidatorMetaData> vmds = mvo.getEnabledValidators();
+				for (ValidatorMetaData vmd : vmds){
+					Validator v = Validator.create(vmd, vc, project);
+					sorted.add(v);
+				}
 			}
 		}
 		catch (InvocationTargetException e){
@@ -189,31 +249,114 @@
 		sorted.toArray(vals);
 		return vals;
 	}
+	/**
+	 * Validators can use project level settings (Project natures and facets) to
+	 * determine if they are applicable to the project or not.
+	 * 
+	 * @param project
+	 *            The project that the configuration is based on.
+	 * @param mustUseProjectSettings
+	 *            Force the project properties to be used. There is a case where the user has toggled the
+	 *            Enable project specific settings checkbox in the dialog, but has not yet committed the
+	 *            changes. This allows that setting to be passed through.
+	 * @return The validators that are configured to run on this project based
+	 *         on the project level settings. These are the "live" validators, they are not copies.
+	 * @throws ProjectUnavailableError
+	 * 
+	 * @deprecated Use getValidatorsConfiguredForProject(IProject project, UseProjectPreferences useProject)
+	 */
+	public Validator[] getValidatorsConfiguredForProject(IProject project, boolean mustUseProjectSettings) throws ProjectUnavailableError {
+		UseProjectPreferences useProject = UseProjectPreferences.Normal;
+		return getValidatorsConfiguredForProject(project, useProject);
+	}
 	
 	/**
-	 * Answer the V2 validators that are in effect for this project. The following approach is used:
+	 * Validators can use project level settings (Project natures and facets) to
+	 * determine if they are applicable to the project or not.
+	 * 
+	 * @param project
+	 *            The project that the configuration is based on.
+	 * @param useProject
+	 *            Specifies how to use the project preferences. This can be used
+	 *            to force the project properties to be used. There is a case
+	 *            where the user has toggled the Enable project specific
+	 *            settings checkbox in the dialog, but has not yet committed the
+	 *            changes. This allows that setting to be passed through.
+	 * @return The validators that are configured to run on this project based
+	 *         on the project level settings. These are the "live" validators,
+	 *         they are not copies.
+	 * @throws ProjectUnavailableError
+	 */
+	public Validator[] getValidatorsConfiguredForProject(IProject project, UseProjectPreferences useProject) throws ProjectUnavailableError {
+		Map<String,Validator> v2Vals = getV2Validators(project, useProject);
+		TreeSet<Validator> sorted = new TreeSet<Validator>();
+		sorted.addAll(v2Vals.values());
+		
+		if (useProject == UseProjectPreferences.MustNotUse){
+			sorted.addAll(ExtensionValidators.instance().getV1Validators(project));
+		}
+		else {
+			try {
+				ValidationConfiguration vc = ConfigurationManager.getManager().getProjectConfiguration(project);
+				ValidatorMetaData[] vmds = vc.getValidators();
+				for (ValidatorMetaData vmd : vmds) {
+					Validator v = Validator.create(vmd, vc, project);
+					sorted.add(v);
+				}
+			}
+			catch (InvocationTargetException e){
+				ValidationPlugin.getPlugin().handleException(e);
+			}
+		}
+				
+		List<Validator> list = new LinkedList<Validator>();
+		for (Validator v : sorted){
+			if (v.shouldValidateProject(project, false, false))list.add(v);
+		}
+		
+		Validator[]vals = new Validator[list.size()];
+		list.toArray(vals);
+		return vals;
+	}
+	
+	/**
+	 * Answer the V2 validators that are in effect for this project. The
+	 * following approach is used:
 	 * <ol>
 	 * <li>The validators that are defined by the extension point are loaded.</li>
 	 * <li>They are customized by any global preferences.</li>
-	 * <li>If project customizations are allowed, they are customized by the project preferences.
+	 * <li>If project customizations are allowed, they are customized by the
+	 * project preferences.
 	 * </ol>
 	 * 
 	 * @param project
-	 *            This may be null, in which case only the global preferences are used.
+	 *            This may be null, in which case only the global preferences
+	 *            are used.
+	 * @param useProject
+	 *            Specifies how to use the project preferences. This can be used
+	 *            to force the project properties to be used. There is a case
+	 *            where the user has toggled the Enable project specific
+	 *            settings checkbox in the dialog, but has not yet committed the
+	 *            changes. This allows that setting to be passed through.
+	 *            
 	 * @return
 	 */
-	private Map<String,Validator> getV2Validators(IProject project){
+	private Map<String,Validator> getV2Validators(IProject project, UseProjectPreferences useProject){
 		Map<String,Validator> extVals = ExtensionValidators.instance().getMapV2Copy();
 		try {
 			List<Validator> vals = ValPrefManagerGlobal.getDefault().getValidators();
 			for (Validator v : vals)extVals.put(v.getId(), v);
 			
-			if (!mustUseGlobalValidators(project)){
-				//TODO should probably cache this vpm
-				ValPrefManagerProject vpm = new ValPrefManagerProject(project);
-				vals = vpm.getValidators(extVals);
-				for (Validator v : vals)extVals.put(v.getId(), v);
-			}		
+			if (useProject != UseProjectPreferences.MustNotUse){
+				if (useProject == UseProjectPreferences.MustUse || !mustUseGlobalValidators(project)){
+					//TODO should probably cache this vpm
+					ValPrefManagerProject vpm = new ValPrefManagerProject(project);
+					vals = vpm.getValidators(extVals);
+					for (Validator v : vals)extVals.put(v.getId(), v);
+					
+					for (Validator v : getProjectPreferences(project).getValidators())extVals.put(v.getId(), v);
+				}	
+			}
 		}
 		catch (BackingStoreException e){
 			ValidationPlugin.getPlugin().handleException(e);
@@ -232,14 +375,11 @@
 	public boolean mustUseGlobalValidators(IProject project){
 		if (project == null)return true;
 		if (!getGlobalPreferences().getOverride())return true;
-		ProjectPreferences pp = getProjectPreferences2(project);
-		if (pp == null){
-			ValPrefManagerProject vpm = new ValPrefManagerProject(project);
-			pp = new ProjectPreferences(project); 
-			vpm.loadProjectPreferencesShallow(pp);
-		}
+		ProjectPreferences pp = _projectPreferences.get(project);
+		if (pp != null)return !pp.getOverride();
 		
-		return !pp.getOverride();
+		ValPrefManagerProject vpm = new ValPrefManagerProject(project);
+		return !vpm.getOverride();
 	}
 	
 	/**
@@ -290,8 +430,9 @@
 			return v.hasValidator(folder);
 		}
 		else {
+			ContentTypeWrapper ctw = new ContentTypeWrapper();
 			for (Validator val : ValManager.getDefault().getValidators(resource.getProject())){
-				if (val.shouldValidate(resource, isManual, isBuild))return true;
+				if (Friend.shouldValidate(val, resource, isManual, isBuild, ctw))return true;
 			}			
 		}
 		return false;
@@ -308,7 +449,7 @@
 		GlobalPreferences gp = getGlobalPreferences();
 		if (!gp.getOverride() || project == null)return gp.getDisableAllValidation();
 		
-		ProjectPreferences pp = getProjectPreferences2(project);
+		ProjectPreferences pp = _projectPreferences.get(project);
 		if (pp == null)return gp.getDisableAllValidation();
 		return pp.getSuspend();		
 	}
@@ -399,26 +540,46 @@
 	 * This method needs to be called whenever the validation configuration has changed.
 	 */
 	private void configHasChanged(){
-		_configNumber++;
-		_projectManager.reset();
+		_configNumber.incrementAndGet();
+		ValidatorProjectManager.reset();
+		_cache.reset();
 	}
 		
 	/**
 	 * Answer the global validation preferences.
 	 */
-	public synchronized GlobalPreferences getGlobalPreferences(){
-		GlobalPreferences gp = _globalPreferences;
+	public GlobalPreferences getGlobalPreferences(){
+		GlobalPreferences gp = _globalPreferences.get();
 		if (gp == null){
 			ValPrefManagerGlobal vpm = ValPrefManagerGlobal.getDefault();
-			gp = new GlobalPreferences();
-			vpm.loadGlobalPreferences(gp);
-			_globalPreferences = gp;
+			gp = vpm.loadGlobalPreferences();
+			if (!_globalPreferences.compareAndSet(null, gp))gp = _globalPreferences.get();
 		}
-		return gp;		
+		return gp;
 	}
 	
+	/**
+	 * Update the global preferences, but only if something has actually changed.
+	 * @param values The global settings.
+	 * @return a bit mask of the changes between the old values and the new values. See the GlobalPreferences
+	 * constants for the bit mask values. If a zero is return there were no changes.
+	 */
+	public int replace(GlobalPreferencesValues values){
+		GlobalPreferences gp = new GlobalPreferences(values);
+		GlobalPreferences old = getGlobalPreferences();
+		int changes = old.compare(gp);
+		if (changes != 0){
+			_globalPreferences.set(gp);
+		}
+		return changes;
+	}
+		
+	/**
+	 * Answer the project preferences for this project.
+	 * @param project The project, this may be null.
+	 */
 	public ProjectPreferences getProjectPreferences(IProject project) {
-		ProjectPreferences pp = getProjectPreferences2(project);
+		ProjectPreferences pp = _projectPreferences.get(project);
 		if (pp != null)return pp;
 		
 		/* hopefully we rarely get this far */
@@ -436,34 +597,22 @@
 		return pp;
 	}
 
-	
+	/**
+	 * 
+	 * @param project The project, this may be null.
+	 * @param baseValidators
+	 */
 	private ProjectPreferences getProjectPreferences(IProject project, Map<String, Validator> baseValidators) 
 		throws BackingStoreException {
-		if (_projectPreferences.containsKey(project)){
-			return _projectPreferences.get(project);
-		}
+		ProjectPreferences pp = _projectPreferences.get(project);
+		if (pp != null)return pp;
 		
 		ValPrefManagerProject vpm = new ValPrefManagerProject(project);
-		ProjectPreferences pp = new ProjectPreferences(project); 
-		vpm.loadProjectPreferences(pp, baseValidators);
+		pp = vpm.loadProjectPreferences(project, baseValidators);
 		_projectPreferences.put(project, pp);
 		return pp;		
 	}
-	
-	/**
-	 * Answer the project specific validation preferences from the cache
-	 * 
-	 * @param project
-	 * 
-	 * @return null if the project is not in the cache.
-	 */
-	private ProjectPreferences getProjectPreferences2(IProject project){
-		if (_projectPreferences.containsKey(project)){
-			return _projectPreferences.get(project);
-		}
-		return null;
-	}
-	
+		
 	/**
 	 * Restore all the validation defaults, as defined by the individual validators via the
 	 * validation extension point.
@@ -508,10 +657,16 @@
 				Validator.V1 v1 = validator.asV1Validator();
 				if (vt == ValType.Build && v1 != null)return;
 				
-				validate(validator, operation, resource, kind, monitor);
+				SubMonitor subMonitor = SubMonitor.convert(monitor);
+				String task = NLS.bind(ValMessages.LogValStart, validator.getName(), resource.getName());
+				subMonitor.beginTask(task, 1);
+
+				if (project.isOpen())
+					validate(validator, operation, resource, kind, subMonitor.newChild(1), null);
 			}			
 		};
-		accept(visitor, project, resource, valType, operation, monitor);
+		SubMonitor sm = SubMonitor.convert(monitor, getValidators(project).length);
+		accept(visitor, project, resource, valType, operation, sm);
 		
 	}
 	
@@ -528,7 +683,7 @@
 	 * @param monitor
 	 */
 	public void validate(Validator validator, ValOperation operation, IResource resource, int kind, 
-			IProgressMonitor monitor){
+			IProgressMonitor monitor, ValidationEvent event){
 		if (operation.isValidated(validator.getId(), resource))return;
 		long time = 0;
 		long cpuTime = -1;
@@ -540,28 +695,36 @@
 			cpuTime = Misc.getCPUTime();
 		}
 		
-		ValidationResult vr = validator.validate(resource, kind, operation, monitor);
-		if (pm.isCollecting()){
-			if (cpuTime != -1){
-				cpuTime = Misc.getCPUTime() - cpuTime;
+		if (Tracing.matchesExtraDetail(validator.getId())){
+			Tracing.log("ValManager-03: validating ", resource); //$NON-NLS-1$
+		}
+	
+		if (resource.exists())
+		{	
+			ValidationResult vr = validator.validate(resource, kind, operation, monitor, event);
+	
+			if (pm.isCollecting()){
+				if (cpuTime != -1){
+					cpuTime = Misc.getCPUTime() - cpuTime;
+				}
+				int num = 0;
+				if (vr != null)num = vr.getNumberOfValidatedResources();
+				PerformanceCounters pc = new PerformanceCounters(validator.getId(), 
+					validator.getName(), resource.getName(),
+					num, System.currentTimeMillis()-time, cpuTime);
+				pm.add(pc);
 			}
-			int num = 0;
-			if (vr != null)num = vr.getNumberOfValidatedResources();
-			PerformanceCounters pc = new PerformanceCounters(validator.getId(), 
-				validator.getName(), resource.getName(),
-				num, System.currentTimeMillis()-time, cpuTime);
-			pm.add(pc);
-		}
-		if (ValidationPlugin.getPlugin().isDebugging() && !pm.isCollecting()){
-			String msg = time != 0 ? 
-				NLS.bind(ValMessages.LogValEndTime,	new Object[]{validator.getName(), 
-					validator.getId(), resource, Misc.getTimeMS(System.currentTimeMillis()-time)}) :
-				NLS.bind(ValMessages.LogValEnd, validator.getName(), resource);
-			Tracing.log("ValManager-01: " + msg); //$NON-NLS-1$
-		}
-		if (vr != null){
-			operation.getResult().mergeResults(vr);
-			if (vr.getSuspendValidation() != null)operation.suspendValidation(vr.getSuspendValidation(), validator);
+			if (ValidationPlugin.getPlugin().isDebugging() && !pm.isCollecting()){
+				String msg = time != 0 ? 
+					NLS.bind(ValMessages.LogValEndTime,	new Object[]{validator.getName(), 
+						validator.getId(), resource, Misc.getTimeMS(System.currentTimeMillis()-time)}) :
+					NLS.bind(ValMessages.LogValEnd, validator.getName(), resource);
+				Tracing.log("ValManager-01: " + msg); //$NON-NLS-1$
+			}
+			if (vr != null){
+				operation.mergeResults(vr);
+				if (vr.getSuspendValidation() != null)operation.suspendValidation(vr.getSuspendValidation(), validator);
+			}
 		}
 	}
 	
@@ -581,7 +744,7 @@
 		
 		for (Validator val : getValidators(project)){
 			if (monitor.isCanceled())return;
-			if (!_projectManager.shouldValidate(val, project, valType))continue;
+			if (!ValidatorProjectManager.get().shouldValidate(val, project, valType))continue;
 			if (operation.isSuspended(val, project))continue;
 			try {
 				visitor.visit(val, project, valType, operation, monitor);
@@ -598,46 +761,129 @@
 	 * 
 	 * @param valType the type of validation request
 	 */
-	public void accept(IValidatorVisitor visitor, IProject project, IResource resource, ValType valType, 
-			ValOperation operation, IProgressMonitor monitor){
+	public void accept(IValidatorVisitor visitor, IProject project, IResource resource, 
+			ValType valType, ValOperation operation, IProgressMonitor monitor){
 		
 		if (isDisabled(project))return;
 		
-		ValProperty vp = getValProperty(resource, valType, _configNumber);
+		Map<String,IValidatorGroupListener[]> groupListeners = new HashMap<String,IValidatorGroupListener[]>();
+		
+		ValProperty vp = getValProperty(resource, valType, _configNumber.get());
 		if (vp != null){
 			BitSet bs = vp.getConfigSet();
 			for (Validator val : getValidators(project)){
-				if (monitor.isCanceled())return;
-				if (!bs.get(_idManager.getIndex(val.getId())))continue;
-				try {
-					visitor.visit(val, project, valType, operation, monitor);
-				}
-				catch (Exception e){
-					ValidationPlugin.getPlugin().handleException(e);
+				if (!monitor.isCanceled()) {
+					if (!bs.get(_idManager.getIndex(val.getId())))continue;
+					if (operation.isSuspended(val, project))continue;
+					Validator.V2 v2 = val.asV2Validator();
+					if (v2 != null) {
+						notifyGroupListenersStarting(resource, operation.getState(), monitor, groupListeners, v2);
+					}
+					try {
+						visitor.visit(val, project, valType, operation, monitor);
+					}
+					catch (Exception e){
+						ValidationPlugin.getPlugin().handleException(e);
+					}
 				}
 			}
+			notifyGroupFinishing(resource, operation.getState(), monitor, groupListeners);
 			return;
 		}
 		
 		vp = new ValProperty();
-		vp.setConfigNumber(_configNumber);
+		vp.setConfigNumber(_configNumber.get());
+		ContentTypeWrapper ctw = new ContentTypeWrapper();
 		for (Validator val : getValidators(project)){
-			if (monitor.isCanceled())return;
-			if (!_projectManager.shouldValidate(val, project, valType))continue;
-			if (operation.isSuspended(val, project))continue;
-			if (val.shouldValidate(resource, valType)){
-				vp.getConfigSet().set(_idManager.getIndex(val.getId()));
-				try {
-					visitor.visit(val, project, valType, operation, monitor);
-				}
-				catch (Exception e){
-					ValidationPlugin.getPlugin().handleException(e);
+			if (!monitor.isCanceled()) {
+				if (!ValidatorProjectManager.get().shouldValidate(val, project, valType))continue;
+				if (Friend.shouldValidate(val, resource, valType, ctw)){
+					vp.getConfigSet().set(_idManager.getIndex(val.getId()));
+					// we do the suspend check after figuring out if it needs to be validated, because we save
+					// this information for the session.
+					if (operation.isSuspended(val, project))continue;
+					Validator.V2 v2 = val.asV2Validator();
+					if (v2 != null) {
+						notifyGroupListenersStarting(resource, operation.getState(), monitor, groupListeners, v2);
+					}
+					try {
+						visitor.visit(val, project, valType, operation, monitor);
+					}
+					catch (Exception e){
+						ValidationPlugin.getPlugin().handleException(e);
+					}
 				}
 			}
 		}
+		notifyGroupFinishing(resource, operation.getState(), monitor, groupListeners);
 		putValProperty(vp, resource, valType);
 	}
 
+	/**
+	 * Let the group listeners know that validation might be starting for the group of validators. 
+	 */
+	private void notifyGroupListenersStarting(final IResource resource,	 
+			final ValidationState state, final IProgressMonitor monitor, 
+			Map<String, IValidatorGroupListener[]> groupListeners, Validator.V2 v2) {
+		
+		String[] groups = v2.getValidatorGroups();
+		for (String group : groups) {
+			if (!groupListeners.containsKey(group)) {
+				IValidatorGroupListener[] createdListeners = null;
+				try {
+					createdListeners = ValidatorGroupExtensionReader.getDefault().createListeners(group);
+				}
+				catch (CoreException e){
+					String msg = NLS.bind(ValMessages.ErrConfig, v2.getId());
+					Status status = new Status(IStatus.ERROR, ValidationPlugin.PLUGIN_ID, msg);
+					CoreException core = new CoreException(status);
+					ValidationPlugin.getPlugin().handleException(core);
+					ValidationPlugin.getPlugin().handleException(e);
+					
+					// we create this to ensure that we don't signal the same exception over and over. 
+					createdListeners = new IValidatorGroupListener[0];
+				}
+				
+				// create and notify just this once
+				final IValidatorGroupListener[] listeners = createdListeners;
+					
+				groupListeners.put(group, listeners);
+				for (final IValidatorGroupListener listener : listeners) {
+					SafeRunner.run(new ISafeRunnable() {
+						public void run() throws Exception {
+							listener.validationStarting(resource, monitor, state);
+						}
+
+						public void handleException(Throwable exception) {
+							ValidationPlugin.getPlugin().handleException(exception);
+						}
+					});
+				}
+			}
+		}
+	}
+
+	/**
+	 * Let the group listeners know that validation is finished for the group of validators. 
+	 */
+	private void notifyGroupFinishing(final IResource resource, 
+			final ValidationState state, final IProgressMonitor monitor,
+			Map<String, IValidatorGroupListener[]> groupListeners) {
+		for (final IValidatorGroupListener[] listeners : groupListeners.values()) {
+			for (final IValidatorGroupListener listener : listeners) {
+				SafeRunner.run(new ISafeRunnable() {
+					public void run() throws Exception {
+						listener.validationFinishing(resource, monitor, state);
+					}
+
+					public void handleException(Throwable exception) {
+						ValidationPlugin.getPlugin().handleException(exception);
+					}
+				});
+			}
+		}
+	}
+
 	private ValProperty getValProperty(IResource resource, ValType valType, int configNumber) {
 		ValProperty vp = null;
 		try {
@@ -648,7 +894,7 @@
 			// don't care about this one
 		}
 		if (vp == null)return null;
-		if (vp.getConfigNumber() != _configNumber)return null;
+		if (vp.getConfigNumber() != _configNumber.get())return null;
 		return vp;
 	}
 	
@@ -658,7 +904,9 @@
 	 * @param project The project that has been opened, created, or had it's description change.
 	 */
 	public void projectChanged(IProject project){
-		_projectManager.change(project);		
+		ValidatorProjectManager.reset();
+		_projectPreferences.remove(project);
+		_cache.reset(project);
 	}
 	
 	/**
@@ -668,16 +916,38 @@
 	 * 
 	 */
 	public void projectRemoved(IProject project){
-		_projectManager.remove(project);
+		ValidatorProjectManager.reset();
+		_projectPreferences.remove(project);
+		_cache.reset(project);
+	}
+	
+	/**
+	 * Clear the validation properties.
+	 * @param resource
+	 */
+	public void clearValProperty(IResource resource){
+		if (!resource.isAccessible())return;
+		try {
+			resource.setSessionProperty(StatusBuild, null);
+			resource.setSessionProperty(StatusManual, null);
+		} 
+		catch (CoreException e) {
+		}		
 	}
 	
 	private void putValProperty(ValProperty vp, IResource resource, ValType valType) {
 		try {
+			if (!(resource.isAccessible())) return;
 			if (valType == ValType.Build)resource.setSessionProperty(StatusBuild, vp);
 			else if (valType == ValType.Manual)resource.setSessionProperty(StatusManual, vp);
-		}
-		catch (CoreException e){
-			ValidationPlugin.getPlugin().handleException(e);
+		} 
+		catch (CoreException e) {
+	        // If the resource is not found, it is likely just been deleted 
+	        // and there is no need to do anything. 
+	        // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=269022
+	        if (!e.getStatus().equals(IResourceStatus.RESOURCE_NOT_FOUND)) {
+	                ValidationPlugin.getPlugin().handleException(e, IStatus.WARNING);
+	        }
 		}
 	}
 
@@ -692,7 +962,7 @@
 
 			public void visit(Validator validator, IProject project, ValType valType,
 				ValOperation operation, IProgressMonitor monitor) {
-				validator.clean(project, monitor);					
+				validator.clean(project, operation, monitor);					
 			}
 			
 		};
@@ -710,7 +980,7 @@
 
 			public void visit(Validator validator, IProject project, ValType valType,
 				ValOperation operation, IProgressMonitor monitor) {
-				validator.clean(project, monitor);					
+				validator.clean(project, operation, monitor);					
 			}
 			
 		};
@@ -725,12 +995,12 @@
 			configHasChanged();
 		}
 	}
-	
-	private class HasValidatorVisitor implements IResourceVisitor {
 		
-		private boolean 	_hasValidator;
-		private boolean		_isManual;
-		private boolean		_isBuild;
+	private final class HasValidatorVisitor implements IResourceVisitor {
+		
+		private boolean 			_hasValidator;
+		private final boolean		_isManual;
+		private final boolean		_isBuild;
 		
 		public HasValidatorVisitor(boolean isManual, boolean isBuild){
 			_isManual = isManual;
@@ -763,13 +1033,12 @@
 	 * @author karasiuk
 	 *
 	 */
-	private static class ValidatorIdManager {
+	private final static class ValidatorIdManager {
 		
 		/**
 		 * Map validator id's to Integers. The integers correspond to bits in the ValProperty instances.
 		 */
-		private HashMap<String, Integer> _map = new HashMap<String, Integer>(100);
-		private HashMap<Integer, String> _reverseMap = new HashMap<Integer, String>(100);
+		private final Map<String, Integer> _map = new HashMap<String, Integer>(100);
 		
 		/** Next available bit. */
 		private int _next;
@@ -779,62 +1048,73 @@
 		 * @param id validator id.
 		 * @return index into the validator bit mask.
 		 */
-		public int getIndex(String id){
+		public synchronized int getIndex(String id){
 			Integer i = _map.get(id);
 			if (i != null)return i;
 			
 			i = _next++;
 			_map.put(id, i);
-			_reverseMap.put(i, id);
 			
 			return i;
-		}
-		
-		/**
-		 * Answer the validator id for the index.
-		 * @param index
-		 * @return null if the index number has not been set.
-		 */
-		public String getId(Integer index){
-			return _reverseMap.get(index);
-		}
-		
-		public void reset(){
-			_map.clear();
-			_reverseMap.clear();
-			_next = 0;
-		}
-		
-		/**
-		 * Answer the ids for the bit in the bitset. This is used for debugging. 
-		 * @param bs
-		 */
-		public String[] getIds(BitSet bs){
-			List<String> list = new LinkedList<String>();
-			for(int i=bs.nextSetBit(0); i>=0; i=bs.nextSetBit(i+1)) {
-				String id = getId(i);
-				if (id != null)list.add(id);
-			}
-			String[] s = new String[list.size()];
-			return list.toArray(s);
-		}		
+		}				
 	}
 	
 	/**
 	 * This is used to keep track of which validators are enabled with which projects. We want to ensure
-	 * that we don't activate a validator (and it's plug-in) if it has nothing to validate in the workspace. 
+	 * that we don't activate a validator (and it's plug-in) if it has nothing to validate in the workspace.
+	 * This is an immutable object.
 	 * @author karasiuk
 	 *
 	 */
-	private static class ValidatorProjectManager {
+	private final static class ValidatorProjectManager {
+		
+		private final static AtomicReference<ValidatorProjectManager> _me = new AtomicReference<ValidatorProjectManager>();
+		private final static AtomicInteger _counter = new AtomicInteger();
+		
+		private final ValProjectMap _manual = new ValProjectMap(ValType.Manual);
+		private final ValProjectMap _build = new ValProjectMap(ValType.Build);
+		private final int _sequence;
 		
 		/**
-		 * Map a validator to the projects that it validates. I use the validator here, rather than it's
-		 * id, because we can have different versions of the validator. (i.e. a different one for each
-		 * project and then a global one).
+		 * Answer the most current ValidatorProjectManager creating a new one if you have to.
+		 * @return
 		 */
-		private Map<Validator, Set<IProject>> _manual = new HashMap<Validator, Set<IProject>>(50);
-		private Map<Validator, Set<IProject>> _build = new HashMap<Validator, Set<IProject>>(50);
+		public static ValidatorProjectManager get(){
+			ValidatorProjectManager vpm = _me.get();
+			if (vpm != null)return vpm;
+			
+			int next = _counter.incrementAndGet();
+			ValidatorProjectManager newVpm = null;
+			boolean looking = true;
+			while(looking){
+				vpm = _me.get();
+				if (vpm == null || next > vpm.getSequence()){
+					if (newVpm == null)newVpm = new ValidatorProjectManager(next);
+					if (_me.compareAndSet(vpm, newVpm))return newVpm;
+				}
+				else looking = false;
+			}
+			return vpm;
+		}
+		
+		/**
+		 * Reset the ValidatorProjectManager to null, which will force a newer one to be created the next time
+		 * that it is requested.
+		 */
+		public static void reset(){
+			int next = _counter.incrementAndGet();
+			ValidatorProjectManager vpm = _me.get();
+			if ( vpm == null)return;
+			if (next > vpm.getSequence())_me.compareAndSet(vpm, null);
+		}
+		
+		private ValidatorProjectManager(int sequence){
+			_sequence = sequence;
+		}
+		
+		int getSequence(){
+			return _sequence;
+		}
 		
 		/**
 		 * Should this validator attempt to validate any resources in this project?
@@ -848,77 +1128,94 @@
 		 *            The type of validation operation.
 		 * @return true if the validator should attempt to validate.
 		 */
-		public synchronized boolean shouldValidate(Validator validator, IProject project, ValType type){
-			if (type == ValType.Build)return shouldValidate(validator, project, type, _build);
-			if (type == ValType.Manual)return shouldValidate(validator, project, type, _manual);
+		public boolean shouldValidate(Validator validator, IProject project, ValType type){
+			if (type == ValType.Build)return _build.shouldValidate(validator, project);
+			if (type == ValType.Manual)return _manual.shouldValidate(validator, project);
 				
 			return false;
-		}
-		
+		}		
+				
 		/**
-		 * A project has been created, opened, or had it's description changed.
-		 * @param project
+		 * This is used to keep track of which validators are enabled for which projects. We want to ensure
+		 * that we don't activate a validator (and it's plug-in) if it has nothing to validate in the workspace.
+		 * <p>
+		 * There are two reasons why a validator may not be enabled. It's current project level filters may not match
+		 * the project. Or the entire validator may have been turned off for the project. 
+		 * </p>
+		 * @author karasiuk
+		 *
 		 */
-		public synchronized void change(IProject project) {
-			change(project, _build, ValType.Build);
-			change(project, _manual, ValType.Manual);			
-		}
-		
-		private void change(IProject project, Map<Validator, Set<IProject>> map, ValType type){
-			for (Validator validator : ValManager.getDefault().getValidators(project)){
-				boolean newSetting = validator.shouldValidateProject(project, type);
-				boolean oldSetting = shouldValidate(validator, project, type, map);
-				if (newSetting != oldSetting){
-					if (newSetting)map.get(validator.getId()).add(project);
-					else map.get(validator.getId()).remove(project);
-				}
-			}
-		}
-
-		public synchronized void remove(IProject project) {
-			remove(project, _build);
-			remove(project, _manual);			
-		}
-		
-		private void remove(IProject project, Map<Validator, Set<IProject>> map){
-			for (Set<IProject> projects : map.values())projects.remove(project);
-		}
-
-		private boolean shouldValidate(Validator validator, IProject project, ValType type, 
-			Map<Validator, Set<IProject>> map){
+		private final static class ValProjectMap {
+			/**
+			 * Map a validator to the projects that it validates. This is an immutable object.
+			 * <p>
+			 * I've gone back and forth on whether the key should
+			 * be a Validator or the validator id. I'm back to it being the id because I was
+			 * running into cases where because of copying I wasn't getting the matches that I expected and I
+			 * want to ensure that I don't leak validators. If I run into
+			 * false matches, it is probably because reset isn't being called when it should be.
+			 * </p>
+			 */
+			private final Map<String, Set<IProject>> _map;
 			
-			if (!map.containsKey(validator))loadMap(validator, type, map);
-			Set<IProject> projects = map.get(validator);
-			if (project == null)return projects.size() > 0;
-			return projects.contains(project);
-		}
-
-		/**
-		 * Load the map with all the projects in the workspace, that this validator is prepared to validate.
-		 * 
-		 * @param validator
-		 * @param type
-		 * @param map
-		 */
-		private void loadMap(Validator validator, ValType type, Map<Validator, Set<IProject>> map) {
-			Set<IProject> set = new HashSet<IProject>(40);
-			map.put(validator, set);
-			IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-			for (IProject p : projects){
-				if (validator.shouldValidateProject(p, type)){
-					set.add(p);
-				}
+			private final ValType _type;
+						
+			public ValProjectMap(ValType type){
+				_type = type;
+				_map = load();
 			}
-		}
-		
-		public synchronized void reset(){
-			_build.clear();
-			_manual.clear();
+			
+			/**
+			 * Should this validator attempt to validate any resources in this project?
+			 * 
+			 * @param validator
+			 *            The validator that is being tested.
+			 * @param project
+			 *            The project that is being tested. This can be null, which
+			 *            means that all projects will be tested, and if any of them return true, 
+			 *            then true is answered for this method.
+			 *            
+			 * @return true if the validator should attempt to validate.
+			 */
+			public boolean shouldValidate(Validator validator, IProject project){
+				String vid = validator.getId();
+				Set<IProject> projects = _map.get(vid);
+				if (projects == null)return false;
+				if (project == null)return projects.size() > 0;
+				return projects.contains(project);
+			}
+			
+			/**
+			 * For each of the projects in the workspace, load which validators are currently prepared to validate things.
+			 */
+			private Map<String, Set<IProject>> load() {
+				Map<String, Set<IProject>> map = new HashMap<String, Set<IProject>>(50);
+				ValManager vm = ValManager.getDefault();
+				IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+				Tracing.log("ValManager-02: loading " + projects.length + " projects");  //$NON-NLS-1$//$NON-NLS-2$
+				for (IProject project : projects){
+					if (!project.isOpen())continue;
+					Validator[] vals = vm.getValidators(project);
+					for (Validator v : vals){
+						String vid = v.getId();
+						Set<IProject> set = map.get(vid);
+						if (set == null){
+							set = new HashSet<IProject>(50);
+							map.put(vid, set);
+						}
+						
+						if (v.shouldValidateProject(project, _type))set.add(project);
+					}					
+				}
+				return map;
+			}
+			
 		}
 		
 	}
 
 	public void handleEvent(IFacetedProjectEvent event) {
+		_configNumber.incrementAndGet();
 		projectChanged(event.getProject().getProject());
 	}
 
@@ -930,9 +1227,57 @@
 			break;
 		case IProjectChangeListener.ProjectOpened:
 		case IProjectChangeListener.ProjectChanged:
+		case IProjectChangeListener.ProjectAdded:
 			projectChanged(project);
 			break;
+		}		
+	}
+	
+	/**
+	 * Store the singleton for the ValManager. This approach is used to avoid having to synchronize the
+	 * ValManager.getDefault() method.
+	 * 
+	 * @author karasiuk
+	 *
+	 */
+	private static class Singleton {
+		static ValManager valManager = new ValManager();
+	}
+	
+	private final class ValidatorCache {
+		private final ConcurrentMap<IProject, Validator[]> _cache = new ConcurrentHashMap<IProject, Validator[]>(50);
+		private final AtomicReference<Validator[]> _global = new AtomicReference<Validator[]>();
+		
+		public Validator[] getValidatorsCached(IProject project) throws ProjectUnavailableError {
+			Validator[] vals = null;
+			if (project == null){
+				vals = _global.get();
+				if (vals == null){				
+					vals = getValidatorsNotCached(project);
+					_global.set(vals);
+				}
+			}
+			else {
+				vals = _cache.get(project);
+				if (vals == null){
+					vals = getValidatorsNotCached(project);
+					_cache.put(project, vals);
+				}
+			}
+			return vals;
 		}
 		
+		public void reset(){
+			_cache.clear();
+			_global.set(null);
+		}
+		
+		public void reset(IProject project){
+			if (project != null)_cache.remove(project);
+		}
+
 	}
+	
+	public enum UseProjectPreferences {Normal, MustUse, MustNotUse}
+
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValMessages.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValMessages.java
index a11a3d5..d2383c1 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValMessages.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValMessages.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -20,6 +20,7 @@
 	
 	public static String DecodeError1;
 	public static String Error20;
+	public static String Error21;
 	
 	public static String ErrConfig;	
 	public static String ErrFilterRule;	  
@@ -42,6 +43,7 @@
 	public static String GroupExclude;
 	
 	public static String JobName;
+	public static String JobNameWithProjectName;
 	public static String JobNameMonitor;
 	
 	public static String JobIndexSave;
@@ -55,12 +57,16 @@
 	
 	public static String MigrationJobName;
 	
+	public static String RogueValidator;
+	
 	public static String RuleProjectNature;
 	public static String RuleFileExt;
 	public static String RuleFile;
 	public static String RuleFolder;
+	public static String RuleFull;
 	public static String RuleContentType;
 	public static String RuleFacet;
+	public static String RulePattern;
 	
 	public static String ContentTypeExact;
 	public static String ContentTypeNotExact;
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValOperation.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValOperation.java
index 51450a6..44c78ec 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValOperation.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValOperation.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal;
 
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -36,45 +35,65 @@
  * @author karasiuk
  *
  */
-public class ValOperation {
+public final class ValOperation {
 	
-	private ValidationState 	_state = new ValidationState();
-	private ValidationResult	_result = new ValidationResult();
-	private Map<IProject, Set<Validator>> _suspended = 
-		Collections.synchronizedMap(new HashMap<IProject, Set<Validator>>(40));
+	private final ValidationState 	_state = new ValidationState();
+	private final ValidationResult	_result = new ValidationResult();
+	
+	/**
+	 * Each project can have a set of validators that are suspended for the duration of the validation operation.
+	 * The set contains the validator's id.
+	 */
+	private final Map<IProject, Set<String>> _suspended = new HashMap<IProject, Set<String>>(40);
 	
 	/** The time that the operation started. */
-	private long	_started = System.currentTimeMillis();
+	private final long	_started = System.currentTimeMillis();
 	
 	/** 
-	 * Are we in a multi project validation? This can be triggered by either clean all or 
+	 * Are we in a multi project validation? That is, could we be validating several
+	 * projects at the same time? This can be triggered by either clean all or 
 	 * if auto build is turned off, a build all. 
 	 */
-	private boolean	_multiProject;
+	private final boolean	_multiProject;
 	
 	/** 
 	 * Holds all the resources that have been validated as a side-effect of running other validations.
 	 * The key is the validator id and the value is a Set of IResources.
 	 */
-	private Map<String, Set<IResource>> 	_validated = new HashMap<String, Set<IResource>>(20);
+	private final Map<String, Set<IResource>> 	_validated = new HashMap<String, Set<IResource>>(20);
 	
 	public ValOperation(){
+		_multiProject = false;
+	}
+	
+	/**
+	 * 
+	 * @param multiProject Set to true if we could be validating several projects at the same time.
+	 */
+	public ValOperation(boolean multiProject){
+		_multiProject = multiProject;
 	}
 	
 	public ValidationState getState() {
 		return _state;
 	}
-	public void setState(ValidationState state) {
-		_state = state;
-	}
-	public ValidationResult getResult() {
-		return _result;
-	}
 	
-	public void setResult(ValidationResult result) {
-		_result = result;
+	/**
+	 * Answer a summary of the validation results.
+	 * @return
+	 */
+	public ValidationResultSummary getResult() {
+		synchronized(_result){
+			ValidationResultSummary vrs = new ValidationResultSummary(_result.getSeverityError(), 
+				_result.getSeverityWarning(), _result.getSeverityInfo());
+			return vrs;
+		}
 	}
-	
+		
+	/**
+	 * Answer a copy of the ValidationResult.
+	 * @return
+	 */
 	public ValidationResults getResults(){
 		return new ValidationResults(_result);
 	}
@@ -86,12 +105,14 @@
 	 * @param resource resource that has been validated.
 	 */
 	public void addValidated(String id, IResource resource){
-		Set<IResource> set = _validated.get(id);
-		if (set == null){
-			set = new HashSet<IResource>(20);
-			_validated.put(id, set);
+		synchronized(_validated){
+			Set<IResource> set = _validated.get(id);
+			if (set == null){
+				set = new HashSet<IResource>(20);
+				_validated.put(id, set);
+			}
+			set.add(resource);
 		}
-		set.add(resource);
 	}
 	
 	/**
@@ -102,30 +123,36 @@
 	 * @param resource
 	 */
 	public boolean isValidated(String id, IResource resource){
-		Set set = (Set)_validated.get(id);
-		if (set == null)return false;
-		
-		return set.contains(resource);
+		synchronized(_validated){
+			Set<IResource> set = _validated.get(id);
+			if (set == null)return false;
+			
+			return set.contains(resource);
+		}
 	}
 
 	/**
-	 * Has this validator been suspended for the duration of this operation?
-	 *   
-	 * @param val
-	 * @param project can be null, in which case we return false
+	 * Has this validator been suspended for the duration of this operation on this project?
 	 * 
-	 * @return true if we already know that this validator should not run on this project.
+	 * @param val
+	 *            The validator that is being checked.
+	 * @param project
+	 *            Can be null, in which case we return false.
+	 * 
+	 * @return true if this validator should not run on this project.
 	 */
 	public boolean isSuspended(Validator val, IProject project) {
 		if (project == null)return false;
-		Set<Validator> set = getSuspended(project);		
-		return set.contains(val);
+		synchronized(_suspended){
+			Set<String> set = getSuspended(project);		
+			return set.contains(val.getId());
+		}
 	}
 	
-	private Set<Validator> getSuspended(IProject project){
-		Set<Validator> set = _suspended.get(project);
+	private Set<String> getSuspended(IProject project){
+		Set<String> set = _suspended.get(project);
 		if (set == null){
-			set = new HashSet<Validator>(5);
+			set = new HashSet<String>(5);
 			_suspended.put(project, set);
 		}
 		return set;
@@ -133,7 +160,8 @@
 
 	void suspendValidation(IProject project, Validator validator) {
 		if (project == null)return;
-		getSuspended(project).add(validator);
+		if (validator == null)return;
+		getSuspended(project).add(validator.getId());
 	}
 
 	public long getStarted() {
@@ -144,12 +172,34 @@
 		return _multiProject;
 	}
 
-	/** 
-	 * Are we in a multi project validation? That is, could we be validating several
-	 * projects at the same time? This can be triggered by either clean all or 
-	 * if auto build is turned off, a build all. 
+	/**
+	 * Indicate if the operation was canceled.
+	 * 
+	 * @param canceled
+	 * 		Set to true if it was canceled and false if it was not canceled.
 	 */
-	public void setMultiProject(boolean multiProject) {
-		_multiProject = multiProject;
-	}	
+	public void setCanceled(boolean canceled) {
+		synchronized (_result) {
+			_result.setCanceled(canceled);
+		}
+		
+	}
+
+	/**
+	 * Was the operation canceled before it completed? For example if the validation is being run through the
+	 * user interface, the end user can cancel the operation through the progress monitor.
+	 * 
+	 * @return true if the operation was canceled
+	 */
+	public boolean isCanceled() {
+		synchronized (_result) {
+			return _result.isCanceled();
+		}
+	}
+
+	public void mergeResults(ValidationResult vr) {
+		synchronized (_result) {
+			_result.mergeResults(vr);
+		}
+	}
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValOperationJob.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValOperationJob.java
deleted file mode 100644
index 6e88a82..0000000
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValOperationJob.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.validation.internal;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.wst.validation.ValidationFramework;
-import org.eclipse.wst.validation.Validator;
-import org.eclipse.wst.validation.internal.model.IValidatorVisitor;
-
-/**
- * This is used to signal when the entire validation operation is complete. This needs to be done in a job
- * because the operation isn't done, until all the validation jobs have finished.  
- * @author karasiuk
- *
- */
-public class ValOperationJob extends Job {
-	
-	private ValOperation _operation;
-	
-	public ValOperationJob(ValOperation operation){
-		super(ValMessages.JobNameMonitor);
-		_operation = operation;
-	}
-
-	@Override
-	protected IStatus run(IProgressMonitor monitor) {
-		boolean ok = true;
-		try {
-			ValidationFramework.getDefault().join(monitor);
-		}
-		catch (InterruptedException e){
-			ok = false;
-		}
-		finished(monitor);
-		return ok ? Status.OK_STATUS : Status.CANCEL_STATUS;
-	}
-	
-	private void finished(IProgressMonitor monitor){
-		IValidatorVisitor visitor = new IValidatorVisitor(){
-
-			public void visit(Validator validator, IProject project, ValType valType, 
-				ValOperation operation, IProgressMonitor monitor) {
-				
-				validator.validationFinishing(project, operation.getState(), monitor);					
-			}
-			
-		};
-		ValManager.getDefault().accept(visitor, null, ValType.Build, _operation, monitor);
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValOperationManager.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValOperationManager.java
deleted file mode 100644
index 1877a33..0000000
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValOperationManager.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.validation.internal;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.wst.validation.Validator;
-import org.eclipse.wst.validation.internal.model.IValidatorVisitor;
-
-/**
- * Keep track of a validation operation when it is triggered as part of a build.
- * @author karasiuk
- *
- */
-public class ValOperationManager implements IResourceChangeListener {
-	
-	/*
-	 * I tried various tests to see what sort of change events I would get. This is what I 
-	 * observed using Eclipse 3.4:
-	 * 
-	 * Auto Build On
-	 * 
-	 *   Clean All
-	 *     - workspace, clean, pre
-	 *     - workspace, clean post
-	 *     - workspace, auto, post
-	 *     
-	 *   Clean Some
-	 *     - project1, clean, pre
-	 *     - project1, clean, post
-	 *     - project2, clean, pre
-	 *     - project2, clean, post
-	 *     - workspace, Auto, post
-	 *     
-	 *   Build Working Set - NA
-	 *   Build Project - NA
-	 *   Build All - NA
-	 *   
-	 *   Ctrl-S
-	 *     - workspace, auto, pre
-	 *     - workspace, auto, post
-	 *     
-	 * Auto build Off
-	 * 
-	 *   Clean All
-	 *     - same as (auto build on), but no workspace,auto,post event
-	 *     
-	 *   Clean Some 
-	 *     - same as (auto build on), but no workspace,auto,post event
-	 *     
-	 *   Build Working Set
-	 *     - project1, incremental, pre
-	 *     - project1, incremental, post
-	 *     - project2, incremental, pre
-	 *     - project2, incremental, post
-	 *     
-	 *   Build Project
-	 *     - same as above
-	 *     
-	 *   Build All
-	 *     - workspace, incremental, pre
-	 *     - workspace, incremental, post
-	 *     
-	 *   Ctrl-S - NA
-	 *   
-	 * For the case where a subset of the projects are built there is no way to guess whether they are part of the
-	 * same operation or not. Eclipse threats them as independent events, and so will the validation framework.
-	 * 
-	 * So for example, if the user selected two projects (p1 and p2) and built them, the framework would call the
-	 * validators like this:
-	 * 
-	 * validation starting on null
-	 * validation starting on P1
-	 *  - individual events per resource
-	 * validation finished on P1
-	 * validation finished on null 
-	 * 
-	 * validation starting on null
-	 * validation starting on P2
-	 *  - individual events per resource
-	 * validation finished on P2
-	 * validation finished on null 
-	 */
-	
-	private static ValOperationManager _me;
-
-	/**
-	 * This operation is in affect for a build cycle. At the end of the build it is reinitialized.
-	 */
-	private ValOperation 	_operation;
-	
-	
-	/**
-	 * In the very common case of doing a clean all (with auto build turned on), Eclipse signals two 
-	 * workspace, auto build, post events. One at the end of the clean and one at the end of the
-	 * real build.
-	 * 
-	 * If we are doing a clean all, with auto build turned on, we increment this by one, 
-	 * so that we know to throw away the first workspace, auto build, post event.
-	 */
-	private int _discardAutoPost;
-
-	public static synchronized ValOperationManager getDefault(){
-		if (_me == null)_me = new ValOperationManager();
-		return _me;
-	}
-	
-	private ValOperationManager(){}
-				
-	public void resourceChanged(IResourceChangeEvent event) {
-		int type = event.getType();
-		int kind = event.getBuildKind();
-		
-		if (kind == IncrementalProjectBuilder.CLEAN_BUILD && ((type & IResourceChangeEvent.PRE_BUILD) != 0)){
-			processClean(event);
-		}
-		
-		if (isBuildStarting(event)){
-			_operation = new ValOperation();
-			_operation.setMultiProject(true);
-			IValidatorVisitor visitor = new IValidatorVisitor(){
-
-				public void visit(Validator validator, IProject project, ValType valType, 
-					ValOperation operation, IProgressMonitor monitor) {
-					
-					validator.validationStarting(project, operation.getState(), monitor);					
-				}				
-			};
-			ValManager.getDefault().accept(visitor, null, ValType.Build, _operation, new NullProgressMonitor());
-			
-		}
-		
-		if (isBuildFinished(event)){
-			ValOperationJob finished = new ValOperationJob(getOperation());
-			finished.schedule();
-			_operation = null;
-		}
-		
-		
-		if (Tracing.isLogging()){
-			String kindName = null;
-			if (kind == IncrementalProjectBuilder.AUTO_BUILD)kindName = "Auto"; //$NON-NLS-1$
-			else if (kind == IncrementalProjectBuilder.CLEAN_BUILD)kindName = "Clean"; //$NON-NLS-1$
-			else if (kind == IncrementalProjectBuilder.FULL_BUILD)kindName = "Full"; //$NON-NLS-1$
-			else if (kind == IncrementalProjectBuilder.INCREMENTAL_BUILD)kindName = "Incremental"; //$NON-NLS-1$
-			else kindName = String.valueOf(kind);
-			
-			StringBuffer b = new StringBuffer(100);
-			
-			String sourceName = "unknown"; //$NON-NLS-1$
-			if (event.getSource() instanceof IResource) {
-				IResource res = (IResource) event.getSource();
-				sourceName = res.getName();
-			}
-			else if (event.getSource() instanceof IWorkspace) {
-				sourceName = "Workspace";			 //$NON-NLS-1$
-			}
-			b.append("ValOperationManager-01: A resource has changed, source="+sourceName+", kind="+kindName+", event type=("+type); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			if ((type & IResourceChangeEvent.POST_BUILD) != 0)b.append(", post build"); //$NON-NLS-1$
-			if ((type & IResourceChangeEvent.PRE_BUILD) != 0){
-				b.append(", pre build"); //$NON-NLS-1$
-			}
-			b.append(')');
-			IResourceDelta rd = event.getDelta();
-			if (rd == null)b.append(", there was no resource delta"); //$NON-NLS-1$
-			
-			Tracing.log(b);
-		}
-		
-	}
-	
-	/**
-	 * Determine if we are starting a new build cycle.
-	 * @param event
-	 * @return
-	 */
-	private boolean isBuildStarting(IResourceChangeEvent event) {
-		int type = event.getType();
-		int kind = event.getBuildKind();
-		boolean isWorkspace = event.getSource() instanceof IWorkspace;
-		boolean preBuild = (type & IResourceChangeEvent.PRE_BUILD) != 0;
-		
-		if (ResourcesPlugin.getWorkspace().isAutoBuilding()){
-			if (isWorkspace && preBuild && kind == IncrementalProjectBuilder.CLEAN_BUILD){
-				_discardAutoPost = 1;
-				return true;
-			}
-			
-			if (isWorkspace && preBuild && kind == IncrementalProjectBuilder.AUTO_BUILD)return true;
-		}
-		else {
-			if (isWorkspace && preBuild && kind == IncrementalProjectBuilder.INCREMENTAL_BUILD)return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Determine if we are at the end of a build cycle. This will give callers the ability to
-	 * clear caches etc.
-	 *  
-	 * @param event
-	 * @return return true if we are just finishing a build.
-	 */
-	private boolean isBuildFinished(IResourceChangeEvent event) {
-		
-		if (_operation == null)return false;
-		
-		int type = event.getType();
-		int kind = event.getBuildKind();
-		boolean isWorkspace = event.getSource() instanceof IWorkspace;
-		boolean postBuild = (type & IResourceChangeEvent.POST_BUILD) != 0;
-
-		
-		if (ResourcesPlugin.getWorkspace().isAutoBuilding()){
-			if (isWorkspace && postBuild && kind == IncrementalProjectBuilder.AUTO_BUILD){
-				if (_discardAutoPost == 1)_discardAutoPost = 0;
-				else return true;
-			}
-		}
-		else {
-			if (isWorkspace && postBuild && kind == IncrementalProjectBuilder.INCREMENTAL_BUILD)return true;
-		}
-		
-		return false;
-	}
-	
-	private void processClean(IResourceChangeEvent event){
-		// Originally I was using this to monitor IProject build requests as well, but that is not not needed
-		// since these will be handled by the IncrementalProjectBuilder.clean() method.
-		IProgressMonitor monitor = new NullProgressMonitor();
-		Object source = event.getSource();
-		if (source instanceof IWorkspace) {
-			ValManager.getDefault().clean(null, getOperation(), monitor);
-		}
-		
-	}
-
-	/**
-	 * Answer the current validation operation. If we are not in a multiple project validation
-	 * we will return a new one. 
-	 */
-	public ValOperation getOperation() {
-		/*
-		 * If we don't have a current operation, we create a new one. The only time we save
-		 * the operation is when we are sure that we are in a multi project validation.
-		 */
-		if (_operation == null)return new ValOperation();
-		return _operation;
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerGlobal.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerGlobal.java
index a187cfa..16389dc 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerGlobal.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerGlobal.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,28 +10,31 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.CopyOnWriteArraySet;
+import java.util.concurrent.atomic.AtomicReference;
 
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.wst.validation.Friend;
 import org.eclipse.wst.validation.MessageSeveritySetting;
-import org.eclipse.wst.validation.ValidationFramework;
 import org.eclipse.wst.validation.Validator;
 import org.eclipse.wst.validation.Validator.V2;
 import org.eclipse.wst.validation.internal.model.FilterGroup;
 import org.eclipse.wst.validation.internal.model.GlobalPreferences;
+import org.eclipse.wst.validation.internal.model.GlobalPreferencesValues;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
 
 /**
  * A class that knows how to manage the global persisted validation settings.
  * @author karasiuk
  */
-public class ValPrefManagerGlobal {
+public final class ValPrefManagerGlobal {
 	
 	/** 
 	 * Version of the framework properties.
@@ -43,20 +46,17 @@
 	 */
 	public final static int frameworkVersion = 3;
 	
-	private List<IValChangedListener> _listeners = new LinkedList<IValChangedListener>();
-	private static ValPrefManagerGlobal _me;
+	private final Set<IValChangedListener> _listeners = new CopyOnWriteArraySet<IValChangedListener>();
 	
-	private List<Validator> _validators;
+	private final AtomicReference<List<Validator>> _validators = new AtomicReference<List<Validator>>();
 	
 	private ValPrefManagerGlobal(){}
 	
 	public static ValPrefManagerGlobal getDefault(){
-		if (_me == null)_me = new ValPrefManagerGlobal();
-		return _me;
+		return Singleton.valPrefManagerGlobal;
 	}
 	
 	public void addListener(IValChangedListener listener){
-		if (_listeners.contains(listener))return;
 		_listeners.add(listener);
 	}
 	
@@ -106,10 +106,10 @@
 	 * Answer the v2 validators that have been overridden by the global preferences.
 	 */
 	public List<Validator> getValidators() throws BackingStoreException {
-		List<Validator> vals = _validators;
-		if (vals == null){
+		List<Validator> vals = _validators.get();
+		while (vals == null){
 			vals = loadValidators();
-			_validators = vals;
+			if (!_validators.compareAndSet(null, vals))vals = _validators.get();
 		}
 		return vals;
 	}
@@ -120,9 +120,9 @@
 	 */
 	private List<Validator> loadValidators() throws BackingStoreException {
 		LinkedList<Validator> list = new LinkedList<Validator>();
-		IEclipsePreferences pref = ValidationFramework.getDefault().getPreferenceStore();
+		PreferencesWrapper pref = PreferencesWrapper.getPreferences(null, null);
 		if (pref.nodeExists(PrefConstants.vals)){
-			Preferences vals = pref.node(PrefConstants.vals);
+			PreferencesWrapper vals = pref.node(PrefConstants.vals);
 			for (String id : vals.childrenNames()){
 				Validator base = ExtensionValidators.instance().getMapV2().get(id);
 				Validator v = loadValidator(id, vals, base);
@@ -150,10 +150,10 @@
 	 * @return A new validator that is a copy of the extension point validator
 	 *         with the updates from the preference store.
 	 */
-	static Validator loadValidator(String id, Preferences valsNode, Validator base) {
+	static Validator loadValidator(String id, PreferencesWrapper valsNode, Validator base) {
 		if (base == null)return null;
 		
-		Preferences vp = valsNode.node(id);
+		PreferencesWrapper vp = valsNode.node(id);
 		base = base.copy();
 		V2 v2 = base.asV2Validator();
 
@@ -173,6 +173,18 @@
 				while(des.hasNext())list.add(FilterGroup.create(des));
 				v2.setGroups(list);
 			}
+			
+			String settings = vp.get(PrefConstants.msgs, ""); //$NON-NLS-1$
+			if (settings.length() >0)
+			{
+				Map<String, MessageSeveritySetting.Severity> map = Msgs.deserialize(settings);
+				Map<String, MessageSeveritySetting> msg = base.getMessageSettings();
+			
+				for (Map.Entry<String, MessageSeveritySetting.Severity> me : map.entrySet()){
+					MessageSeveritySetting ms = msg.get(me.getKey());
+					if (ms != null)ms.setCurrent(me.getValue());
+				}	
+			}
 		}					
 		return base;
 	}
@@ -182,16 +194,18 @@
 	 * 
 	 * @see ValManager#getGlobalPreferences()
 	 */
-	public void loadGlobalPreferences(GlobalPreferences gp) {
-		IEclipsePreferences pref = ValidationFramework.getDefault().getPreferenceStore();
-		gp.setSaveAutomatically(pref.getBoolean(PrefConstants.saveAuto, GlobalPreferences.DefaultAutoSave));
-		gp.setDisableAllValidation(pref.getBoolean(PrefConstants.suspend, GlobalPreferences.DefaultSuspend));
-		gp.setConfirmDialog(pref.getBoolean(PrefConstants.confirmDialog, GlobalPreferences.DefaultConfirm));
-		gp.setOverride(pref.getBoolean(PrefConstants.override, GlobalPreferences.DefaultOverride));
-		gp.setVersion(pref.getInt(PrefConstants.frameworkVersion, GlobalPreferences.DefaultFrameworkVersion));
-		gp.setStateTimeStamp(pref.getLong(PrefConstants.stateTS, 0));
+	public GlobalPreferences loadGlobalPreferences() {
+		PreferencesWrapper pref = PreferencesWrapper.getPreferences(null, null);
+		GlobalPreferencesValues gp = new GlobalPreferencesValues();
+		gp.saveAutomatically = pref.getBoolean(PrefConstants.saveAuto, GlobalPreferences.DefaultAutoSave);
+		gp.disableAllValidation = pref.getBoolean(PrefConstants.suspend, GlobalPreferences.DefaultSuspend);
+		gp.confirmDialog = pref.getBoolean(PrefConstants.confirmDialog, GlobalPreferences.DefaultConfirm);
+		gp.override = pref.getBoolean(PrefConstants.override, GlobalPreferences.DefaultOverride);
+		gp.version = pref.getInt(PrefConstants.frameworkVersion, GlobalPreferences.DefaultFrameworkVersion);
+		gp.stateTimeStamp = pref.getLong(PrefConstants.stateTS, 0);
 		
-		if (gp.getVersion() != frameworkVersion)migrate(gp.getVersion(), pref);
+		if (gp.version != frameworkVersion)migrate(gp.version, pref);
+		return new GlobalPreferences(gp);
 	}
 	
 	/**
@@ -199,7 +213,7 @@
 	 * @param version The incoming version of the preferences.
 	 * @param pref the root of the preference store
 	 */
-	static void migrate(int version, IEclipsePreferences pref) {
+	static void migrate(int version, PreferencesWrapper pref) {
 		try {
 			boolean update = false;
 			if (version == 2){
@@ -282,20 +296,27 @@
 	 *            validators. If we are updating a project's validators, then
 	 *            this map would be the preference page validators.
 	 */
-	static void save(Validator validator, Preferences root, Map<String, Validator> baseValidators) throws BackingStoreException {
+	static void save(Validator validator, PreferencesWrapper root, Map<String, Validator> baseValidators) throws BackingStoreException {
 		Validator.V2 v2 = validator.asV2Validator();
 		if (v2 == null)return;
 		
-		Preferences vp = root.node(validator.getId());
-		if (validator.sameConfig(baseValidators.get(validator.getId()))){
-			vp.removeNode();
+		final String id = validator.getId();
+		boolean hasNode = root.nodeExists(id);
+		
+		if (validator.sameConfig(baseValidators.get(id))){
+			if (hasNode){
+				PreferencesWrapper vp = root.node(id);
+				vp.removeNode();
+			}
 			return;
 		}
 		if (!validator.isChanged())return;
-		if (validator.getChangeCountGlobal() > 0){
+		PreferencesWrapper vp = root.node(id);
+		if (validator.hasGlobalChanges()){
 			Global g = new Global(validator.isManualValidation(), validator.isBuildValidation(), validator.getVersion(),
 				validator.getDelegatingId());
 			vp.put(PrefConstants.global, g.serialize());
+			Friend.setMigrated(validator, false);
 		}
 		
 		if (validator.getChangeCountMessages() > 0){
@@ -314,15 +335,65 @@
 			}
 		}
 	}
+	/**
+	 * Save the validator into the preference store.
+	 * 
+	 * @param validator
+	 *            The validator being saved.
+	 * 
+	 * @param root
+	 *            The top of the preference tree for validators, i.e.
+	 *            /instance/validator-framework-id/vals for workspace validators
+	 *            and /vals for project validators.
+	 *            
+	 * @param baseValidators
+	 *            A map of the validators that are one level higher in the
+	 *            storage hierarchy. So if we are updating the preference page
+	 *            validators, then this map would be the extension point
+	 *            validators. If we are updating a project's validators, then
+	 *            this map would be the preference page validators.
+	 */
+	static void save(ValidatorMutable validator, PreferencesWrapper root, Map<String, Validator> baseValidators) throws BackingStoreException {
+		if (!validator.isV2Validator())return;
+		
+		PreferencesWrapper vp = root.node(validator.getId());
+		if (validator.sameConfig(baseValidators.get(validator.getId()))){
+			vp.removeNode();
+			return;
+		}
+		if (!validator.isChanged())return;
+		if (validator.hasGlobalChanges()){
+			Global g = new Global(validator.isManualValidation(), validator.isBuildValidation(), validator.getVersion(),
+				validator.getDelegatingId());
+			vp.put(PrefConstants.global, g.serialize());
+//			Friend.setMigrated(validator, false);
+		}
+				
+		if (validator.getChangeCountGroups() > 0){
+			FilterGroup[] groups = validator.getGroups();
+			if (groups.length > 0){
+				Serializer ser = new Serializer(500);
+				for (FilterGroup group : groups)group.save(ser);
+				vp.put(PrefConstants.groups, ser.toString());
+			}
+		}
+		if (validator.getChangeCountMessages() > 0){
+			Collection<MessageSeveritySetting> msgs = validator.getMessageSettings().values();
+			if (msgs.size() > 0){
+				vp.put(PrefConstants.msgs, Msgs.serialize(msgs));
+			}
+		}
+		
+	}
 	
 	public void saveAsPrefs(Validator[] val) {
 		try {
-			IEclipsePreferences pref = ValidationFramework.getDefault().getPreferenceStore();
-			Preferences vals = pref.node(PrefConstants.vals);
+			PreferencesWrapper pref = PreferencesWrapper.getPreferences(null, null);
+			PreferencesWrapper vals = pref.node(PrefConstants.vals);
 			Map<String, Validator> base = ExtensionValidators.instance().getMapV2();
 			for (Validator v : val)save(v, vals, base);
 			pref.flush();
-			_validators = null;
+			_validators.set(null);
 			updateListeners(true);
 		}
 		catch (BackingStoreException e){
@@ -336,14 +407,14 @@
 	 */
 	public synchronized void savePreferences(GlobalPreferences gp, Validator[] validators){
 		try {
-			IEclipsePreferences prefs = ValidationFramework.getDefault().getPreferenceStore();
+			PreferencesWrapper prefs = PreferencesWrapper.getPreferences(null, null);
 			savePreferences(prefs, gp);
-			Preferences vals = prefs.node(PrefConstants.vals);
+			PreferencesWrapper vals = prefs.node(PrefConstants.vals);
 
 			Map<String, Validator> base = ExtensionValidators.instance().getMapV2();
 			for (Validator v : validators)save(v, vals, base);
 			prefs.flush();
-			_validators = null;
+			_validators.set(null);
 			updateListeners(true);
 		}
 		catch (BackingStoreException e){
@@ -354,13 +425,79 @@
 	/**
 	 * Save the global preferences and the validators.
 	 */
-	public synchronized void savePreferences(GlobalPreferences gp){
+	public synchronized void savePreferences(GlobalPreferences gp, ValidatorMutable[] validators, Boolean persist){
 		try {
-			IEclipsePreferences prefs = ValidationFramework.getDefault().getPreferenceStore();
-			boolean isConfigChange = gp.isConfigChange();
+			PreferencesWrapper prefs = PreferencesWrapper.getPreferences(null, persist);
+			savePreferences(prefs, gp);
+			PreferencesWrapper vals = prefs.node(PrefConstants.vals);
+			Map<String, Validator> base = ExtensionValidators.instance().getMapV2();
+			for (ValidatorMutable v : validators)save(v, vals, base);
+
+			prefs.flush();
+			_validators.set(null);
+			updateListeners(true);
+		}
+		catch (BackingStoreException e){
+			ValidationPlugin.getPlugin().handleException(e);
+		}
+	}
+		
+	/**
+	 * Save the V1 preferences, so that the old validators continue to work.
+	 */
+	public static void saveV1Preferences(ValidatorMutable[] validators, Boolean persistent){
+		try {
+			GlobalConfiguration gc = ConfigurationManager.getManager().getGlobalConfiguration();
+			gc.setEnabledManualValidators(getEnabledManualValidators(validators));				
+			gc.setEnabledBuildValidators(getEnabledBuildValidators(validators));
+
+			gc.passivate();
+			gc.store(persistent);
+		}
+		catch (InvocationTargetException e){
+			ValidationPlugin.getPlugin().handleException(e);
+		}			
+	}
+
+	/**
+	 * Answer all the V1 validators that are manually enabled.
+	 * @return
+	 */
+	private static ValidatorMetaData[] getEnabledManualValidators(ValidatorMutable[] validators) {
+		List<ValidatorMetaData> list = new LinkedList<ValidatorMetaData>();
+		for (ValidatorMutable v : validators){
+			if (v.isManualValidation() && v.isV1Validator())list.add(v.getVmd());
+		}
+		ValidatorMetaData[] result = new ValidatorMetaData[list.size()];
+		list.toArray(result);
+		return result;
+	}
+
+	/**
+	 * Answer all the V1 validators that are enabled for build.
+	 * @return
+	 */
+	private static ValidatorMetaData[] getEnabledBuildValidators(ValidatorMutable[] validators) {
+		List<ValidatorMetaData> list = new LinkedList<ValidatorMetaData>();
+		for (ValidatorMutable v : validators){
+			if (v.isBuildValidation() && v.isV1Validator())list.add(v.getVmd());
+		}
+		ValidatorMetaData[] result = new ValidatorMetaData[list.size()];
+		list.toArray(result);
+		return result;
+	}
+
+	
+	/**
+	 * Save the global preferences and the validators.
+	 */
+	public synchronized void savePreferences(){
+		try {
+			GlobalPreferences gp = ValManager.getDefault().getGlobalPreferences();
+			PreferencesWrapper prefs = PreferencesWrapper.getPreferences(null, null);
 			savePreferences(prefs, gp);
 			prefs.flush();
-			updateListeners(isConfigChange);
+			updateListeners(true);
 		}
 		catch (BackingStoreException e){
 			ValidationPlugin.getPlugin().handleException(e);
@@ -370,7 +507,7 @@
 	/**
 	 * Save the global preferences and the validators.
 	 */
-	private void savePreferences(IEclipsePreferences prefs, GlobalPreferences gp){
+	private void savePreferences(PreferencesWrapper prefs, GlobalPreferences gp){
 		prefs.putBoolean(PrefConstants.saveAuto, gp.getSaveAutomatically());
 		prefs.putBoolean(PrefConstants.suspend, gp.getDisableAllValidation());
 		prefs.putLong(PrefConstants.stateTS, gp.getStateTimeStamp());
@@ -385,7 +522,7 @@
 	 * @param settings
 	 */
 	public void loadMessages(Validator validator, Map<String, MessageSeveritySetting> settings) {
-		IEclipsePreferences pref = ValidationFramework.getDefault().getPreferenceStore();
+		PreferencesWrapper pref = PreferencesWrapper.getPreferences(null, null);
 		try {
 			loadMessageSettings(validator, settings, pref);
 		}
@@ -401,14 +538,14 @@
 	 * @param settings
 	 * @param root the root of the preference store
 	 */
-	static void loadMessageSettings(Validator val, Map<String, MessageSeveritySetting> settings, Preferences root) 
+	static void loadMessageSettings(Validator val, Map<String, MessageSeveritySetting> settings, PreferencesWrapper root) 
 		throws BackingStoreException {
 		if (!root.nodeExists(PrefConstants.vals))return;
 		
-		Preferences vals = root.node(PrefConstants.vals); 
+		PreferencesWrapper vals = root.node(PrefConstants.vals); 
 		if (!vals.nodeExists(val.getId()))return;
 		
-		Preferences valPrefs = vals.node(val.getId());
+		PreferencesWrapper valPrefs = vals.node(val.getId());
 		String msgs = valPrefs.get(PrefConstants.msgs, ""); //$NON-NLS-1$
 		if (msgs.length() == 0)return;
 		
@@ -446,18 +583,18 @@
 //		}
 //	}
 	
-	private static class Global {
-		private boolean _manual;
-		private boolean _build;
-		private int		_version;
-		private String	_delegating;
+	private final static class Global {
+		private final boolean 	_manual;
+		private final boolean 	_build;
+		private final int		_version;
+		private final String	_delegating;
 		
 		public Global(String value){
 			Deserializer d = new Deserializer(value);
 			_manual = d.getBoolean();
 			_build = d.getBoolean();
 			_version = d.getInt();
-			if (d.hasNext())_delegating = d.getString();
+			_delegating = d.hasNext() ? d.getString() : null;
 		}
 		
 		public Global(boolean manual, boolean build, int version, String delegating){
@@ -484,16 +621,12 @@
 			return _build;
 		}
 
-		public int getVersion() {
-			return _version;
-		}
-
 		public String getDelegating() {
 			return _delegating;
 		}
 	}
 	
-	private static class Msgs {
+	private final static class Msgs {
 		public static String serialize(Collection<MessageSeveritySetting> messages){
 			Serializer s = new Serializer(100);
 			for (MessageSeveritySetting ms : messages){
@@ -520,4 +653,16 @@
 			return map;
 		}
 	}
+	
+	/**
+	 * Store the singleton for the ValPrefManagerGlobal. This approach is used to avoid having to synchronize the
+	 * ValPrefManagerGlobal.getDefault() method.
+	 * 
+	 * @author karasiuk
+	 *
+	 */
+	private final static class Singleton {
+		final static ValPrefManagerGlobal valPrefManagerGlobal = new ValPrefManagerGlobal();
+	}
+
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerProject.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerProject.java
index 706f595..c28b031 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerProject.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerProject.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedList;
@@ -18,27 +19,31 @@
 import java.util.Set;
 
 import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.wst.validation.Friend;
+import org.eclipse.wst.validation.IMutableValidator;
 import org.eclipse.wst.validation.MessageSeveritySetting;
+import org.eclipse.wst.validation.MutableProjectSettings;
 import org.eclipse.wst.validation.Validator;
 import org.eclipse.wst.validation.Validator.V2;
 import org.eclipse.wst.validation.internal.model.ProjectPreferences;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
 import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
 
 /**
  * A class that knows how to manage the project level persisted validation settings.
  * @author karasiuk
  *
  */
-public class ValPrefManagerProject {
+public final class ValPrefManagerProject {
 	
-	private IProject	_project;
-	private static List<IValChangedListener> _listeners = new LinkedList<IValChangedListener>();
+	private final IProject	_project;
+	private final static List<IValChangedListener> _listeners = new LinkedList<IValChangedListener>();
 	
+	/**
+	 * The validators that are in the project preference file, but have
+	 * only been configured to the global preference level. That is they have not had
+	 * any project level customizations applied yet.
+	 */
 	private List<Validator> _validators;
 	
 	public ValPrefManagerProject(IProject project){
@@ -66,20 +71,24 @@
 	 * @return true if it has settings. This does not mean that the settings are enabled, only that it
 	 * has settings.
 	 * 
-	 * @see ValManager#hasEnabledProjectPreferences(IProject)
+	 * @deprecated
 	 */
 	public boolean hasProjectSpecificSettings(){
-		IEclipsePreferences pref = getPreferences();
+		PreferencesWrapper pref = getPreferences(null);
 		
 		if (pref == null)return false;
-		int version = pref.getInt(PrefConstants.frameworkVersion, 0);
-		if (version == 0)return false;
-
 		return true;
 	}
 	
 	/**
-	 * Answer the v2 validators that have been overridden by the global preferences.
+	 * Answer the v2 validators that have been overridden by the project
+	 * preferences. The validators will not have the preference store's
+	 * customizations applied yet. The purpose of this method, is to identify the subset of validators 
+	 * that may later be configured.
+	 * 
+	 * @param baseValidators
+	 *            V2 validators from the extension points, and customized by any
+	 *            global preferences.
 	 */
 	public List<Validator> getValidators(Map<String, Validator> baseValidators) throws BackingStoreException {
 		List<Validator> vals = _validators;
@@ -91,14 +100,22 @@
 	}
 	
 	/**
-	 * Load the validators from the preference store.
-	 * @return the validators that have been overridden by the global references.
+	 * Load the validators from the preference store. The validators will not have the preference store's
+	 * customizations applied yet. The purpose of this method, is to identify the subset of validators 
+	 * that may later be configured.
+	 * 
+	 * @param baseValidators
+	 *            V2 validators from the extension points, and customized by any
+	 *            global preferences.
+	 * @return the validators that are in the project preference file, but have
+	 *         only been configured to the global preference level. That is they have not had
+	 *         any project level customizations applied yet.
 	 */
 	private List<Validator> loadValidators(Map<String, Validator> baseValidators) throws BackingStoreException {
-		LinkedList<Validator> list = new LinkedList<Validator>();
-		IEclipsePreferences pref = getPreferences();
+		List<Validator> list = new LinkedList<Validator>();
+		PreferencesWrapper pref = getPreferences(null);
 		if (pref.nodeExists(PrefConstants.vals)){
-			Preferences vals = pref.node(PrefConstants.vals);
+			PreferencesWrapper vals = pref.node(PrefConstants.vals);
 			for (String id : vals.childrenNames()){
 				Validator base = baseValidators.get(id);
 				Validator v = ValPrefManagerGlobal.loadValidator(id, vals, base);
@@ -111,40 +128,93 @@
 		}
 		return list;
 	}
-	
+		
 	/**
-	 * Update the project preferences from the preference store.
-	 * @return false if the project does not have any specific preferences.
+	 * Answer the setting of the getOverride field.
 	 */
-	public boolean loadProjectPreferencesShallow(ProjectPreferences pp) {
-		IEclipsePreferences pref = getPreferences();
+	public boolean getOverride(){
+		PreferencesWrapper pref = getPreferences(null);
 		
-		if (pref == null)return false;
+		if (!pref.nodeExists())return ProjectPreferences.DefaultOverride;
+		
 		int version = pref.getInt(PrefConstants.frameworkVersion, 0);
-		if (version == 0)return false;
-		
-		if (version != ValPrefManagerGlobal.frameworkVersion)ValPrefManagerGlobal.migrate(version, pref);
+		if (version == 0){
+			try {
+				ProjectConfiguration pc = ConfigurationManager.getManager().getProjectConfiguration(_project);
+				return pc.getDoesProjectOverride();
+			}
+			catch (InvocationTargetException e){
+				// eat it, if it fails we just go with the defaults
+			}
+		}
+		return pref.getBoolean(PrefConstants.override, ProjectPreferences.DefaultOverride);
+	}
 
-		pp.setOverride(pref.getBoolean(PrefConstants.override, ProjectPreferences.DefaultOverride));
-		pp.setSuspend(pref.getBoolean(PrefConstants.suspend, ProjectPreferences.DefaultSuspend));
-		return true;
+	private ProjectPreferences migrateFromBeforeWTP30(IProject project, Map<String, Validator> baseValidators) {
+		try {
+			ProjectConfiguration pc = ConfigurationManager.getManager().getProjectConfiguration(project);
+			
+			List<Validator> list = migrateFromBeforeWTP30(baseValidators, pc);
+			Validator[] vals = new Validator[list.size()];
+			list.toArray(vals);
+			return new ProjectPreferences(project, pc.getDoesProjectOverride(), pc.isDisableAllValidation(), vals);
+		}
+		catch (InvocationTargetException e){
+			// eat it, if it fails we just go with the defaults
+		}
+		return new ProjectPreferences(project);
+	}
+
+	private List<Validator> migrateFromBeforeWTP30(Map<String, Validator> baseValidators, ProjectConfiguration pc)
+			throws InvocationTargetException {
+				
+		Set<String> build = pc.getEnabledBuildlValidators();
+		Set<String> manual = pc.getEnabledManualValidators();
+		
+		List<Validator> list = new LinkedList<Validator>();
+		for (Validator v : baseValidators.values()){
+			V2 v2 = v.asV2Validator();
+			if (v2 != null){
+				boolean isBuild = build == null || build.contains(v2.getValidatorClassname());
+				boolean isManual = manual == null || manual.contains(v2.getValidatorClassname());
+				if ((v.isBuildValidation() != isBuild) || (v.isManualValidation() != isManual)){
+					V2 copy = v2.copy().asV2Validator();
+					copy.setBuildValidation(isBuild);
+					copy.setManualValidation(isManual);
+					copy.setLevel(Validator.Level.Project);
+					Friend.setMigrated(copy, true);
+					list.add(copy);
+				}
+			}
+		}
+		return list;
 	}
 	
 	
-	//FIXME I suspect that this method should be removed	
 	/**
-	 * Update the project preferences from the preference store.
-	 * @return false if the project does not have any specific preferences.
+	 * Answer the project preferences from the preference store.
+	 * @return null if the project does not have any specific preferences.
 	 */
-	public boolean loadProjectPreferences(ProjectPreferences pp, Map<String, Validator> baseValidators) 
+	public ProjectPreferences loadProjectPreferences(IProject project, Map<String, Validator> baseValidators) 
 		throws BackingStoreException {
 		
-		if (!loadProjectPreferencesShallow(pp))return false;
+		PreferencesWrapper pref = getPreferences(null);
+
+		if (pref == null)return null;
+		int version = pref.getInt(PrefConstants.frameworkVersion, 0);
+		if (version == 0){
+			// This means that we have a project that is before WTP 3.0
+			return migrateFromBeforeWTP30(project, baseValidators);
+		}
 		
-		IEclipsePreferences pref = getPreferences();
-		if (!pref.nodeExists(PrefConstants.vals))return true;
+		if (version != ValPrefManagerGlobal.frameworkVersion)ValPrefManagerGlobal.migrate(version, pref);
+
+		if (!pref.nodeExists(PrefConstants.vals)){
+			return new ProjectPreferences(project, pref.getBoolean(PrefConstants.override, ProjectPreferences.DefaultOverride),
+				pref.getBoolean(PrefConstants.suspend, ProjectPreferences.DefaultSuspend), new Validator[0]);
+		}
 		
-		Preferences vp = pref.node(PrefConstants.vals);
+		PreferencesWrapper vp = pref.node(PrefConstants.vals);
 		List<Validator> list = new LinkedList<Validator>();
 		for (String id : vp.childrenNames()){
 			Validator base = baseValidators.get(id);
@@ -157,25 +227,25 @@
 		}
 		Validator[] vals = new Validator[list.size()];
 		list.toArray(vals);
-		pp.setValidators(vals);
-		return true;
+		return new ProjectPreferences(project, pref.getBoolean(PrefConstants.override, ProjectPreferences.DefaultOverride),
+			pref.getBoolean(PrefConstants.suspend, ProjectPreferences.DefaultSuspend), vals);
 	}
 
-	private IEclipsePreferences getPreferences() {
-		IScopeContext projectContext = new ProjectScope(_project);
-		IEclipsePreferences pref = projectContext.getNode(ValidationPlugin.PLUGIN_ID);
-		return pref;
+	private PreferencesWrapper getPreferences(Boolean persist) {
+		return PreferencesWrapper.getPreferences(_project, persist);
 	}
 
-	public void savePreferences(ProjectPreferences projectPreferences, Validator[] validators) {
-		IEclipsePreferences pref = getPreferences();
+	public void savePreferences(ProjectPreferences projectPreferences) {
+		Validator[] validators = projectPreferences.getValidators();
+		PreferencesWrapper pref = getPreferences(null);
 		pref.putBoolean(PrefConstants.suspend, projectPreferences.getSuspend());
 		pref.putBoolean(PrefConstants.override, projectPreferences.getOverride());
 		pref.putInt(PrefConstants.frameworkVersion, ValPrefManagerGlobal.frameworkVersion);
-		Preferences vals = pref.node(PrefConstants.vals);
+		PreferencesWrapper vals = pref.node(PrefConstants.vals);
 		try {
 			Validator[] workspaceVals = ValManager.getDefault().getValidators();
 			Map<String, Validator> base = new HashMap<String, Validator>(workspaceVals.length);
+			for (Validator v : workspaceVals)base.put(v.getId(), v);
 			for (Validator v : validators)ValPrefManagerGlobal.save(v, vals, base);
 			pref.flush();
 			ProjectConfiguration pc = ConfigurationManager.getManager()
@@ -190,6 +260,67 @@
 			ValidationPlugin.getPlugin().handleException(e);
 		}		
 	}
+
+	public void savePreferences(ProjectPreferences projectPreferences, ValidatorMutable[] validators) {
+		PreferencesWrapper pref = getPreferences(null);
+		pref.putBoolean(PrefConstants.suspend, projectPreferences.getSuspend());
+		pref.putBoolean(PrefConstants.override, projectPreferences.getOverride());
+		pref.putInt(PrefConstants.frameworkVersion, ValPrefManagerGlobal.frameworkVersion);
+		try {
+			savePreferences(validators, false, null);
+			pref.flush();
+			updateListeners(_project);
+		}
+		catch (Exception e){
+			ValidationPlugin.getPlugin().handleException(e);
+		}		
+	}
+	
+	public void savePreferences(MutableProjectSettings settings, Boolean persist){
+		IProject project = settings.getProject();
+		PreferencesWrapper pref = PreferencesWrapper.getPreferences(project, persist);
+		pref.putBoolean(PrefConstants.suspend, settings.getSuspend());
+		pref.putBoolean(PrefConstants.override, settings.getOverride());
+		pref.putInt(PrefConstants.frameworkVersion, ValPrefManagerGlobal.frameworkVersion);
+		
+		IMutableValidator[] vms = settings.getValidators();
+		ValidatorMutable[] validators = new ValidatorMutable[vms.length];
+		for (int i=0; i<vms.length;i++)validators[i] = (ValidatorMutable)vms[i];
+		
+		try {
+			savePreferences(validators, false, persist);
+			pref.flush();
+			updateListeners(project);
+		}
+		catch (Exception e){
+			if (project.isAccessible())ValidationPlugin.getPlugin().handleException(e);
+		}
+	}
+	
+	public void savePreferences(ValidatorMutable[] validators, boolean flush, Boolean persist){
+		PreferencesWrapper pref = getPreferences(persist);
+		pref.putInt(PrefConstants.frameworkVersion, ValPrefManagerGlobal.frameworkVersion);
+		PreferencesWrapper vals = pref.node(PrefConstants.vals);
+		try {
+			Validator[] workspaceVals = ValManager.getDefault().getValidators();
+			Map<String, Validator> base = new HashMap<String, Validator>(workspaceVals.length);
+			for (Validator v : workspaceVals)base.put(v.getId(), v);
+			for (ValidatorMutable v : validators)ValPrefManagerGlobal.save(v, vals, base);
+			ProjectConfiguration pc = ConfigurationManager.getManager().getProjectConfiguration(_project);
+			pc.setEnabledBuildValidators(getEnabledBuildValidators(validators));
+			pc.setEnabledManualValidators(getEnabledManualValidators(validators));
+			pc.passivate();
+			pc.store();
+			if (flush){
+				pref.flush();
+				updateListeners(_project);
+			}
+		}
+		catch (Exception e){
+			ValidationPlugin.getPlugin().handleException(e);
+		}		
+		
+	}
 	
 	/**
 	 * Answer all the V1 validators that are enabled for build.
@@ -207,6 +338,18 @@
 	}
 	
 	/**
+	 * Answer all the V1 validators that are enabled for build.
+	 * @return
+	 */
+	private Set<ValidatorMetaData> getEnabledBuildValidators(ValidatorMutable[] validators) {
+		Set<ValidatorMetaData> set = new HashSet<ValidatorMetaData>(50);
+		for (ValidatorMutable v : validators){
+			if (v.isBuildValidation() && v.isV1Validator())set.add(v.getVmd());
+		}
+		return set;
+	}
+	
+	/**
 	 * Answer all the V1 validators that are enabled for manual validation.
 	 * @return
 	 */
@@ -221,9 +364,21 @@
 		return set;
 	}
 	
+	/**
+	 * Answer all the V1 validators that are enabled for manual validation.
+	 * @return
+	 */
+	private Set<ValidatorMetaData> getEnabledManualValidators(ValidatorMutable[] validators) {
+		Set<ValidatorMetaData> set = new HashSet<ValidatorMetaData>(50);
+		for (ValidatorMutable v : validators){
+			if (v.isManualValidation() && v.isV1Validator())set.add(v.getVmd());
+		}
+		return set;
+	}
+	
 	public void loadMessages(Validator validator, Map<String, MessageSeveritySetting> settings) {
 		try {
-			ValPrefManagerGlobal.loadMessageSettings(validator, settings, getPreferences());
+			ValPrefManagerGlobal.loadMessageSettings(validator, settings, getPreferences(null));
 		}
 		catch (BackingStoreException e){
 			ValidationPlugin.getPlugin().handleException(e);
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidationResultSummary.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidationResultSummary.java
new file mode 100644
index 0000000..9e91217
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidationResultSummary.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.validation.internal;
+
+/**
+ * An immutable object that holds a summary of the validation.
+ * @author karasiuk
+ *
+ */
+public final class ValidationResultSummary {
+	
+	private final int 	_error;
+	private final int 	_warning;
+	private final int	_info;
+	
+	public ValidationResultSummary(int error, int warning, int info){
+		_error = error;
+		_warning = warning;
+		_info = info;
+	}
+
+	public int getSeverityError() {
+		return _error;
+	}
+
+	public int getSeverityWarning() {
+		return _warning;
+	}
+
+	public int getSeverityInfo() {
+		return _info;
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidationRunner.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidationRunner.java
index 45bc4c3..01bf297 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidationRunner.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidationRunner.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,12 +10,16 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal;
 
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.IWorkspaceRunnable;
 import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -26,10 +30,15 @@
 
 /**
  * Run the validators on a selected set of resources.
+ * <p>
+ * This is used to run manual validations (i.e. the user selects the Validate menu item), 
+ * or it is invoked programmatically by a third party through the ValidationFramework API.
+ * It is not used for the build based invocation.
+ * </p> 
  * @author karasiuk
  *
  */
-public class ValidationRunner implements IWorkspaceRunnable {
+public final class ValidationRunner implements IWorkspaceRunnable {
 	
 	private Map<IProject, Set<IResource>>		_projects;
 	private	ValType			_valType;
@@ -48,14 +57,43 @@
 	 * 
 	 * @param monitor
 	 *            Progress monitor.
+	 * 
+	 * @param atomic
+	 *            Run as an atomic workspace operation?
 	 */
 	public static ValOperation validate(Map<IProject, Set<IResource>> projects, ValType valType, 
-		IProgressMonitor monitor) throws CoreException{
+		IProgressMonitor monitor, boolean atomic) throws CoreException{
 		ValidationRunner me = new ValidationRunner(projects, valType);
-		ResourcesPlugin.getWorkspace().run(me, monitor);
+		if (atomic)ResourcesPlugin.getWorkspace().run(me, null, IWorkspace.AVOID_UPDATE, monitor);
+		else me.execute(monitor);
 		return me._valOperation;
 	}
 	
+	/**
+	 * Validate the selected file. This is a convenience method, it simply calls the more flexible 
+	 * validate with Map method. 
+	 * 
+	 * @param file
+	 *            The file to be validated.
+	 * 
+	 * @param valType
+	 *            The type of validation that has been requested.
+	 * 
+	 * @param monitor
+	 *            Progress monitor.
+	 * 
+	 * @param atomic
+	 *            Run as an atomic workspace operation?
+	 */
+	public static ValOperation validate(IFile file, ValType valType, IProgressMonitor monitor, boolean atomic) throws CoreException{
+	    final Map<IProject, Set<IResource>> map = new HashMap<IProject, Set<IResource>>(1);
+	      
+	    Set<IResource> set = new HashSet<IResource>(1);
+	    set.add(file);
+	    map.put(file.getProject(), set);
+	    return validate(map, valType, monitor, atomic);		
+	}
+	
 	private ValidationRunner(Map<IProject, Set<IResource>> projects, ValType valType){
 		_projects = projects;
 		_valType = valType;
@@ -86,14 +124,19 @@
 				
 		for (Map.Entry<IProject, Set<IResource>> me : _projects.entrySet()){
 			if (monitor.isCanceled()){
-				_valOperation.getResult().setCanceled(true);
+				_valOperation.setCanceled(true);
 				return _valOperation;
 			}
 			IProject project = me.getKey();
-			ValManager.getDefault().accept(startingVisitor, project, _valType, _valOperation, monitor);
+			manager.accept(startingVisitor, project, _valType, _valOperation, monitor);
 			for (IResource resource : me.getValue()){
-				manager.validate(project, resource, IResourceDelta.NO_CHANGE, _valType, 
-					IncrementalProjectBuilder.AUTO_BUILD, _valOperation, monitor);
+				try {
+					manager.validate(project, resource, IResourceDelta.NO_CHANGE, _valType, 
+							IncrementalProjectBuilder.AUTO_BUILD, _valOperation, monitor);
+				}
+				catch (ResourceUnavailableError error){
+					// if the resource is no longer available, we can't validate it, so we should just move on. 
+				}
 			}
 			manager.accept(finishedVisitor, project, _valType, _valOperation, monitor);
 		}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorExtensionReader.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorExtensionReader.java
index a952b11..0c78ad5 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorExtensionReader.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorExtensionReader.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,12 +10,14 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal;
 
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IContributor;
 import org.eclipse.core.runtime.IExtension;
@@ -23,9 +25,11 @@
 import org.eclipse.core.runtime.IExtensionRegistry;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.validation.MessageSeveritySetting;
 import org.eclipse.wst.validation.Validator;
+import org.eclipse.wst.validation.Validator.V2;
 import org.eclipse.wst.validation.internal.model.FilterGroup;
 import org.eclipse.wst.validation.internal.model.FilterRule;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
@@ -38,31 +42,106 @@
  */
 public class ValidatorExtensionReader {
 	
-	private static ValidatorExtensionReader _me;
+	private static ValidatorExtensionReader _me = new ValidatorExtensionReader();
 	
-	public static ValidatorExtensionReader getDefault(){
-		if (_me == null)_me = new ValidatorExtensionReader();
+	public  static ValidatorExtensionReader getDefault(){
 		return _me;
 	}
 	
 	private ValidatorExtensionReader(){}
 	
 	/**
-	 * Read the extensions.
+	 * Process the v2 extensions, returning all the v2 validators.
 	 */
-	List<Validator> process() {
-		List<Validator> list = new LinkedList<Validator>();
+	Collection<Validator> process() {
+		Map<String,Validator> map = new HashMap<String, Validator>(100);
 		IExtensionPoint extensionPoint = getExtensionPoint();
-		if (extensionPoint == null)return list;
+		if (extensionPoint == null)return map.values();
 				
 		for (IExtension ext : extensionPoint.getExtensions()){
 			for (IConfigurationElement validator : ext.getConfigurationElements()){
-				Validator v = processValidator(validator, ext.getUniqueIdentifier(), ext.getLabel(), null);
-				if (v != null)list.add(v);
+				String id = ext.getUniqueIdentifier();
+				if (Tracing.isEnabled(id)){
+					Validator v = processValidator(validator, id, ext.getLabel(), null);
+					if (v != null)map.put(v.getId(),v);
+				}
 			}
 		}
-		return list;
 		
+		extensionPoint = getExtensionPointExclude();
+		if (extensionPoint != null){
+			for (IExtension ext : extensionPoint.getExtensions()){
+				for (IConfigurationElement validator : ext.getConfigurationElements()){
+					String id = validator.getAttribute(ExtensionConstants.Exclude.id);
+					Validator v = map.get(id);
+					V2 v2 = null;
+					if (v != null)v2 = v.asV2Validator();
+
+					if (v2 == null){
+						String msg = NLS.bind("Plug-in configuration error, extension {0} references validator id {1} but this id does not exist.",  //$NON-NLS-1$
+							extensionPoint.getUniqueIdentifier(), id);
+						CoreException ex = new CoreException(new Status(IStatus.ERROR, ValidationPlugin.PLUGIN_ID, msg));
+						ValidationPlugin.getPlugin().handleException(ex);
+					}
+					else {
+						for (IConfigurationElement exclude : validator.getChildren()){
+							FilterGroup fg = null;
+							try {
+								fg = createFilterGroup(exclude);
+							}
+							catch (Exception e){
+								ValidationPlugin.getPlugin().handleException(e);
+								IContributor contrib = validator.getContributor();
+								String message = NLS.bind(ValMessages.ErrConfig, contrib.getName());
+								ValidationPlugin.getPlugin().logMessage(IStatus.ERROR, message);								
+							}
+							if (fg != null && fg.isExclude()){
+								mergeExcludeGroup(v2, fg);
+							}
+						}
+					}					
+				}
+			}
+			
+		}
+		
+		for (String removedValidator : getRemovedValidators()){
+			if (removedValidator != null) {
+				map.remove(removedValidator);
+			}
+		}
+
+		return map.values();
+		
+	}
+	
+	/**
+	 * Merge the rules from the filter group into the current exclude group, creating a current exclude
+	 * group if need be.
+	 * @param v2
+	 * @param fg
+	 */
+	private void mergeExcludeGroup(V2 v2, FilterGroup fg){
+		FilterGroup existing = null;
+		for (FilterGroup group : v2.getGroups()){
+			if (group.isExclude()){
+				existing = group;
+				break;
+			}
+		}
+		if (existing == null)v2.add(fg);
+		else {
+			List<FilterRule> rules = new LinkedList<FilterRule>();
+			for (FilterRule rule : existing.getRules())rules.add(rule);
+			
+			for (FilterRule rule : fg.getRules())rules.add(rule);
+			
+			FilterRule[] filterRules = new FilterRule[rules.size()];
+			rules.toArray(filterRules);
+			FilterGroup merged = FilterGroup.create(existing.isExclude(), filterRules);
+			
+			v2.replaceFilterGroup(existing, merged);
+		}
 	}
 	
 	/**
@@ -95,7 +174,7 @@
 			v.setVersion(getAttribute(validator, ExtensionConstants.version, 1));
 			v.setSourceId(validator.getAttribute(ExtensionConstants.sourceId));
 			IConfigurationElement[] children = validator.getChildren();
-			for (int i=0; i<children.length; i++)processValidatorChildren(v, children[i]);
+			for (IConfigurationElement child : children)processIncludeAndExcludeElement(v, child);
 		}
 		catch (Exception e){
 			ValidationPlugin.getPlugin().handleException(e);
@@ -128,7 +207,7 @@
 	}
 
 	/**
-	 * Answer the extension point for the validators.
+	 * Answer the extension point for the v2 validators.
 	 * 
 	 * @return null if there is a problem or no extensions.
 	 */
@@ -136,9 +215,35 @@
 		IExtensionRegistry registry = Platform.getExtensionRegistry();
 		return registry.getExtensionPoint(ValidationPlugin.PLUGIN_ID, ExtensionConstants.validator);
 	}
-	
 
 	/**
+	 * Answer the extension point for adding exclusion filters. This is where another validator can
+	 * further restrict an existing validator.
+	 * 
+	 * @return null if there is a problem or no extensions.
+	 */
+	private IExtensionPoint getExtensionPointExclude() {
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		return registry.getExtensionPoint(ValidationPlugin.PLUGIN_ID, ExtensionConstants.excludeExtension);
+	}
+	
+	/**
+	 * Answer the extension point for removing a validator. 
+	 * 
+	 * @return list of validator ID or null if no validator will be removed
+	 */
+	private List<String> getRemovedValidators(){
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		IExtensionPoint extensionPoint = registry.getExtensionPoint(ValidationPlugin.PLUGIN_ID, ExtensionConstants.removedValidatorExtension);
+		List<String> val = new LinkedList<String>();
+		for (IExtension ext : extensionPoint.getExtensions()){
+			for (IConfigurationElement validator : ext.getConfigurationElements()){
+				val.add(validator.getAttribute(ExtensionConstants.RemovedValidator.validatorIDAttr));
+			}
+		}
+		return val;
+	}
+	/**
 	 * Process a message element for the validator, by creating a MessageCategory for it.
 	 * 
 	 * @param ce a MessageCategory element.
@@ -155,37 +260,67 @@
 	}
 
 	/** 
-	 * Process the children of the validator tag, i.e. include and exclude groups.
+	 * Process the include and exclude elements.
 	 * 
-	 *  @param v the validator that we are building up
-	 *  @param group the include and exclude elements
+	 *  @param v The validator that we are building up.
+	 *  @param group The children of the validator tag. This may included include and exclude elements.
+	 *  Other elements are ignored. 
 	 */
-	private void processValidatorChildren(Validator.V2 v, IConfigurationElement group) {
-		FilterGroup fg = FilterGroup.create(group.getName());
-		if (fg == null)return;			
+	private void processIncludeAndExcludeElement(Validator.V2 v, IConfigurationElement group) {
+		FilterGroup fg = createFilterGroup(group);
+		if (fg != null)v.add(fg);
+	}
+	
+	/**
+	 * Process an include or exclude element, returning a filter group for it.
+	 * 
+	 * @param group
+	 *            An include, exclude or some other element. Only include and
+	 *            exclude elements are processed, other types are ignored.
+	 *            
+	 * @return a filter group that corresponds to the include or exclude
+	 *         element, or null if the element was not an include or exclude
+	 *         element.
+	 */
+	private FilterGroup createFilterGroup(IConfigurationElement group){
+		String name = group.getName();
+		if (!FilterGroup.isKnownName(name))return null; 
+		
 		
 		IConfigurationElement[] rules = group.getChildren(ExtensionConstants.rules);
 		// there should only be one
+		List<FilterRule> list = new LinkedList<FilterRule>();
 		for (int i=0; i<rules.length; i++){
 			IConfigurationElement[] r = rules[i].getChildren();
 			for(int j=0; j<r.length; j++){
-				processRule(fg, r[j]);
+				list.add(processRule(r[j]));
 			}
 		}
-		v.add(fg);
+		FilterRule[] filterRules = new FilterRule[list.size()];
+		list.toArray(filterRules);
+		return FilterGroup.create(name, filterRules);
 	}
 
 	/**
 	 * Process a rule in one of the rule groups.
 	 * 
-	 * @param fg the filter group that we are building up 
 	 * @param rule a rule in the group, like fileext.
 	 */
-	private void processRule(FilterGroup fg, IConfigurationElement rule) {
-		FilterRule fr = FilterRule.create(rule.getName());
-		if (fr == null)throw new IllegalStateException(ValMessages.ErrFilterRule);
-		fr.setData(rule);
-		fg.add(fr);
+	private FilterRule processRule(IConfigurationElement rule) {
+		FilterRule fr = FilterRule.create(rule);
+		if (fr == null){
+			String contributor = ""; //$NON-NLS-1$
+			String name = ""; //$NON-NLS-1$
+			try {
+				contributor = rule.getDeclaringExtension().getContributor().getName();
+				name = rule.getName();
+			}
+			catch (Exception e){
+				// eat it
+			}
+			throw new IllegalStateException(NLS.bind(ValMessages.ErrFilterRule, contributor, name));
+		}
+		return fr;
 	}
 	
 	/**
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorGroupExtensionReader.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorGroupExtensionReader.java
new file mode 100644
index 0000000..62543f7
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorGroupExtensionReader.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.validation.internal;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.validation.IValidatorGroupListener;
+import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
+
+/**
+ * Process the validator group (for use with validator version 2 only) extension point.
+ * 
+ * @author nitin
+ * 
+ */
+public class ValidatorGroupExtensionReader {
+
+	private static final String DOT = "."; //$NON-NLS-1$
+	private static ValidatorGroupExtensionReader _instance;
+
+	public static ValidatorGroupExtensionReader getDefault() {
+		if (_instance == null)_instance = new ValidatorGroupExtensionReader();
+		return _instance;
+	}
+
+	/**
+	 * Map of group IDs to configuration elements
+	 */
+	private Map<String, List<IConfigurationElement>> _map;
+	
+	/**
+	 * Map of group ID's to resolved configuration elements.
+	 */
+	private Map<String, IValidatorGroupListener[]> _resolved;
+
+	private ValidatorGroupExtensionReader() {
+		init();
+	}
+
+	/**
+	 * Answer the listeners with this group id.
+	 * @param groupID
+	 * @return an empty array there are no listeners for this group id.
+	 */
+	IValidatorGroupListener[] createListeners(String groupID) throws CoreException {
+		IValidatorGroupListener[] result = _resolved.get(groupID);
+		if (result != null)return result;
+				
+		List<IConfigurationElement> elements = _map.get(groupID);
+		if (elements == null){
+			_resolved.put(groupID, new IValidatorGroupListener[0]);
+			String msg = NLS.bind("Configuration error, there is no validation listener group with id: {0}", groupID); //$NON-NLS-1$
+			Status status = new Status(IStatus.ERROR, ValidationPlugin.PLUGIN_ID, msg);
+			throw new CoreException(status);
+		}
+		
+		List<IValidatorGroupListener> listeners = new ArrayList<IValidatorGroupListener>(elements.size());
+		for (IConfigurationElement element : elements) {
+			IValidatorGroupListener listener;
+			try {
+				listener = (IValidatorGroupListener) element.createExecutableExtension(ExtensionConstants.Group.attClass);
+				listeners.add(listener);
+			}
+			catch (Exception e) {
+				ValidationPlugin.getPlugin().handleException(e);
+				listeners = new ArrayList<IValidatorGroupListener>();
+			}
+		}
+
+		result = listeners.toArray(new IValidatorGroupListener[listeners.size()]);
+		_resolved.put(groupID, result);
+		return result;
+	}
+
+	/**
+	 * Answer the extension point for the validatorGroups.
+	 * 
+	 * @return null if there is a problem or no extensions.
+	 */
+	private IExtensionPoint getExtensionPoint() {
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		return registry.getExtensionPoint(ValidationPlugin.PLUGIN_ID, ExtensionConstants.group);
+	}
+
+	private void init() {
+		_map = new HashMap<String, List<IConfigurationElement>>(4);
+		_resolved = new HashMap<String, IValidatorGroupListener[]>(4);
+
+		IExtensionPoint extensionPoint = getExtensionPoint();
+		if (extensionPoint != null) {
+			for (IExtension ext : extensionPoint.getExtensions()) {
+				for (IConfigurationElement group : ext.getConfigurationElements()) {
+					processGroupElement(group);
+				}
+			}
+		}
+	}
+
+	private void processGroupElement(IConfigurationElement element) {
+		if (!ExtensionConstants.Group.elementGroup.equals(element.getName()))return;
+		
+		String id = element.getAttribute(ExtensionConstants.Group.attId);
+		if (id == null)throw new IllegalStateException("Configuration error, the " +  //$NON-NLS-1$
+			ExtensionConstants.Group.attId + " is required"); //$NON-NLS-1$
+		// force the use of a qualified ID
+		if (id.indexOf(DOT) < 0) {
+			id = element.getContributor().getName() + DOT + id;
+		}
+		IConfigurationElement[] newElements = element.getChildren(ExtensionConstants.Group.elementListener);
+		if (newElements.length > 0) {
+			List<IConfigurationElement> elements = _map.get(id);
+			if (elements == null) {
+				elements = new ArrayList<IConfigurationElement>();
+				_map.put(id, elements);
+			}
+			elements.addAll(Arrays.asList(newElements));
+		}
+	}
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorMutable.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorMutable.java
new file mode 100644
index 0000000..5ab29c5
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorMutable.java
@@ -0,0 +1,262 @@
+package org.eclipse.wst.validation.internal;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.wst.validation.IMutableValidator;
+import org.eclipse.wst.validation.MessageSeveritySetting;
+import org.eclipse.wst.validation.Validator;
+import org.eclipse.wst.validation.Validator.V1;
+import org.eclipse.wst.validation.Validator.V2;
+import org.eclipse.wst.validation.internal.model.FilterGroup;
+
+/**
+ * The mutable fields that a user can change through the preference or property page.
+ * @author karasiuk
+ *
+ */
+public final class ValidatorMutable implements IAdaptable, IMutableValidator {
+	
+	private boolean _build;
+	private boolean	_manual;
+	private String _delegatingId;
+	
+	private int _changeCountGroups;
+	private int _changeCountMessages;
+	
+	private final String	_name;
+	private final String 	_sourceId;
+	private final boolean _isV1;
+	private final boolean _isV2;
+	private final ValidatorMetaData _vmd;
+	private final String _id;
+	private final int	_version;
+
+	private FilterGroup[] _groups;
+	private final Map<String, MessageSeveritySetting> _messageSettings;
+	private final String _validatorClassname;
+	
+	private final boolean 	_origBuild;
+	private final boolean 	_origManual;
+	private final String	_origDelegating;
+
+	public ValidatorMutable(Validator validator) {
+		_name = validator.getName();
+		_sourceId = validator.getSourceId();
+		_manual = validator.isManualValidation();
+		_build = validator.isBuildValidation();
+		V2 v2 = validator.asV2Validator();
+		_isV2 = v2 != null;
+		_delegatingId = validator.getDelegatingId();
+		
+		V1 v1 = validator.asV1Validator();
+		_isV1 = v1 != null;
+		_vmd = _isV1 ? v1.getVmd() : null;
+		_id = validator.getId();
+		
+		_origBuild = _build;
+		_origDelegating = _delegatingId;
+		_origManual = _manual;
+		_version = validator.getVersion();
+		_validatorClassname = validator.getValidatorClassname();
+		_messageSettings = new HashMap<String, MessageSeveritySetting>(10); 
+		for (Map.Entry<String, MessageSeveritySetting> me : validator.getMessageSettings().entrySet()){
+			_messageSettings.put(me.getKey(), me.getValue().copy());
+		}
+		
+		if (v2 != null){
+			FilterGroup[] groups = v2.getGroups();
+			_groups = new FilterGroup[groups.length];
+			System.arraycopy(groups, 0, _groups, 0, groups.length);
+		}
+	}
+
+	public ValidatorMutable(ValidatorMutable val) {
+		_build = val._build;
+		_delegatingId = val._delegatingId;
+		FilterGroup[] groups = val.getGroups();
+		_groups = new FilterGroup[groups.length];
+		System.arraycopy(groups, 0, _groups, 0, groups.length);
+		
+		_id = val._id;
+		_isV1 = val._isV1;
+		_isV2 = val._isV2;
+		_manual = val._manual;
+		_messageSettings = new HashMap<String, MessageSeveritySetting>(10); 
+		for (Map.Entry<String, MessageSeveritySetting> me : val.getMessageSettings().entrySet()){
+			_messageSettings.put(me.getKey(), me.getValue().copy());
+		}
+
+		_name = val._name;
+		_origBuild = val._origBuild;
+		_origDelegating = val._origDelegating;
+		_origManual = val._origManual;
+		_sourceId = val._sourceId;
+		_validatorClassname = val._validatorClassname;
+		_version = val._version;
+		_vmd = val._vmd;
+	}
+
+	public void setBuildValidation(boolean build) {
+		_build = build;		
+	}
+
+	public void setManualValidation(boolean manual) {
+		_manual = manual;
+	}
+
+	public String getName() {
+		return _name;
+	}
+
+	public boolean isManualValidation() {
+		return _manual;
+	}
+
+	public boolean isBuildValidation() {
+		return _build;
+	}
+
+	public boolean isV2Validator() {
+		return _isV2;
+	}
+
+	public String getDelegatingId() {
+		return _delegatingId;
+	}
+
+	/**
+	 * The caller of this method must not change the ValidatorMetaData.
+	 */
+	public ValidatorMetaData getVmd() {
+		return _vmd;
+	}
+
+	public boolean isV1Validator() {
+		return _isV1;
+	}
+
+	public String getId() {
+		return _id;
+	}
+
+	/**
+	 * Answer true if any of your settings have changed.
+	 */
+	public boolean isChanged() {
+		if (hasGlobalChanges())return true;
+		if (_changeCountGroups > 0 || _changeCountMessages > 0)return true;
+		return false;
+	}
+
+	public boolean hasGlobalChanges() {
+		if (_origBuild != _build)return true;
+		if (_origManual != _manual)return true;
+		if (!Misc.same(_origDelegating, _delegatingId))return true;
+		return false;
+	}
+
+	public int getVersion() {
+		return _version;
+	}
+
+	public void replaceFilterGroup(FilterGroup existing, FilterGroup merged) {
+		int i = find(existing);
+		if (i == -1)add(merged);  // this should never happen
+		else {
+			_groups[i] = merged;
+			bumpChangeCountGroups();
+		}
+	}
+	
+	public void remove(FilterGroup group) {
+		int i = find(group);
+		if (i == -1)return;
+		
+		FilterGroup[] groups = new FilterGroup[_groups.length-1];
+		if (i > 0)System.arraycopy(_groups, 0, groups, 0, i);
+		if (i < groups.length)System.arraycopy(_groups, i+1, groups, i, groups.length-i);
+		_groups = groups;
+		bumpChangeCountGroups();
+	}
+	
+	private int find(FilterGroup group) {
+		for (int i=0; i<_groups.length; i++)if (group == _groups[i])return i;
+		return -1;
+	}
+
+	public void add(FilterGroup fg) {
+		assert fg != null;
+		FilterGroup[] groups = new FilterGroup[_groups.length+1];
+		System.arraycopy(_groups, 0, groups, 0, _groups.length);
+		groups[_groups.length] = fg;
+		_groups = groups;
+		bumpChangeCountGroups();
+	}
+	
+	private void bumpChangeCountGroups(){
+		_changeCountGroups++;
+	}
+
+	public int getChangeCountGroups() {
+		return _changeCountGroups;
+	}
+	
+	public FilterGroup[] getGroups(){
+		return _groups;
+	}
+
+	public void setDelegatingId(String id) {
+		_delegatingId = id;	
+	}
+
+	public Map<String, MessageSeveritySetting> getMessageSettings() {
+		return _messageSettings;
+	}
+
+	public int getChangeCountMessages(){
+		return _changeCountMessages;
+	}
+	
+	public void bumpChangeCountMessages(){
+		_changeCountMessages++;
+	}
+
+	public String getValidatorClassname() {
+		return _validatorClassname;
+	}
+
+	@SuppressWarnings("unchecked")
+	public Object getAdapter(Class adapter) {
+		return Platform.getAdapterManager().getAdapter(this, adapter);
+	}
+
+	public boolean sameConfig(Validator validator) {
+		if (validator == null)return false;
+		return hashCodeForConfig() == validator.hashCodeForConfig();
+	}
+
+	private int hashCodeForConfig() {
+		int h = 0;
+		if (_build)h += 101;
+		if (_delegatingId != null)h += _delegatingId.hashCode();
+		if (_manual)h += 201;
+		if (_messageSettings != null){
+			for (MessageSeveritySetting ms : _messageSettings.values())h += ms.hashCode();
+		}
+		if (_sourceId != null)h += _sourceId.hashCode();
+		h += _version;
+		if (_id != null)h += _id.hashCode();
+		for (FilterGroup fg : _groups)h += fg.hashCodeForConfig();
+		return h;
+	}
+
+	@Override
+	public String toString() {
+		return _name;
+	}
+
+
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/FilterGroup.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/FilterGroup.java
index bca235d..6d20dd5 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/FilterGroup.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/FilterGroup.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -17,16 +17,20 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.wst.validation.internal.ContentTypeWrapper;
 import org.eclipse.wst.validation.internal.Deserializer;
 import org.eclipse.wst.validation.internal.ExtensionConstants;
 import org.eclipse.wst.validation.internal.Serializer;
 import org.eclipse.wst.validation.internal.ValMessages;
 
+/**
+ * An immutable group of filter rules.
+ * @author karasiuk
+ *
+ */
 public abstract class FilterGroup implements IAdaptable {
 	
-	/** A list of FilterRule's for this group. */
-	List<FilterRule> _rules = new LinkedList<FilterRule>();
-	FilterRule[] _rulesArray;
+	private final FilterRule[] _rules;
 	
 	/** The version number of the serialization (in case we ever need to change this) */
 	private static final int SerializationVersion = 1;
@@ -38,9 +42,9 @@
 	 * 
 	 * @return null if the name parameter isn't correct.
 	 */
-	public static FilterGroup create(String name) {
-		if (ExtensionConstants.include.equals(name))return new FilterIncludeGroup();
-		if (ExtensionConstants.exclude.equals(name))return new FilterExcludeGroup();
+	public static FilterGroup create(String name, FilterRule[] rules) {
+		if (ExtensionConstants.include.equals(name))return new FilterIncludeGroup(rules);
+		if (ExtensionConstants.exclude.equals(name))return new FilterExcludeGroup(rules);
 		return null;
 	}
 	
@@ -53,9 +57,14 @@
 	public static FilterGroup create(Deserializer des){
 		des.getInt(); // get the version
 		String type = des.getString();
-		FilterGroup fg = create(type);
-		if (fg != null)fg.load(des);
-		return fg;
+		
+		int numberRules = des.getInt();
+		List<FilterRule> list = new LinkedList<FilterRule>();
+		for (int i=0; i<numberRules; i++)list.add(FilterRule.create(des));
+		FilterRule[] rules = new FilterRule[list.size()];
+		list.toArray(rules);
+
+		return create(type, rules);
 	}
 
 	/**
@@ -63,42 +72,36 @@
 	 * 
 	 * @param exclude if true an exclusion group is returned, otherwise an inclusion group is returned.
 	 */
-	public static FilterGroup create(boolean exclude){
-		if (exclude) return new FilterExcludeGroup();
-		return new FilterIncludeGroup();
+	public static FilterGroup create(boolean exclude, FilterRule[] rules){
+		if (exclude) return new FilterExcludeGroup(rules);
+		return new FilterIncludeGroup(rules);
 	}
 
-	public void add(FilterRule fr) {
-		_rulesArray = null;
-		_rules.add(fr);
-	}
-	
 	/**
-	 * If you can, remove this rule from yourself.
-	 * 
-	 * @param fr the rule that is being removed
-	 * 
-	 * @return true if the rule was removed, and false if it was not. If you didn't include the rule in the
-	 * first place, false would be returned.
+	 * Answer true if this is a supported type of group.
+	 * @param name Type of group that is being tested.
+	 * @return
 	 */
-	public synchronized boolean remove(FilterRule fr){
-		if (_rules.remove(fr)){
-			_rulesArray =  null;
-			return true;
-		}
+	public static boolean isKnownName(String name) {
+		if (ExtensionConstants.include.equals(name))return true;
+		if (ExtensionConstants.exclude.equals(name))return true;
 		return false;
 	}
+
 	
-	public FilterRule[] getRules(){
-		FilterRule[] rules = _rulesArray;
-		if (rules == null){
-			rules = new FilterRule[_rules.size()];
-			_rules.toArray(rules);
-			_rulesArray = rules;
-		}
+	private FilterGroup(FilterRule[] rules){
+		_rules = rules;
+	}
+		
+	/**
+	 * The rules in the group.
+	 */
+	public final FilterRule[] getRules(){
+		FilterRule[] rules = new FilterRule[_rules.length];
+		System.arraycopy(_rules, 0, rules, 0, _rules.length);
 		return rules;
 	}
-	
+		
 	/**
 	 * Answer the internal type of group, e.g. "include" or "exclude".
 	 */
@@ -107,11 +110,16 @@
 	/** Answer the type as a type that can be displayed to a user, that is it has been localized. */
 	public abstract String getDisplayableType();
 	
+	@SuppressWarnings("unchecked")
 	public Object getAdapter(Class adapter) {
 		return Platform.getAdapterManager().getAdapter(this, adapter);
 	}
 	
-	public static class FilterIncludeGroup extends FilterGroup {
+	public static final class FilterIncludeGroup extends FilterGroup {
+		
+		private FilterIncludeGroup(FilterRule[] rules){
+			super(rules);
+		}
 
 		public String getType() {
 			return ExtensionConstants.include;
@@ -121,40 +129,31 @@
 			return ValMessages.GroupInclude;
 		}
 		
-		protected boolean isInclude() {
+		public boolean isInclude() {
 			return true;
 		}
 		
-		protected FilterGroup create() {
-			return new FilterIncludeGroup();
-		}
-		
 	}
 	
 	
-	public static class FilterExcludeGroup extends FilterGroup {
+	public static final class FilterExcludeGroup extends FilterGroup {
+		
+		private FilterExcludeGroup(FilterRule[] rules){
+			super(rules);
+		}
 		public String getType() {
 			return ExtensionConstants.exclude;
 		}
 		
-		protected FilterGroup create() {
-			return new FilterExcludeGroup();
-		}
-		
 		public String getDisplayableType() {
 			return ValMessages.GroupExclude;
 		}
 		
-		protected boolean isExclude() {
+		public boolean isExclude() {
 			return true;
 		}		
 	}
-	
-	protected void load(Deserializer des) {
-		int rules = des.getInt();
-		for (int i=0; i<rules; i++)_rules.add(FilterRule.create(des));
-	}
-	
+		
 	/**
 	 * Save your settings into the serializer.
 	 * @param ser
@@ -162,7 +161,7 @@
 	public void save(Serializer ser){
 		ser.put(SerializationVersion);
 		ser.put(getType());
-		ser.put(_rules.size());
+		ser.put(_rules.length);
 		for (FilterRule rule : _rules)rule.save(ser);		
 	}
 
@@ -173,14 +172,13 @@
 	 * @param resource the resource that is being validated. This can be null, in which case
 	 * only the project level checks are performed.
 	 */
-	public boolean shouldValidate(IProject project, IResource resource) {
-		FilterRule[] rules = getRules();
+	public boolean shouldValidate(IProject project, IResource resource, ContentTypeWrapper contentTypeWrapper) {
 		boolean exclude = isExclude();
 		boolean include = isInclude();
 		int count = 0;
-		for (FilterRule rule : rules){
+		for (FilterRule rule : _rules){
 			if (resource != null){
-				Boolean match = rule.matchesResource(resource);
+				Boolean match = rule.matchesResource(resource, contentTypeWrapper);
 				if (match != null)count++;
 				if (exclude && match != null && match)return false;
 				if (include && match != null && match)return true;
@@ -200,7 +198,7 @@
 	 * Answer true if this is an inclusion filter, that is at least one of the rules must
 	 * match in order to validate the resource.
 	 */
-	protected boolean isInclude() {
+	public boolean isInclude() {
 		return false;
 	}
 
@@ -208,32 +206,48 @@
 	 * Answer true if this is an exclusion filter, that is if any of the rules match the 
 	 * resource is not validated.
 	 */
-	protected boolean isExclude() {
+	public boolean isExclude() {
 		return false;
 	}
 	
-	protected abstract FilterGroup create();
-
-	/** Answer a deep copy of yourself. */
-	public FilterGroup copy() {
-		FilterGroup fg = create();
-		FilterRule[] rules = getRules();
-		fg._rulesArray = new FilterRule[rules.length];
-		for (int i=0; i<rules.length; i++){
-			fg._rulesArray[i] = rules[i].copy();
-			fg._rules.add(fg._rulesArray[i]);
-		}
-		return fg;
-	}
-
 	public int hashCodeForConfig() {
 		int h = 0;
 		if (isExclude())h += 13;
-		if (_rules != null){
-			for (FilterRule fr : _rules)h += fr.hashCodeForConfig();
-		}
+		for (FilterRule fr : _rules)h += fr.hashCodeForConfig();
 		return h;
 	}
-	
+
+	/**
+	 * Create a new group by adding a rule to an existing group.
+	 * @param baseGroup The group that holds the existing rules.
+	 * @param rule The new rule that is being added
+	 * @return
+	 */
+	public static FilterGroup addRule(FilterGroup baseGroup, FilterRule rule) {
+		List<FilterRule> list = new LinkedList<FilterRule>();
+		for (FilterRule r : baseGroup._rules)list.add(r);
+		list.add(rule);
+		
+		FilterRule[] rules = new FilterRule[list.size()];
+		list.toArray(rules);
+		return FilterGroup.create(baseGroup.isExclude(), rules);
+	}
+
+	/**
+	 * Create a new group by removing a rule from an existing group.
+	 * @param baseGroup The group that holds the existing rules.
+	 * @param rule The rule that is being removed
+	 * @return
+	 */
+	public static FilterGroup removeRule(FilterGroup baseGroup,	FilterRule rule) {
+		List<FilterRule> list = new LinkedList<FilterRule>();
+		for (FilterRule r : baseGroup._rules){
+			if (!r.equals(rule))list.add(r);
+		}
+		
+		FilterRule[] rules = new FilterRule[list.size()];
+		list.toArray(rules);
+		return FilterGroup.create(baseGroup.isExclude(), rules);
+	}	
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/FilterRule.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/FilterRule.java
index 5c2fe84..dffd276 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/FilterRule.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/FilterRule.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal.model;
 
+import java.util.regex.Pattern;
+
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
@@ -17,85 +19,111 @@
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentDescription;
 import org.eclipse.core.runtime.content.IContentType;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
+import org.eclipse.wst.validation.internal.ContentTypeWrapper;
 import org.eclipse.wst.validation.internal.Deserializer;
 import org.eclipse.wst.validation.internal.ExtensionConstants;
-import org.eclipse.wst.validation.internal.PrefConstants;
 import org.eclipse.wst.validation.internal.Serializer;
 import org.eclipse.wst.validation.internal.Tracing;
 import org.eclipse.wst.validation.internal.ValMessages;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
-import org.osgi.service.prefs.Preferences;
 
 /**
  * A rule that is used to filter out (or in) validation on a resource.
+ * The concrete classes are all immutable.
  * @author karasiuk
  *
  */
 public abstract class FilterRule implements IAdaptable {
 	
-	protected String _pattern;
+	protected final String _pattern;
+	
+	protected static final String PortableFileDelim = "/"; //$NON-NLS-1$
 	
 	/**
-	 * Create a rule based on an extension element.
-	 * @param name the extension element, it can be one of projectNature, facet, fileext, file or contentType
+	 * Create a rule based on a configuration element.
+	 * 
+	 * @param rule
+	 *            The configuration element, see the extension point for details.
 	 * @return null if there is a problem.
 	 */
-	public static FilterRule create(String name){
-		if (ExtensionConstants.Rule.fileext.equals(name))return new FileExt();
-		if (ExtensionConstants.Rule.projectNature.equals(name))return new ProjectNature();
-		if (ExtensionConstants.Rule.file.equals(name))return new File();
-		if (ExtensionConstants.Rule.contentType.equals(name))return new ContentType();
-		if (ExtensionConstants.Rule.facet.equals(name))return new Facet();
+	public static FilterRule create(IConfigurationElement rule){
+		String name = rule.getName();
+		if (ExtensionConstants.Rule.fileext.equals(name))return new FileExt(rule);
+		if (ExtensionConstants.Rule.projectNature.equals(name))return new ProjectNature(rule);
+		if (ExtensionConstants.Rule.file.equals(name))return File.createFile(rule);
+		if (ExtensionConstants.Rule.contentType.equals(name))return ContentType.createContentType(rule);
+		if (ExtensionConstants.Rule.facet.equals(name))return new Facet(rule);
+		if (ExtensionConstants.Rule.pattern.equals(name))return FilePattern.createFilePattern(rule);
 		return null;
 	}
 	
-	public static FilterRule create(Deserializer des) {
+	static FilterRule create(Deserializer des) {
 		String type = des.getString();
-		FilterRule fr = create(type);
-		if (fr != null)fr.load(des);
-		return fr;
+		if (ExtensionConstants.Rule.fileext.equals(type)){
+			String pattern = des.getString();
+			boolean caseSensitive = des.getBoolean();
+			return new FileExt(pattern, caseSensitive);
+		}
+		
+		if (ExtensionConstants.Rule.projectNature.equals(type)){
+			String pattern = des.getString();
+			return new ProjectNature(pattern);
+		}
+		
+		if (ExtensionConstants.Rule.file.equals(type)){
+			String pattern = des.getString();
+			boolean caseSensitive = des.getBoolean();
+			int fileType = des.getInt();
+			return new File(pattern, caseSensitive, fileType);
+		}
+		
+		if (ExtensionConstants.Rule.contentType.equals(type)){
+			String pattern = des.getString();
+			boolean exactMatch = des.getBoolean();
+			return new ContentType(pattern, exactMatch);
+		}
+		
+		if (ExtensionConstants.Rule.facet.equals(type)){
+			String pattern = des.getString();
+			return new Facet(pattern, null);
+		}
+		
+		if (ExtensionConstants.Rule.pattern.equals(type)){
+			String pattern = des.getString();
+			boolean caseSensitive = des.getBoolean();
+			return new FilePattern(pattern, caseSensitive);
+		}
+		return null;
 	}
 
 	
 	public static FilterRule createFile(String pattern, boolean caseSensitive, int type){
-		File ext = new File();
-		ext.setData(pattern);
-		ext.setCaseSensitive(caseSensitive);
-		ext.setType(type);
-		return ext;
+		return new File(pattern, caseSensitive, type);
 	}
 	
 	public static FilterRule createFileExt(String pattern, boolean caseSensitive){
-		FileExt ext = new FileExt();
-		ext.setData(pattern);
-		ext.setCaseSensitive(caseSensitive);
+		FileExt ext = new FileExt(pattern, caseSensitive);
 		return ext;
 	}
 	
 	public static FilterRule createFacet(String facetId){
-		Facet facet = new Facet();
-		facet.setData(facetId);
-		return facet;
+		return new Facet(facetId, null);
 	}
 	
 	public static FilterRule createProject(String projectNature){
-		ProjectNature pn = new ProjectNature();
-		pn.setData(projectNature);
-		return pn;
+		return new ProjectNature(projectNature);
 	}
 	
 	public static FilterRule createContentType(String contentType, boolean exactMatch){
-		ContentType ct = new ContentType();
-		ct.setData(contentType);
-		ct.setExactMatch(exactMatch);
-		return ct;
+		return new ContentType(contentType, exactMatch);
 	}
-	
-	public abstract void setData(IConfigurationElement rule);
+		
+	protected FilterRule(String pattern){
+		_pattern = pattern;
+	}
 
 	/** 
 	 * Answer true if the rule matches the resource, false if it doesn't, and
@@ -103,7 +131,7 @@
 	 * 
 	 * 	@param resource the resource that is being validated.
 	 */
-	public Boolean matchesResource(IResource resource){
+	public Boolean matchesResource(IResource resource, ContentTypeWrapper contentTypeWrapper){
 		return null;
 	}
 
@@ -116,11 +144,7 @@
 	public Boolean matchesProject(IProject project){
 		return null;
 	}
-	
-	public void setData(String data){
-		_pattern = data;
-	}
-	
+		
 	public String toString() {
 		return getDisplayableType() + ": " + _pattern; //$NON-NLS-1$
 	}
@@ -140,31 +164,57 @@
 	/** Answer a type that can be displayed to an end user. */
 	public abstract String getDisplayableType();
 	
-	public boolean asBoolean(String value, boolean aDefault){
+	public static boolean asBoolean(String value, boolean aDefault){
 		if (value == null)return aDefault;
 		if (value.equals(ExtensionConstants.True))return true;
 		if (value.equals(ExtensionConstants.False))return false;
 		return aDefault;
 	}
 	
+	@SuppressWarnings("unchecked")
 	public Object getAdapter(Class adapter) {
 		return Platform.getAdapterManager().getAdapter(this, adapter);
 	}
 	
-	public static class ProjectNature extends FilterRule {
-
-		
-		public FilterRule copy() {
-			ProjectNature rule = new ProjectNature();
-			rule._pattern = _pattern;
-			return rule;
+	public static abstract class FilterRuleCaseSensitive extends FilterRule {
+				
+		public FilterRuleCaseSensitive(String pattern, boolean caseSensitive) {
+			super(pattern);
+			_caseSensitive = caseSensitive;
 		}
 		
-		public void setData(IConfigurationElement rule) {
-			_pattern = rule.getAttribute(ExtensionConstants.RuleAttrib.id);
+		private final boolean _caseSensitive;
+				
+		@Override
+		public int hashCodeForConfig() {
+			int h =  super.hashCodeForConfig();
+			if (_caseSensitive)h += 401;
+			return h;
+		}
+				
+		@Override
+		public void save(Serializer ser) {
+			super.save(ser);
+			ser.put(_caseSensitive);
+		}
+						
+		public boolean isCaseSensitive() {
+			return _caseSensitive;
+		}
+				
+	}
+	
+	public static final class ProjectNature extends FilterRule {
+		
+		private ProjectNature(IConfigurationElement rule) {
+			super(rule.getAttribute(ExtensionConstants.RuleAttrib.id));
 			
 		}
 		
+		public ProjectNature(String projectNature) {
+			super(projectNature);
+		}
+
 		public String getDisplayableType() {
 			return ValMessages.RuleProjectNature;
 		}
@@ -184,28 +234,21 @@
 		
 	}
 	
-	public static class FileExt extends FilterRule {
+	public static final class FileExt extends FilterRuleCaseSensitive {
 		
-		private boolean _caseSensitive;
-		
-		public FilterRule copy() {
-			FileExt rule = new FileExt();
-			rule._pattern = _pattern;
-			rule._caseSensitive = _caseSensitive;
-			return rule;
+		private FileExt(IConfigurationElement rule){
+			super(rule.getAttribute(ExtensionConstants.RuleAttrib.ext), 
+				asBoolean(rule.getAttribute(ExtensionConstants.RuleAttrib.caseSensitive), false));
 		}
-		
+				
+		private FileExt(String pattern, boolean caseSensitive) {
+			super(pattern, caseSensitive);
+		}
+
 		public String getType() {
 			return ExtensionConstants.Rule.fileext;
 		}
 		
-		@Override
-		public int hashCodeForConfig() {
-			int h =  super.hashCodeForConfig();
-			if (_caseSensitive)h += 601;
-			return h;
-		}
-		
 		public String getDisplayableType() {
 			return ValMessages.RuleFileExt;
 		}
@@ -213,179 +256,125 @@
 		public String getName() {
 			return toString();
 		}
-
-		public void setData(IConfigurationElement rule) {
-			_pattern = rule.getAttribute(ExtensionConstants.RuleAttrib.ext);
-			_caseSensitive = asBoolean(rule.getAttribute(ExtensionConstants.RuleAttrib.caseSensitive), false);			
-		}
 		
 		public String toString() {
-			if (_caseSensitive)return NLS.bind(ValMessages.FileExtWithCase, getDisplayableType(), _pattern);
+			if (isCaseSensitive())return NLS.bind(ValMessages.FileExtWithCase, getDisplayableType(), _pattern);
 			return NLS.bind(ValMessages.FileExtWithoutCase, getDisplayableType(), _pattern);
 		}
 
-		public Boolean matchesResource(IResource resource) {
+		public Boolean matchesResource(IResource resource, ContentTypeWrapper contentTypeWrapper) {
 			String ext = resource.getFileExtension();
-			if (_caseSensitive)return _pattern.equals(ext);
+			if (isCaseSensitive())return _pattern.equals(ext);
 			return _pattern.equalsIgnoreCase(ext);
 		}
-
-		public boolean isCaseSensitive() {
-			return _caseSensitive;
-		}
-		
-		@Override
-		public void load(Preferences rid) {
-			_caseSensitive = rid.getBoolean(PrefConstants.caseSensitive, false);
-			super.load(rid);
-		}
-		
-		@Override
-		public void save(Preferences rid) {
-			rid.putBoolean(PrefConstants.caseSensitive, _caseSensitive);
-			super.save(rid);
-		}
-		
-		@Override
-		protected void load(Deserializer des) {
-			super.load(des);
-			_caseSensitive = des.getBoolean();
-		}
-		@Override
-		public void save(Serializer ser) {
-			super.save(ser);
-			ser.put(_caseSensitive);
-		}
-
-		public void setCaseSensitive(boolean caseSensitive) {
-			_caseSensitive = caseSensitive;
-		}		
 	}
 	
-	public static class File extends FilterRule {
+	/**
+	 * A rule that is used to filter based on file or folder names.
+	 * @author karasiuk
+	 *
+	 */
+	public static final class File extends FilterRuleCaseSensitive {
 		
-		private boolean _caseSensitive;
-		private int		_type;
+		private final String	_patternAsLowercase;
+		
+		/** One of the FileTypeXX constants. */
+		private final int		_type;
 		
 		public static final int FileTypeFile = 1;
 		public static final int FileTypeFolder = 2;
 		public static final int FileTypeFull = 3;
 		
-		public File(){
-			
-		}
-		
-		public FilterRule copy() {
-			File rule = new File();
-			rule._pattern = _pattern;
-			rule._caseSensitive = _caseSensitive;
-			rule._type = _type;
-			return rule;
-		}
-		
-		public String getType() {
-			return ExtensionConstants.Rule.file;
-		}
-		
-		@Override
-		public int hashCodeForConfig() {
-			int h =  super.hashCodeForConfig();
-			if (_caseSensitive)h += 401;
-			return h;
-		}
-		
-		public String getDisplayableType() {
-			if (_type == FileTypeFolder)return ValMessages.RuleFolder;
-			return ValMessages.RuleFile;
-		}
-
-		public void setData(IConfigurationElement rule) {
-			_pattern = rule.getAttribute(ExtensionConstants.RuleAttrib.name);
-			if (_pattern == null)throw new IllegalStateException(ValMessages.ErrPatternAttrib);
-			_caseSensitive = asBoolean(rule.getAttribute(ExtensionConstants.RuleAttrib.caseSensitive), false);	
+		private static File createFile(IConfigurationElement rule){
+			String pattern = rule.getAttribute(ExtensionConstants.RuleAttrib.name);
+			if (pattern == null)throw new IllegalStateException(ValMessages.ErrPatternAttrib);
 			String type = rule.getAttribute(ExtensionConstants.RuleAttrib.fileType);
 			if (type == null)throw new IllegalStateException(ValMessages.ErrTypeReq);
-			if (ExtensionConstants.FileType.file.equals(type))_type = FileTypeFile;
-			else if (ExtensionConstants.FileType.folder.equals(type))_type = FileTypeFolder;
-			else if (ExtensionConstants.FileType.full.equals(type))_type = FileTypeFull;
+			
+			int myType = -1;
+			if (ExtensionConstants.FileType.file.equals(type))myType = FileTypeFile;
+			else if (ExtensionConstants.FileType.folder.equals(type)){
+				myType = FileTypeFolder;
+				if (!pattern.endsWith(PortableFileDelim))pattern += PortableFileDelim;
+			}
+			else if (ExtensionConstants.FileType.full.equals(type))myType = FileTypeFull;
 			else {
 				Object[] parms = {type, ExtensionConstants.FileType.file, ExtensionConstants.FileType.folder, 
 					ExtensionConstants.FileType.full};
 				throw new IllegalStateException(NLS.bind(ValMessages.ErrType, parms));
 			}
+			boolean caseSensitive = asBoolean(rule.getAttribute(ExtensionConstants.RuleAttrib.caseSensitive), false);
+			return new File(pattern, caseSensitive, myType);
+		}
+		
+		private  File(String pattern, boolean caseSensitive, int type){			
+			super(pattern, caseSensitive);
+			_type = type;
+			_patternAsLowercase = pattern == null ? null : pattern.toLowerCase();
+		}
+				
+		public String getType() {
+			return ExtensionConstants.Rule.file;
+		}
+		
+		public String getDisplayableType() {
+			if (_type == FileTypeFolder)return ValMessages.RuleFolder;
+			if (_type == FileTypeFull)return ValMessages.RuleFull;
+			return ValMessages.RuleFile;
+		}
+		
+		public void setData(IConfigurationElement rule) {
 		}
 		
 		public String toString() {
-			if (_caseSensitive)return NLS.bind(ValMessages.FileExtWithCase, getDisplayableType(), _pattern);
+			if (isCaseSensitive())return NLS.bind(ValMessages.FileExtWithCase, getDisplayableType(), _pattern);
 			return NLS.bind(ValMessages.FileExtWithoutCase, getDisplayableType(), _pattern);
 		}
 		
-		public Boolean matchesResource(IResource resource) {
+		public Boolean matchesResource(IResource resource, ContentTypeWrapper contentTypeWrapper) {
 			String name = null;
 			switch (_type){
 			case FileTypeFile:
-				name = resource.getProjectRelativePath().toPortableString();
+				name = resource.getName();
 				break;
 				
 			case FileTypeFolder:
-				name = resource.getProjectRelativePath().removeLastSegments(1).toString();
+				name = resource.getProjectRelativePath().removeLastSegments(1).toString() + PortableFileDelim;
 				break;
 				
 			case FileTypeFull:
-				name = resource.getProjectRelativePath().toString();
+				name = resource.getProjectRelativePath().toPortableString();
 				break;
 			}
 			
-			if (_caseSensitive)return _pattern.equals(name);
-			return _pattern.equalsIgnoreCase(name);
+			if (name == null)return Boolean.FALSE;
+			if (isCaseSensitive())return name.startsWith(_pattern);
+			return name.toLowerCase().startsWith(_patternAsLowercase);
 		}
-		
-		@Override
-		public void load(Preferences rid) {
-			_caseSensitive = rid.getBoolean(PrefConstants.caseSensitive, false);
-			_type = rid.getInt(PrefConstants.fileType, -1);
-			super.load(rid);
-		}
-		
-		@Override
-		public void save(Preferences rid) {
-			rid.putBoolean(PrefConstants.caseSensitive, _caseSensitive);
-			rid.putInt(PrefConstants.fileType, _type);
-			super.save(rid);
-		}
-		
-		@Override
-		protected void load(Deserializer des) {
-			super.load(des);
-			_caseSensitive = des.getBoolean();
-			_type = des.getInt();
-		}
-		
+								
 		@Override
 		public void save(Serializer ser) {
 			super.save(ser);
-			ser.put(_caseSensitive);
 			ser.put(_type);
 		}
-
-		public void setCaseSensitive(boolean caseSensitive) {
-			_caseSensitive = caseSensitive;
-		}
-
-		public void setType(int type) {
-			_type = type;
-		}
 		
 	}
 	
-	public static class Facet extends FilterRule {
+	public static final class Facet extends FilterRule {
 		
-		public FilterRule copy() {
-			Facet rule = new Facet();
-			rule._pattern = _pattern;
-			return rule;
+		private final String _versionExpression;
+		
+		private Facet(IConfigurationElement rule){
+			super(rule.getAttribute(ExtensionConstants.RuleAttrib.id));
+			_versionExpression = rule.getAttribute(ExtensionConstants.RuleAttrib.version);
+			
 		}
-		
+				
+		public Facet(String facetId, String versionExpression) {
+			super(facetId);
+			_versionExpression = versionExpression;
+		}
+
 		public String getType() {
 			return ExtensionConstants.Rule.facet;
 		}
@@ -393,15 +382,12 @@
 		public String getDisplayableType() {
 			return ValMessages.RuleFacet;
 		}
-
-		public void setData(IConfigurationElement rule) {
-			_pattern = rule.getAttribute(ExtensionConstants.RuleAttrib.id);
-		}
 		
 		@Override
 		public Boolean matchesProject(IProject project) {
 			try {
-				return FacetedProjectFramework.hasProjectFacet(project, _pattern);
+				if (_versionExpression == null)return FacetedProjectFramework.hasProjectFacet(project, _pattern);
+				return FacetedProjectFramework.hasProjectFacet(project, _pattern, _versionExpression);
 			}
 			catch (CoreException e){
 				if (Tracing.isLogging())ValidationPlugin.getPlugin().handleException(e);
@@ -409,21 +395,43 @@
 			return Boolean.FALSE;
 		}
 		
-	}
-	
-	public static class ContentType extends FilterRule {
-		
-		private transient IContentType 	_type;
-		private boolean			_exactMatch = true;
-		
-		public FilterRule copy() {
-			ContentType rule = new ContentType();
-			rule._pattern = _pattern;
-			rule._type = _type;
-			rule._exactMatch = _exactMatch;
-			return rule;
+		@Override
+		public String toString() {
+			StringBuffer b = new StringBuffer(200);
+			b.append(getDisplayableType());
+			b.append(": "); //$NON-NLS-1$
+			b.append(_pattern);
+			
+			if (_versionExpression !=  null){
+				b.append(" ("); //$NON-NLS-1$
+				b.append(_versionExpression);
+				b.append(")"); //$NON-NLS-1$
+			}
+			return b.toString();
 		}
 		
+	}
+	
+	public static final class ContentType extends FilterRule {
+		
+		private final IContentType 	_type;
+		private final boolean		_exactMatch;
+		
+		private ContentType(String pattern, boolean exactMatch){
+			super(pattern);
+			_type = Platform.getContentTypeManager().getContentType(pattern);
+			_exactMatch = exactMatch;
+		}
+		
+		private static ContentType createContentType(IConfigurationElement rule){
+			String pattern = rule.getAttribute(ExtensionConstants.RuleAttrib.id);
+			boolean exactMatch = true;
+			String exact = rule.getAttribute(ExtensionConstants.RuleAttrib.exactMatch);
+			if (ExtensionConstants.False.equals(exact)) exactMatch = false;
+			
+			return new ContentType(pattern, exactMatch);
+		}
+				
 		public String getType() {
 			return ExtensionConstants.Rule.contentType;
 		}
@@ -438,25 +446,7 @@
 		public String getDisplayableType() {
 			return ValMessages.RuleContentType;
 		}
-		
-		@Override
-		public void load(Preferences rid) {
-			_exactMatch = rid.getBoolean(PrefConstants.exactMatch, true);
-			super.load(rid);
-		}
-		
-		@Override
-		public void save(Preferences rid) {
-			rid.putBoolean(PrefConstants.exactMatch, _exactMatch);
-			super.save(rid);
-		}
-		
-		@Override
-		protected void load(Deserializer des) {
-			super.load(des);
-			_exactMatch = des.getBoolean();
-		}
-		
+								
 		@Override
 		public void save(Serializer ser) {
 			super.save(ser);
@@ -464,55 +454,24 @@
 		}
 
 		public void setData(IConfigurationElement rule) {
-			setData(rule.getAttribute(ExtensionConstants.RuleAttrib.id));
-			boolean exactMatch = true;
-			String exact = rule.getAttribute(ExtensionConstants.RuleAttrib.exactMatch);
-			if (ExtensionConstants.False.equals(exact)) exactMatch = false;
-			setExactMatch(exactMatch);
 		}
-		
-		@Override
-		public void setData(String pattern) {
-			_pattern = pattern;
-			_type = Platform.getContentTypeManager().getContentType(pattern);
-		}
-		
-		public Boolean matchesResource(IResource resource) {
+				
+		public Boolean matchesResource(IResource resource, ContentTypeWrapper contentTypeWrapper) {
 			if (_type == null)return Boolean.FALSE;
-			try {
-				if (resource instanceof IFile) {
-					IFile file = (IFile) resource;
-					IContentDescription cd = file.getContentDescription();
-					if (cd == null)return Boolean.FALSE;
-					IContentType ct = cd.getContentType();
-					if (ct == null)return Boolean.FALSE;
-					boolean match = false;
-					if (_exactMatch)match = ct.getId().equals(_type.getId());
-					else match = ct.isKindOf(_type);
-					
-					if (match && Tracing.isTraceMatches())
-						Tracing.log("FilterRule-01: ", toString() + " has matched " + resource); //$NON-NLS-1$ //$NON-NLS-2$
-					return match;
-				}
-			}
-			catch (CoreException e){
-				if(Tracing.isLogging())ValidationPlugin.getPlugin().handleException(e);
+			if (resource instanceof IFile) {
+				IFile file = (IFile) resource;
+				IContentType ct = contentTypeWrapper.getContentType(file);
+				if (ct == null)return Boolean.FALSE;
+				boolean match = false;
+				if (_exactMatch)match = ct.getId().equals(_type.getId());
+				else match = ct.isKindOf(_type);
+				
+				if (match && Tracing.isTraceMatches())
+					Tracing.log("FilterRule-01: ", toString() + " has matched " + resource); //$NON-NLS-1$ //$NON-NLS-2$
+				return match;
 			}
 			return Boolean.FALSE;
 		}
-
-		/**
-		 * Should the content type match exactly, or should sub types be
-		 * included as well?
-		 * 
-		 * @param exactMatch
-		 *            If true this rule will only match this specific content
-		 *            type. If false this rule will match this content type and
-		 *            any of it's sub types.
-		 */
-		public void setExactMatch(boolean exactMatch) {
-			_exactMatch = exactMatch;
-		}
 		
 		@Override
 		public String toString() {
@@ -521,30 +480,42 @@
 		}
 		
 	}
+	
+	public static final class FilePattern extends FilterRuleCaseSensitive {
+		
+		private final Pattern _compiledPattern;
+		
+		private static FilePattern createFilePattern(IConfigurationElement rule){
+			String pattern = rule.getAttribute(ExtensionConstants.RuleAttrib.regex);
+			boolean caseSensitive = asBoolean(rule.getAttribute(ExtensionConstants.RuleAttrib.caseSensitive), false);
+			return new FilePattern(pattern, caseSensitive);
+		}
+		
+		private FilePattern(String pattern, boolean caseSensitive){
+			super(pattern, caseSensitive);
+			int flags = 0;
+			if (caseSensitive)flags = Pattern.CASE_INSENSITIVE;
+			Pattern compiledPattern = Pattern.compile(pattern, flags);				
+			_compiledPattern = compiledPattern;
+		}
 
-	/** Answer a deep copy of yourself. */
-	public abstract FilterRule copy();
+		@Override
+		public String getDisplayableType() {
+			return ValMessages.RulePattern;
+		}
 
-	/**
-	 * Save yourself in the preference file.
-	 * @param rid
-	 */
-	public void save(Preferences rid) {
-		rid.put(PrefConstants.ruleType, getType());
-		rid.put(PrefConstants.pattern, getPattern());		
-	}
-
-	/**
-	 * @param rule
-	 */
-	public void load(Preferences rule) {
-		setData(rule.get(PrefConstants.pattern, null));		
+		@Override
+		public String getType() {
+			return ExtensionConstants.Rule.pattern;
+		}
+		
+		@Override
+		public Boolean matchesResource(IResource resource, ContentTypeWrapper wrapper) {
+			String name = PortableFileDelim + resource.getProjectRelativePath().toPortableString();
+			return _compiledPattern.matcher(name).matches();
+		}		
 	}
 	
-	protected void load(Deserializer des){
-		setData(des.getString());
-	}
-
 	/**
 	 * Save your settings into the serializer.
 	 * @param ser
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/GlobalPreferences.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/GlobalPreferences.java
index 274fa20..2989c2c 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/GlobalPreferences.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/GlobalPreferences.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,9 +12,9 @@
 
 /**
  * This class represents the global Preferences as set on the Validation Preferences page. It doesn't
- * hold any of the individual validator settings, just the global check boxes.
+ * hold any of the individual validator settings, just the global check boxes. It is an immutable object.
  */
-public class GlobalPreferences {
+public final class GlobalPreferences {
 	
 	/** false - Default setting for the should all the validation be suspended setting. */ 
 	public static final boolean DefaultSuspend = false;
@@ -30,35 +30,65 @@
 	
 	/** 2 - The version of the framework meta data, if an explicit version isn't found. */
 	public static final int DefaultFrameworkVersion = 2;
+	
+	/** Bit masks for what has changed. */
+	public final static int ConfirmDialogMask = 1;
+	public final static int DisableAllValidationMask = 2;
+	public final static int OverrideMask = 4;
+	public final static int SaveAutomaticallyMask = 8;
+	public final static int StateTimeStampMask = 16;
+	public final static int VersionMask = 32;
+	
+	/**
+	 * The changes that could affect what gets validated.
+	 */
+	public final static int BuildChangeMask = DisableAllValidationMask | OverrideMask;
+	
 
-	private boolean _disableAllValidation = DefaultSuspend;
-	private boolean _saveAutomatically = DefaultAutoSave;
-	private boolean _confirmDialog = DefaultConfirm;
-	private boolean _override = DefaultOverride;
+	private final boolean _confirmDialog;
+	private final boolean _disableAllValidation;
+	private final boolean _override;
+	private final boolean _saveAutomatically;
 	
 	/** The plug-in state time stamp. */
-	private long	_stateTimeStamp;
+	private final long	_stateTimeStamp;
 	
 	/** The incoming version of the framework. This is used to determine if a migration is needed.*/
-	private int		_version;
-	
-	/** Has a setting changed that could effect which validators get called? */
-	private boolean	_configChange;
-	
+	private final int		_version;
+			
 	/**
 	 * The only valid way to get the global preferences is through the ValManager.
 	 * 
 	 * @see org.eclipse.wst.validation.internal.ValManager#getGlobalPreferences()
 	 */
-	public GlobalPreferences(){	}
+	public GlobalPreferences(GlobalPreferencesValues gp) {
+		_confirmDialog = gp.confirmDialog;
+		_disableAllValidation = gp.disableAllValidation;
+		_override = gp.override;
+		_saveAutomatically = gp.saveAutomatically;
+		_stateTimeStamp = gp.stateTimeStamp;
+		_version = gp.version;
+	}
 	
+	/**
+	 * Answer a copy of the values.
+	 * @return
+	 */
+	public GlobalPreferencesValues asValues(){
+		GlobalPreferencesValues gp = new GlobalPreferencesValues();
+		gp.confirmDialog = _confirmDialog;
+		gp.disableAllValidation = _disableAllValidation;
+		gp.override = _override;
+		gp.saveAutomatically = _saveAutomatically;
+		gp.stateTimeStamp = _stateTimeStamp;
+		gp.version = _version;
+		return gp;
+	}
+
 	public boolean getSaveAutomatically() {
 		return _saveAutomatically;
 	}
 
-	public void setSaveAutomatically(boolean saveAutomatically) {
-		_saveAutomatically = saveAutomatically;
-	}
 
 	/**
 	 * Answer if all validation has been disabled.
@@ -67,66 +97,37 @@
 		return _disableAllValidation;
 	}
 
-	public void setDisableAllValidation(boolean disableAllValidation) {
-		if (_disableAllValidation != disableAllValidation){
-			_configChange = true;
-			_disableAllValidation = disableAllValidation;
-		}
-	}
-
-	/**
-	 * Reset all the global preferences to their default settings. This doesn't reset
-	 * the individual validators.
-	 */
-	public void resetToDefault() {
-		setDisableAllValidation(DefaultSuspend);
-		_saveAutomatically = DefaultAutoSave;
-		_confirmDialog = DefaultConfirm;
-		setOverride(DefaultOverride);
-	}
-
 	public boolean getConfirmDialog() {
 		return _confirmDialog;
 	}
 
-	public void setConfirmDialog(boolean confirmDialog) {
-		_confirmDialog = confirmDialog;
-	}
-
 	public long getStateTimeStamp() {
 		return _stateTimeStamp;
 	}
 
-	public void setStateTimeStamp(long stateTimeStamp) {
-		_stateTimeStamp = stateTimeStamp;
-	}
-
 	/** Answer whether or not projects are allowed to override the global preferences. */
 	public boolean getOverride() {
 		return _override;
 	}
 
-	public void setOverride(boolean override) {
-		if (_override != override){
-			_configChange = true;
-			_override = override;
-		}
-	}
-
 	public int getVersion() {
 		return _version;
 	}
 
-	public void setVersion(int version) {
-		_version = version;
-	}
-
-	public boolean isConfigChange() {
-		return _configChange;
-	}
-
-	public void setConfigChange(boolean configChange) {
-		_configChange = configChange;
+	/**
+	 * Compare yourself to the other global preferences and answer a bitmask with the differences.
+	 * @param gp
+	 * @return bit mask of the changes. See the xxxMask constants for the values of the bits. A zero means that they are the same.
+	 */
+	public int compare(GlobalPreferences gp) {
+		int changes = 0;
+		if (_confirmDialog != gp.getConfirmDialog())changes |= ConfirmDialogMask;
+		if (_disableAllValidation != gp.getDisableAllValidation())changes |= DisableAllValidationMask;
+		if (_override != gp.getOverride())changes |= OverrideMask;
+		if (_saveAutomatically != gp.getSaveAutomatically())changes |= SaveAutomaticallyMask;
+		if (_stateTimeStamp != gp.getStateTimeStamp())changes |= StateTimeStampMask;
+		if (_version != gp.getVersion())changes |= VersionMask;
+		return changes;
 	}
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/GlobalPreferencesValues.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/GlobalPreferencesValues.java
new file mode 100644
index 0000000..cdf8345
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/GlobalPreferencesValues.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.validation.internal.model;
+
+/**
+ * A mutable object that is used to initialize a GlobalPreference.
+ * @author karasiuk
+ *
+ */
+public class GlobalPreferencesValues {
+	public boolean disableAllValidation = GlobalPreferences.DefaultSuspend;
+	public boolean saveAutomatically = GlobalPreferences.DefaultAutoSave;
+	public boolean confirmDialog = GlobalPreferences.DefaultConfirm;
+	public boolean override = GlobalPreferences.DefaultOverride;
+	
+	/** The plug-in state time stamp. */
+	public long	stateTimeStamp;
+	
+	/** The incoming version of the framework. This is used to determine if a migration is needed.*/
+	public int		version;
+	
+	public GlobalPreferencesValues(){
+		
+	}
+
+}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/ProjectPreferences.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/ProjectPreferences.java
index a571dc6..dd26add 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/ProjectPreferences.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/ProjectPreferences.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -18,36 +18,43 @@
  * @author karasiuk
  *
  */
-public class ProjectPreferences {
+public final class ProjectPreferences {
+	/*
+	 * Before this object can be considered immutable, the mutable validators need to be addressed.
+	 */
 	/** false - Default setting for the "should all the validation be suspended" setting. */ 
 	public static final boolean DefaultSuspend = false;
 	
 	/** false - Default setting for letting projects override the global settings. */
 	public static final boolean DefaultOverride = false;
 	
-	private IProject	_project;
+	private final IProject	_project;
 
-	private boolean 	_override = DefaultOverride;
-	private boolean		_suspend = DefaultSuspend;
+	private final boolean 	_override;
+	private final boolean	_suspend;
 	
-	private Validator[]	_validators = new Validator[0];
+	private final Validator[]	_validators;
 	
 	public ProjectPreferences(IProject project){
 		_project = project;
+		_override = DefaultOverride;
+		_suspend  = DefaultSuspend;
+		_validators = new Validator[0];
+	}
+	
+	public ProjectPreferences(IProject project, boolean override, boolean suspend, Validator[] validators){
+		_project = project;
+		_override = override;
+		_suspend = suspend;
+		_validators = validators;
 	}
 	
 	public boolean getOverride() {
 		return _override;
 	}
-	public void setOverride(boolean override) {
-		_override = override;
-	}
 	public boolean getSuspend() {
 		return _suspend;
 	}
-	public void setSuspend(boolean suspend) {
-		_suspend = suspend;
-	}
 	
 	/**
 	 * Answer the validators that have been registered for this project.
@@ -57,10 +64,6 @@
 		return _validators;
 	}
 	
-	public void setValidators(Validator[] validators){
-		_validators = validators;
-	}
-	
 	public IProject getProject() {
 		return _project;
 	}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/ValidatorHelper.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/ValidatorHelper.java
index c3152b4..288f226 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/ValidatorHelper.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/model/ValidatorHelper.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.validation.internal.model;
 
-import org.eclipse.wst.validation.Validator;
+import org.eclipse.wst.validation.internal.ValidatorMutable;
 
 /**
  * Implement some common validator methods, that don't need to be part of the API.
@@ -18,20 +18,13 @@
  * @author karasiuk
  *
  */
-public class ValidatorHelper {
+public final class ValidatorHelper {
 	
 	/**
 	 * Answer true if this validator already has an exclude filter.
-	 * 
-	 * @param v
-	 * @return
 	 */
-	public static boolean hasExcludeGroup(Validator.V2 v){
-		FilterGroup[] groups = v.getGroups();
-		for (int i=0; i<groups.length; i++){
-			if (groups[i].isExclude())return true;
-		}
-		return false;
-		
+	public static boolean hasExcludeGroup(ValidatorMutable v){
+		for (FilterGroup group : v.getGroups())if (group.isExclude())return true;
+		return false;		
 	}
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/package.html b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/package.html
index 9f42d70..8c3c426 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/package.html
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/package.html
@@ -1,6 +1,17 @@
 <html>
+<head>
+<title>Validation Framework</title>
+</head>
 <body>
-<h1>Validation Framework</h1>
+<p>A framework for calling validators that are build based.</p>
+<p>Also see <a href="doc-files/faq.html">Frequently Asked Questions</a></p>
+<p>
+There are two main types of validation, <b>build based</b> and 
+<b>as you type</b>. This framework supports build based
+validation. If auto build is turned on then the validators are called
+when the user saves their file. If auto build is not turned on then
+the validators are called when the user starts a build.</p>
+<p>This framework was added to WTP in version 3.0.</p>
 <h3>Dependency Support</h3>
 <p>Sometimes resources depend on other resources, to determine whether they are 
 valid or not. An example would be that an XML resource could depend on a DTD. If at some 
@@ -18,7 +29,7 @@
 product.
 <p>In particular when the validate method returns, a
 <a href="ValidationResult.html">ValidationResult</a> must be returned, inside of 
-this result, all your dependencies need to be specified with the&nbsp;
+this result, all your dependencies need to be specified with the
 <a href="ValidationResult.html#setDependsOn(org.eclipse.core.resources.IResource[])">
 setDependsOn</a> method.<p>In addition to keeping the dependency information 
 up-to-date through the normal course of validation, direct access is also 
@@ -26,5 +37,16 @@
 <a href="ValidationFramework.html#getDependencyIndex()">getDependencyIndex</a> 
 method. The <a href="IDependencyIndex.html">IDependencyIndex</a> allows you to 
 directly manipulate the dependency information for a validator.
+<h3>Entry Points into the Validation Framework</h3>
+<p>Here are some of the points where the platform calls into the framework:</p>
+<ul>
+<li><b>Builder</b> - ValidationBuilder</li>
+<li><b>IFacetedProjectListener</b> - ValManager</li>
+<li><b>IJobChangeListener</b> - ValidationOperation, ValidationOperation.ValidationLauncherJob</li>
+<li><b>IProjectChangeListener</b> - ValManager</li>
+<li><b>IPropertyChangeListener</b> - ValidationConfiguration, DisabledResourceManager</li>
+<li><b>IResourceChangeListener</b> - EventManger</li>
+<li><b>IValChangedListener</b> - ValManager, DisabledValidatorManager</li>
+</ul>
 </body>
 </html>
diff --git a/plugins/org.eclipse.wst.validation/xsds/exclude.exsd b/plugins/org.eclipse.wst.validation/xsds/exclude.exsd
new file mode 100644
index 0000000..92d7647
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/xsds/exclude.exsd
@@ -0,0 +1,281 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.validation" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.wst.validation" id="exclude" name="Validator Exclusion"/>
+      </appinfo>
+      <documentation>
+         A way to add additional exclusion filters to a V2 validator.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="validator" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  A short id that is unique within the plug-in, so that this set of extra exclusion filters can be identified.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  The short user friendly name for the exclusion.
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="validator">
+      <annotation>
+         <documentation>
+            Identifies the validator that is being extended.
+         </documentation>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="exclude"/>
+         </sequence>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The fully qualifed validator id that is being extended.
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="identifier"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="exclude">
+      <annotation>
+         <documentation>
+            This contains a set of exclusion rules, used in filtering which resources get validated. If any of these rules are matched, then the validator is not called on this resource.
+         </documentation>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="rules"/>
+         </sequence>
+      </complexType>
+   </element>
+
+   <element name="fileext">
+      <annotation>
+         <documentation>
+            A file extension, for example html.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="ext" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The file extension, for example html.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="caseSensitive" type="boolean">
+            <annotation>
+               <documentation>
+                  If the file extension is case sensitive, then this needs to be set to true.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="projectNature">
+      <annotation>
+         <documentation>
+            Used to filter on project natures.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The fully qualified project nature id, for example &quot;org.eclipse.jdt.core.javanature&quot;.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="file">
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The file or folder name. The file name can be fully qualified, that is it starts with a leading slash (&quot;/&quot;), or it can be a relative name. Folder names are separated with the forward slash (&quot;/&quot;) character.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="caseSensitive" type="boolean">
+            <annotation>
+               <documentation>
+                  If the file name is not case senstitive, then this needs to be set to false.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="type" use="required">
+            <annotation>
+               <documentation>
+                  Type of name, there are three choices. &lt;ul&gt;&lt;li&gt;folder - specifies a project relative folder name.&lt;/li&gt;&lt;li&gt;file - a simple file name (i.e. no path information).&lt;/li&gt;&lt;li&gt;full - a fully qualified (project relative) file name.&lt;/li&gt;&lt;/ul&gt;
+               </documentation>
+            </annotation>
+            <simpleType>
+               <restriction base="string">
+                  <enumeration value="folder">
+                  </enumeration>
+                  <enumeration value="file">
+                  </enumeration>
+                  <enumeration value="full">
+                  </enumeration>
+               </restriction>
+            </simpleType>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="rules">
+      <annotation>
+         <documentation>
+            A set of rules for determining if a resource is passed to this validator or not. The rules are OR&apos;ed together.
+         </documentation>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="fileext" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="file" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="projectNature" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="facet" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="contentType" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="pattern" minOccurs="0" maxOccurs="unbounded"/>
+         </sequence>
+      </complexType>
+   </element>
+
+   <element name="facet">
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The facet id.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="contentType">
+      <annotation>
+         <documentation>
+            Used to filter based on content types.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The content type id.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="exactMatch" type="boolean">
+            <annotation>
+               <documentation>
+                  Set to true if the content type needs to match exactly. Set to false if sub types are considered matches as well.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+   <element name="pattern">
+      <annotation>
+         <documentation>
+            Holds a regualr expression, that matches the resource&apos;s project relative name.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="regex" type="string" use="required">
+            <annotation>
+               <documentation>
+                  Holds a Java regular expression. See the class java.util.regex.Pattern for more details. This regular expression is matched against a resource&apos;s project relative path, after that path has been converted into a portable path.
+&lt;p&gt;The path will always start with a forward slash (/) so that folder names can be more easily matched.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="caseSensitive" type="boolean">
+            <annotation>
+               <documentation>
+                  If the file name is not case senstitive, then this needs to be set to false.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         WebTools 3.0
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         &lt;!-- A plug-in is turning off the T1A validator for projects that have the ModuleCoreNature --&gt;
+ &lt;extension
+       id=&quot;exclude1&quot;
+       point=&quot;org.eclipse.wst.validation.exclude&quot;&gt;
+    &lt;validator
+          id=&quot;org.eclipse.wst.common.tests.validation.T1A&quot;&gt;
+       &lt;exclude&gt;
+          &lt;rules&gt;
+             &lt;projectNature
+                   id=&quot;org.eclipse.jst.j2ee.ModuleCoreNature&quot;&gt;
+             &lt;/projectNature&gt;
+          &lt;/rules&gt;
+       &lt;/exclude&gt;
+    &lt;/validator&gt;
+ &lt;/extension&gt;
+
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiInfo"/>
+      </appinfo>
+      <documentation>
+         Provisional API.
+      </documentation>
+   </annotation>
+
+
+
+
+</schema>
diff --git a/plugins/org.eclipse.wst.validation/xsds/removeV2Validator.exsd b/plugins/org.eclipse.wst.validation/xsds/removeV2Validator.exsd
new file mode 100644
index 0000000..271b82e
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/xsds/removeV2Validator.exsd
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.validation" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.validation" id="removeV2Validator" name="Remove V2 Validator"/>
+      </appInfo>
+      <documentation>
+         This is used to remove a V2 validator. By specifying the validator ID, the corresponding validator will be removed as if it hasn&apos;t been registered. The removed validator will not be shown in the Preferences page.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="remove" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="remove">
+      <annotation>
+         <documentation>
+            Define the validator that will be removed.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="validatorId" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The validator ID that will be removed.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         WebTools 3.2
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         An example to remove the XSL validator
+
+&lt;extension
+       point=&quot;org.eclipse.wst.validation.removeV2Validator&quot;&gt;
+    &lt;remove
+          validatorId=&quot;org.eclipse.wst.xml.core.xml&quot;&gt;
+    &lt;/remove&gt;
+ &lt;/extension&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiinfo"/>
+      </appInfo>
+      <documentation>
+         Provisional API.
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2010 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/plugins/org.eclipse.wst.validation/xsds/validator.exsd b/plugins/org.eclipse.wst.validation/xsds/validator.exsd
index cbafb90..737f8cb 100644
--- a/plugins/org.eclipse.wst.validation/xsds/validator.exsd
+++ b/plugins/org.eclipse.wst.validation/xsds/validator.exsd
@@ -2,15 +2,20 @@
 <!-- Schema file written by PDE -->
 <schema targetNamespace="org.eclipse.wst.validation" xmlns="http://www.w3.org/2001/XMLSchema">
 <annotation>
-      <appinfo>
+      <appInfo>
          <meta.schema plugin="org.eclipse.wst.validation" id="validator-v2" name="Validator V2"/>
-      </appinfo>
+      </appInfo>
       <documentation>
-         All validators that wish to use version 2 of the validation framework need to extend this extension point.
+         This is used to register a validator to the validation framework (version 2). In addition to specifying the validator to invoke, it registers a set of default filter rules, to control which resources are passsed to the validator.
       </documentation>
    </annotation>
 
    <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
       <complexType>
          <sequence>
             <element ref="validator"/>
@@ -34,9 +39,9 @@
                <documentation>
                   The short user friendly name of the validator.
                </documentation>
-               <appinfo>
+               <appInfo>
                   <meta.attribute translatable="true"/>
-               </appinfo>
+               </appInfo>
             </annotation>
          </attribute>
       </complexType>
@@ -53,15 +58,16 @@
             <element ref="include" minOccurs="0" maxOccurs="unbounded"/>
             <element ref="exclude" minOccurs="0" maxOccurs="1"/>
             <element ref="messageCategory" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="group" minOccurs="0" maxOccurs="unbounded"/>
          </sequence>
          <attribute name="class" type="string" use="required">
             <annotation>
                <documentation>
                   The class that implements the validator.
                </documentation>
-               <appinfo>
+               <appInfo>
                   <meta.attribute kind="java" basedOn="org.eclipse.wst.validation.AbstractValidator"/>
-               </appinfo>
+               </appInfo>
             </annotation>
          </attribute>
          <attribute name="build" type="boolean">
@@ -106,7 +112,7 @@
    <element name="include">
       <annotation>
          <documentation>
-            This contains a set of inclusion rules, which are used in filtering which resources get validated. At least one of these rules must be satisfied in order for the validator to be called on the particular resource.
+            This contains a set of inclusion rules, which are used in filtering which resources get validated. At least one of these rules must be satisfied in order for the validator to be called on the particular resource. Only &quot;Project Nature&quot; and &quot;Facet&quot; rules are being considered for activating the validator.
          </documentation>
       </annotation>
       <complexType>
@@ -119,7 +125,7 @@
    <element name="exclude">
       <annotation>
          <documentation>
-            This contains a set of exclusion rules, used in filtering which resources get validated. If any of these rules are matched, then the validator is not called on this resource.
+            This contains a set of exclusion rules, used in filtering which resources get validated. If any of these rules are matched, then the validator is not called on this resource.  Only &quot;Project Nature&quot; and &quot;Facet&quot; rules are being considered to prevent activating the validator.
          </documentation>
       </annotation>
       <complexType>
@@ -219,6 +225,7 @@
             <element ref="projectNature" minOccurs="0" maxOccurs="unbounded"/>
             <element ref="facet" minOccurs="0" maxOccurs="unbounded"/>
             <element ref="contentType" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="pattern" minOccurs="0" maxOccurs="unbounded"/>
          </sequence>
       </complexType>
    </element>
@@ -232,6 +239,33 @@
                </documentation>
             </annotation>
          </attribute>
+         <attribute name="version" type="string">
+            <annotation>
+               <documentation>
+                  A version expression that can be used to futher qualify the match. If not specifed, then versions are not used as a criteria for selecting the facet. The syntax of this expression, is the same syntax that is used by the facet framework.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="group">
+      <annotation>
+         <documentation>
+            Declares that this validator belongs to this validation group.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The fully qualified ID of the validation group to which this validator belongs.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="identifier"/>
+               </appInfo>
+            </annotation>
+         </attribute>
       </complexType>
    </element>
 
@@ -278,9 +312,9 @@
                <documentation>
                   A short, one line label that is displayed to the end user, that describes the message category.
                </documentation>
-               <appinfo>
+               <appInfo>
                   <meta.attribute translatable="true"/>
-               </appinfo>
+               </appInfo>
             </annotation>
          </attribute>
          <attribute name="severity">
@@ -303,26 +337,60 @@
       </complexType>
    </element>
 
+   <element name="pattern">
+      <annotation>
+         <documentation>
+            Holds a regualr expression, that matches the resource&apos;s project relative name.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="regex" type="string" use="required">
+            <annotation>
+               <documentation>
+                  Holds a Java regular expression. See the class java.util.regex.Pattern for more details. This regular expression is matched against a resource&apos;s project relative path, after that path has been converted into a portable path.
+&lt;p&gt;The path will always start with a forward slash (/) so that folder names can be more easily matched.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="caseSensitive" type="boolean">
+            <annotation>
+               <documentation>
+                  If the file name is not case senstitive, then this needs to be set to false.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
    <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
       <documentation>
-         WebTools 2.0
+         Provisional API.
       </documentation>
    </annotation>
 
    <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
       <documentation>
-         &lt;!-- A validator that will be called on resources that have html or htm file extensions. --&gt;
+         WebTools 3.0.
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         An example of a validator that will be called on resources that have html or htm file extensions.
+&lt;pre&gt;
    &lt;extension
          point=&quot;org.eclipse.wst.validation.validator&quot;
          id=&quot;Test&quot; name=&quot;%Validator.Name&quot;&gt;
-      &lt;validator
-            class=&quot;org.eclipse.wst.validation.test.TestValidator&quot;&gt;
+      &lt;validator class=&quot;org.eclipse.wst.validation.test.TestValidator&quot;&gt;
          &lt;include&gt;
             &lt;rules&gt;
                &lt;fileext ext=&quot;html&quot;/&gt;
@@ -331,19 +399,22 @@
          &lt;/include&gt;
       &lt;/validator&gt;
    &lt;/extension&gt;
+&lt;/pre&gt;
       </documentation>
    </annotation>
 
+
    <annotation>
-      <appinfo>
-         <meta.section type="apiInfo"/>
-      </appinfo>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
       <documentation>
-         Provisional API.
+         Copyright (c) 2007,2008 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
       </documentation>
    </annotation>
 
-
-
-
 </schema>
diff --git a/plugins/org.eclipse.wst.validation/xsds/validatorExtSchema.exsd b/plugins/org.eclipse.wst.validation/xsds/validatorExtSchema.exsd
index faa0a2c..0e9667e 100644
--- a/plugins/org.eclipse.wst.validation/xsds/validatorExtSchema.exsd
+++ b/plugins/org.eclipse.wst.validation/xsds/validatorExtSchema.exsd
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>

 <!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.wst.validation">

+<schema targetNamespace="org.eclipse.wst.validation" xmlns="http://www.w3.org/2001/XMLSchema">

 <annotation>

       <appInfo>

          <meta.schema plugin="org.eclipse.wst.validation" id="validator" name="Validator"/>

@@ -13,6 +13,11 @@
    <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>

 

    <element name="extension">

+      <annotation>

+         <appInfo>

+            <meta.element />

+         </appInfo>

+      </annotation>

       <complexType>

          <sequence>

             <element ref="validator"/>

@@ -36,6 +41,9 @@
                <documentation>

                   An optional name of the extension instance

                </documentation>

+               <appInfo>

+                  <meta.attribute translatable="true"/>

+               </appInfo>

             </annotation>

          </attribute>

       </complexType>

@@ -46,13 +54,14 @@
          <sequence>

             <element ref="projectNature" minOccurs="0" maxOccurs="unbounded"/>

             <element ref="filter" minOccurs="0" maxOccurs="unbounded"/>

-            <element ref="enablement" minOccurs="0" maxOccurs="unbounded"/>/>

+            <element ref="enablement" minOccurs="0" maxOccurs="unbounded"/>

             <element ref="helper"/>

             <element ref="dependentValidator" minOccurs="0" maxOccurs="1"/>

             <element ref="run"/>

             <element ref="markerId" minOccurs="0" maxOccurs="1"/>

             <element ref="facet" minOccurs="0" maxOccurs="unbounded"/>

             <element ref="contentTypeBinding" minOccurs="0" maxOccurs="unbounded"/>

+            <element ref="runStrategy"/>

          </sequence>

          <attribute name="to" type="string">

             <annotation>

@@ -91,15 +100,14 @@
          </attribute>

       </complexType>

    </element>

-   

-   

+

    <element name="contentTypeBinding">

       <annotation>

          <appInfo>

             <meta.element labelAttribute="contentTypeId"/>

          </appInfo>

          <documentation>

-                        Associates a particular content type with the current validator, and enables the validator to be run on resources of the specified content type.

+            Associates a particular content type with the current validator, and enables the validator to be run on resources of the specified content type.

          </documentation>

       </annotation>

       <complexType>

@@ -112,9 +120,6 @@
          </attribute>

       </complexType>

    </element>

-   

-   

-   

 

    <element name="filter">

       <complexType>

@@ -281,6 +286,19 @@
       </complexType>

    </element>

 

+   <element name="runStrategy">

+      <complexType>

+         <attribute name="project" type="boolean">

+            <annotation>

+               <documentation>

+                  If true then the validator is only called once per project. If false (or missing) then the validator could be called once per resource (based on the other filter rules).

+               </documentation>

+            </annotation>

+         </attribute>

+      </complexType>

+   </element>

+

+

    <annotation>

       <appInfo>

          <meta.section type="since"/>

@@ -290,39 +308,14 @@
       </documentation>

    </annotation>

 

-   <annotation>

-      <appInfo>

-         <meta.section type="examples"/>

-      </appInfo>

-      <documentation>

-         

-      </documentation>

-   </annotation>

 

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="implementation"/>

-      </appInfo>

-      <documentation>

-         

-      </documentation>

-   </annotation>

 

    <annotation>

       <appInfo>

          <meta.section type="copyright"/>

       </appInfo>

       <documentation>

-         Copyright (c) 2005 IBM Corporation and others.&lt;br&gt;

+         Copyright (c) 2005, 2010 IBM Corporation and others.&lt;br&gt;

 All rights reserved. This program and the accompanying materials are made 

 available under the terms of the Eclipse Public License v1.0 which accompanies 

 this distribution, and is available at &lt;a

diff --git a/plugins/org.eclipse.wst.validation/xsds/validatorgroup.exsd b/plugins/org.eclipse.wst.validation/xsds/validatorgroup.exsd
new file mode 100644
index 0000000..df05cb1
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation/xsds/validatorgroup.exsd
@@ -0,0 +1,161 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.validation" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.wst.validation" id="validatorGroup" name="Validator Group"/>
+      </appinfo>
+      <documentation>
+         Defines a grouping for validators with listeners notified of group members&apos; activites.  Useful for pre-caching common information used by multiple validators and disposing of that information when they&apos;re all done.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="group" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="identifier">
+            <annotation>
+               <documentation>
+                  A unique identifier for this extension
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  A name for this extension
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="listener">
+      <annotation>
+         <documentation>
+            A listener for activities in this group.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The listener&apos;s class.
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.wst.validation.IValidatorGroupListener"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="group">
+      <annotation>
+         <documentation>
+            Declares a validator group.  A group may have multiple listeners.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="listener" minOccurs="1" maxOccurs="unbounded"/>
+         </choice>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="identifier"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         WebTools 3.0
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         Define a listener that simply prints that it has been called.
+&lt;pre&gt;
+&lt;extension point=&quot;org.eclipse.wst.validation.validatorGroup&quot;&gt;
+   &lt;group id=&quot;validatorGroup&quot;&gt;
+     &lt;listener class=&quot;org.eclipse.wst.validation.example.ValidatorGroupListener&quot;/&gt;
+   &lt;/group&gt;
+&lt;/extension&gt;
+
+public class org.eclipse.wst.validation.example.ValidatorGroupListener implements IValidatorGroupListener {
+
+  public ValidatorGroupListener() {
+  }
+
+  public void validationFinishing(IResource resource, IProgressMonitor monitor, ValType valType, ValOperation operation) {
+   System.out.println(&quot;Finishing:&quot; + resource.getFullPath());
+  }
+
+  public void validationStarting(IResource resource, IProgressMonitor monitor, ValType valType, ValOperation operation) {
+   System.out.println(&quot;Starting:&quot; + resource.getFullPath());
+  }
+}
+ 
+&lt;extension id=&quot;id&quot; name=&quot;name&quot; point=&quot;org.eclipse.wst.validation.validatorV2&quot;&gt;
+  &lt;validator class=&quot;org.eclipse.wst.validation.example.Validator&quot;&gt;
+    &lt;group id=&quot;org.eclipse.wst.validation.example.validatorGroup&quot;/&gt;
+  &lt;/validator&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         Provisional API.
+      </documentation>
+   </annotation>
+
+
+   <annotation>
+      <appinfo>
+         <meta.section type="copyright"/>
+      </appinfo>
+      <documentation>
+         Copyright (c) 2008 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>