This commit was manufactured by cvs2svn to create tag 'v20050601_0930'.
diff --git a/bundles/org.eclipse.jst.jsp.core/.classpath b/bundles/org.eclipse.jst.jsp.core/.classpath
deleted file mode 100644
index 275b34c..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.jst.jsp.core/.cvsignore b/bundles/org.eclipse.jst.jsp.core/.cvsignore
deleted file mode 100644
index 2a87a02..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-bin
-temp.folder
-jspmodel.jar
-dev.properties
-org.eclipse.jst.jsp.core_6.0.0.jar
-build.xml
-org.eclipse.jst.jsp.core_6.0.0.zip
-jspmodelsrc.zip
diff --git a/bundles/org.eclipse.jst.jsp.core/.options b/bundles/org.eclipse.jst.jsp.core/.options
deleted file mode 100644
index 1b94491..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.options
+++ /dev/null
@@ -1,32 +0,0 @@
-org.eclipse.jst.jsp.core/debug=true
-org.eclipse.jst.jsp.core/debug/tracefilter=
-org.eclipse.jst.jsp.core/debug/jspindexmanager=false
-org.eclipse.jst.jsp.core/debug/jsptranslation=false
-org.eclipse.jst.jsp.core/debug/jspsearch=false
-
-org.eclipse.jst.jsp.core/taglib/resolve=false
-
-
-# org.eclipse.jst.jsp.core.contentmodel.tld.TLDCMDocumentManager._debug
-org.eclipse.jst.jsp.core/debug/tldcmdocument/manager=false
-
-# org.eclipse.jst.jsp.core.contentmodel.tld.CMDocumentFactoryTLD._debug
-org.eclipse.jst.jsp.core/debug/tldcmdocument/factory=false
-
-#org.eclipse.jst.jsp.core.internal.contentmodel.ProjectDescription._debugIndexCreation
-org.eclipse.jst.jsp.core/taglib/indexcreation=false
-#org.eclipse.jst.jsp.core.internal.contentmodel.ProjectDescription._debugIndexTime
-org.eclipse.jst.jsp.core/taglib/indextime=false
-
-#org.eclipse.jst.jsp.core.internal.contentmodel.TaglibIndex._debugEvents
-org.eclipse.jst.jsp.core/taglib/events=false
-#org.eclipse.jst.jsp.core.internal.contentmodel.TaglibIndex._debugIndexCreation
-org.eclipse.jst.jsp.core/taglib/indexcreation=false
-#org.eclipse.jst.jsp.core.internal.contentmodel.TaglibIndex._debugResolution
-org.eclipse.jst.jsp.core/taglib/resolve=false
-
-#org.eclipse.jst.jsp.core.text.rules.StructuredTextPartitioner.debugPrefixListener
-org.eclipse.jst.jsp.core/partitioner/prefixlistener=false
-
-org.eclipse.jst.jsp.core/debug/jspjavamapping=false
-
diff --git a/bundles/org.eclipse.jst.jsp.core/.project b/bundles/org.eclipse.jst.jsp.core/.project
deleted file mode 100644
index 0f10b7a..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.jsp.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index cf2b41a..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,79 +0,0 @@
-#Mon May 30 17:57:30 EDT 2005

-eclipse.preferences.version=1

-org.eclipse.jdt.core.builder.cleanOutputFolder=clean

-org.eclipse.jdt.core.builder.duplicateResourceTask=warning

-org.eclipse.jdt.core.builder.invalidClasspath=abort

-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch

-org.eclipse.jdt.core.circularClasspath=error

-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled

-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled

-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.doc.comment.support=enabled

-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100

-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=warning

-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled

-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled

-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning

-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning

-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning

-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning

-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=warning

-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning

-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore

-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning

-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private

-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning

-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error

-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore

-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore

-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled

-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public

-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore

-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled

-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private

-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore

-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning

-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error

-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=warning

-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled

-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=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=warning

-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error

-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore

-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning

-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.unusedLocal=error

-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore

-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled

-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled

-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning

-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning

-org.eclipse.jdt.core.compiler.source=1.3

-org.eclipse.jdt.core.incompatibleJDKLevel=ignore

-org.eclipse.jdt.core.incompleteClasspath=error

diff --git a/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 42fb716..0000000
--- a/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Fri May 27 23:56:32 EDT 2005
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=1
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
deleted file mode 100644
index d54a6fd..0000000
--- a/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,44 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jst.jsp.core; singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.jst.jsp.core.internal.JSPCorePlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.jsp.core.internal,
- org.eclipse.jst.jsp.core.internal.contentmodel,
- org.eclipse.jst.jsp.core.internal.contentmodel.tld,
- org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional,
- org.eclipse.jst.jsp.core.internal.contenttype,
- org.eclipse.jst.jsp.core.internal.document,
- org.eclipse.jst.jsp.core.internal.domdocument,
- org.eclipse.jst.jsp.core.internal.encoding,
- org.eclipse.jst.jsp.core.internal.java,
- org.eclipse.jst.jsp.core.internal.java.search,
- org.eclipse.jst.jsp.core.internal.modelhandler,
- org.eclipse.jst.jsp.core.internal.modelquery,
- org.eclipse.jst.jsp.core.internal.parser,
- org.eclipse.jst.jsp.core.internal.parser.internal,
- org.eclipse.jst.jsp.core.internal.preferences,
- org.eclipse.jst.jsp.core.internal.provisional,
- org.eclipse.jst.jsp.core.internal.provisional.contenttype,
- org.eclipse.jst.jsp.core.internal.provisional.text,
- org.eclipse.jst.jsp.core.internal.regions,
- org.eclipse.jst.jsp.core.internal.tasks,
- org.eclipse.jst.jsp.core.internal.text,
- org.eclipse.jst.jsp.core.internal.util,
- org.eclipse.jst.jsp.core.internal.java.jspel
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.core.filebuffers,
- org.eclipse.wst.html.core,
- org.eclipse.wst.xml.core,
- org.eclipse.wst.sse.ui,
- org.eclipse.wst.sse.core,
- org.eclipse.wst.xml.uriresolver,
- org.eclipse.jdt.core,
- org.eclipse.text,
- org.eclipse.wst.common.uriresolver,
- org.eclipse.wst.validation
-Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.jst.jsp.core/build.properties b/bundles/org.eclipse.jst.jsp.core/build.properties
deleted file mode 100644
index 6b443b0..0000000
--- a/bundles/org.eclipse.jst.jsp.core/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 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
-###############################################################################
-bin.includes = plugin.xml,\
-               .options,\
-               plugin.properties,\
-               META-INF/,\
-               .
-src.includes = plugin.xml,\
-               plugin.properties,\
-               component.xml,\
-               build.properties
-source.. = src/
diff --git a/bundles/org.eclipse.jst.jsp.core/component.xml b/bundles/org.eclipse.jst.jsp.core/component.xml
deleted file mode 100644
index c013b11..0000000
--- a/bundles/org.eclipse.jst.jsp.core/component.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/wtp/releng/tools/component-model"
-        name="org.eclipse.jst.jsp">
-        <component-depends unrestricted="true"></component-depends>
-        <plugin id="org.eclipse.jst.jsp.core" />
-        <plugin id="org.eclipse.jst.jsp.ui" />
-
-
-</component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/plugin.properties b/bundles/org.eclipse.jst.jsp.core/plugin.properties
deleted file mode 100644
index acab5bf..0000000
--- a/bundles/org.eclipse.jst.jsp.core/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 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
-###############################################################################
-providerName=Eclipse.org
-pluginName=Structured Source JSP Model
-nlFeatureName=Structured Source JSP Model NL Support
-Structured_JSP_Document_Factory_Extension.name=Structured JSP Document Factory Extension
-JSP_Content_Type_Extension_Element.name=JSP
-JSP_Tag_Content_Type_Extension_Element.name=JSP Tag Definition
diff --git a/bundles/org.eclipse.jst.jsp.core/plugin.xml b/bundles/org.eclipse.jst.jsp.core/plugin.xml
deleted file mode 100644
index a55866b..0000000
--- a/bundles/org.eclipse.jst.jsp.core/plugin.xml
+++ /dev/null
@@ -1,168 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.wst.sse.core.modelHandler">
-      <modelHandler
-            class="org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForJSP"
-            associatedContentTypeId="org.eclipse.jst.jsp.core.jspsource"
-            id="org.eclipse.jst.jsp.core.internal.modelhandler">
-      </modelHandler>
-   </extension>
-   <extension
-         point="org.eclipse.wst.xml.core.documentFactories">
-      <factory
-            type="tld"
-            class="org.eclipse.jst.jsp.core.internal.contentmodel.tld.CMDocumentFactoryTLD">
-      </factory>
-   </extension>
-
-   <extension
-         id="org.eclipse.jst.jsp.core.taskdelegate"
-         point="org.eclipse.wst.sse.core.taskscanner">
-      <scanner
-            class="org.eclipse.jst.jsp.core.internal.tasks.JSPTaskScannerDelegate"
-            contentTypeIds="org.eclipse.jst.jsp.core.jspsource" />
-   </extension>
-
-   <extension point="org.eclipse.core.filebuffers.documentCreation"
-         id="org.eclipse.jst.jsp.core.documentfactories"
-         name="%Structured_JSP_Document_Factory_Extension.name">
-      <factory
-            contentTypeId="org.eclipse.jst.jsp.core.jspsource"
-            class="org.eclipse.wst.sse.core.internal.filebuffers.BasicStructuredDocumentFactory"/>
-   </extension>
-   <extension point="org.eclipse.core.filebuffers.documentSetup"
-         id="org.eclipse.jst.jsp.core.documentsetup"
-         name="Structured JSP Document Setup participant">
-      <participant
-            contentTypeId="org.eclipse.jst.jsp.core.jspsource"
-            class="org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController"/>
-   </extension>
-   <extension
-         point="org.eclipse.team.core.fileTypes">
-      <fileTypes
-            type="text"
-            extension="jsp">
-      </fileTypes>
-      <fileTypes
-            type="text"
-            extension="jspf"/>
-      <fileTypes
-            type="text"
-            extension="jspx"/>
-      <fileTypes
-            type="text"
-            extension="jsf">
-      </fileTypes>
-      <fileTypes
-            type="text"
-            extension="jsv">
-      </fileTypes>
-      <fileTypes
-            type="text"
-            extension="jtpl">
-      </fileTypes>
-      <fileTypes
-            type="text"
-            extension="tld"/>
-      <fileTypes
-            type="text"
-            extension="tag"/>
-      <fileTypes
-            type="text"
-            extension="tagx"/>
-      <fileTypes
-            type="text"
-            extension="tagf"/>
-   </extension>
-   <extension
-         point="org.eclipse.wst.sse.core.formatProcessors">
-      <processor
-            class="org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl"
-            contentTypeId="org.eclipse.jst.jsp.core.jspsource">
-      </processor>
-   </extension>
-
-   <extension
-         point="org.eclipse.core.runtime.contentTypes">
-         <!-- associate JSP file types -->
-         <content-type
-               file-extensions="jsp,jsv,jtpl,jspx"
-               priority="high"
-               name="%JSP_Content_Type_Extension_Element.name"
-               id="jspsource"
-               base-type="org.eclipse.core.runtime.text"
-			   default-charset="ISO-8859-1">
-			<describer class="org.eclipse.jst.jsp.core.internal.contenttype.ContentDescriberForJSP"/>
-		 </content-type>
-		 <content-type
-               file-extensions="jspf,jsf"
-               priority="high"
-               name="%JSP_Content_Type_Extension_Element.name"
-               id="jspfragmentsource"
-               base-type="org.eclipse.jst.jsp.core.jspsource"
-			   default-charset="ISO-8859-1">
-			<describer class="org.eclipse.jst.jsp.core.internal.contenttype.ContentDescriberForJSP"/>
-		 </content-type>
-         <!-- associate JSP 2.0 Tag file types -->
-         <content-type
-               file-extensions="tag,tagx,tagf"
-               priority="high"
-               name="%JSP_Tag_Content_Type_Extension_Element.name"
-               id="tagsource"
-               base-type="org.eclipse.jst.jsp.core.jspsource"
-			   default-charset="UTF-8">
-		 </content-type>
-		<!-- associate .tld files with the XML content type -->
-		<file-association
-			content-type="org.eclipse.core.runtime.xml"
-			file-extensions="tld"/>
-	</extension>		 
-	
-	<!-- initialize jsp core preferences -->
-	<extension point="org.eclipse.core.runtime.preferences">
-         <initializer class="org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceInitializer"/>
-	</extension>
-	
-	
-	<extension
-                id="JSPELValidator"
-                name="JSPEL Validator"
-                point="org.eclipse.wst.validation.validator">
-           <validator>
-           <projectNature
-                id="org.eclipse.wst.common.modulecore.ModuleCoreNature">
-           </projectNature>
-                  <filter
-                        objectClass="org.eclipse.core.resources.IFile"
-                        nameFilter="*.jsp">
-                  </filter>
-                  <filter
-                        objectClass="org.eclipse.core.resources.IFile"
-                        nameFilter="*.jspf">
-                  </filter>
-                  <filter
-                        objectClass="org.eclipse.core.resources.IFile"
-                        nameFilter="*.jsf">
-                  </filter>
-                  <filter
-                        objectClass="org.eclipse.core.resources.IFile"
-                        nameFilter="*.jsv">
-                  </filter>
-                  <filter
-                        objectClass="org.eclipse.core.resources.IFile"
-                        nameFilter="*.jtpl">
-                  </filter>
-                  <helper
-                        class="org.eclipse.jst.jsp.core.internal.JSPELValidationHelper">
-                  </helper>
-                  <run
-                        enabled="true"
-                        class="org.eclipse.jst.jsp.core.internal.JSPELValidator">
-                  </run>
-                </validator>
-    </extension>
-	
-</plugin>
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Assert.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Assert.java
deleted file mode 100644
index c634c56..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Assert.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.core.internal;
-
-
-
-/**
- * <code>Assert</code> is useful for for embedding runtime sanity checks in
- * code. The predicate methods all test a condition and throw some type of
- * unchecked exception if the condition does not hold.
- * <p>
- * Assertion failure exceptions, like most runtime exceptions, are thrown when
- * something is misbehaving. Assertion failures are invariably unspecified
- * behavior; consequently, clients should never rely on these being thrown
- * (and certainly should not being catching them specifically).
- * </p>
- */
-public final class Assert {
-
-	/**
-	 * <code>AssertionFailedException</code> is a runtime exception thrown
-	 * by some of the methods in <code>Assert</code>.
-	 * <p>
-	 * This class is not declared public to prevent some misuses; programs
-	 * that catch or otherwise depend on assertion failures are susceptible to
-	 * unexpected breakage when assertions in the code are added or removed.
-	 * </p>
-	 */
-	class AssertionFailedException extends RuntimeException {
-		/**
-		 * Comment for <code>serialVersionUID</code>
-		 */
-		private static final long serialVersionUID = 1L;
-
-		/**
-		 * Constructs a new exception.
-		 */
-		public AssertionFailedException() {
-			super();
-		}
-
-		/**
-		 * Constructs a new exception with the given message.
-		 */
-		public AssertionFailedException(String detail) {
-			super(detail);
-		}
-	}
-
-	/**
-	 * Asserts that an argument is legal. If the given boolean is not
-	 * <code>true</code>, an <code>IllegalArgumentException</code> is
-	 * thrown. The given message is included in that exception, to aid
-	 * debugging.
-	 * 
-	 * @param expression
-	 *            the outcode of the check
-	 * @param message
-	 *            the message to include in the exception
-	 * @return <code>true</code> if the check passes (does not return if the
-	 *         check fails)
-	 * @exception IllegalArgumentException
-	 *                if the legality test failed
-	 */
-	public static boolean isLegal(boolean expression, String message) {
-		if (!expression)
-			throw new IllegalArgumentException(message);
-		return expression;
-	}
-
-	/**
-	 * Asserts that the given object is not <code>null</code>. If this is
-	 * not the case, some kind of unchecked exception is thrown. The given
-	 * message is included in that exception, to aid debugging.
-	 * 
-	 * @param object
-	 *            the value to test
-	 * @param message
-	 *            the message to include in the exception
-	 * @exception IllegalArgumentException
-	 *                if the object is <code>null</code>
-	 */
-	public static void isNotNull(Object object, String message) {
-		if (object == null) {
-			Logger.log(Logger.ERROR, "null_argument: " + message); //$NON-NLS-1$
-			throw new Assert().new AssertionFailedException(message);
-		}
-	}
-
-	/**
-	 * Asserts that the given boolean is <code>true</code>. If this is not
-	 * the case, some kind of unchecked exception is thrown. The given message
-	 * is included in that exception, to aid debugging.
-	 * 
-	 * @param expression
-	 *            the outcode of the check
-	 * @param message
-	 *            the message to include in the exception
-	 * @return <code>true</code> if the check passes (does not return if the
-	 *         check fails)
-	 */
-	public static boolean isTrue(boolean expression, String message) {
-		if (!expression) {
-			Logger.log(Logger.ERROR, "assertion failed: " + message); //$NON-NLS-1$
-			throw new Assert().new AssertionFailedException(message);
-		}
-		return expression;
-	}
-
-	/* This class is not intended to be instantiated. */
-	private Assert() {
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCoreMessages.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCoreMessages.java
deleted file mode 100644
index 4c610f7..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCoreMessages.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * 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.jst.jsp.core.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by JSP Core
- * 
- * @since 1.0
- */
-public class JSPCoreMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jst.jsp.core.internal.JSPCorePluginResources"; //$NON-NLS-1$
-
-	public static String JSPIndexManager_0;
-	public static String JSPIndexManager_2;
-	public static String JSP_Search;
-	public static String JSPEL_Syntax;
-	public static String JSPDocumentLoader_1;
-	
-	private JSPCoreMessages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, JSPCoreMessages.class);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java
deleted file mode 100644
index 3905b7b..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal;
-
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPIndexManager;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class JSPCorePlugin extends Plugin {
-	//The shared instance.
-	private static JSPCorePlugin plugin;	
-
-	/**
-	 * The constructor.
-	 */
-	public JSPCorePlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static JSPCorePlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the workspace instance.
-	 */
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		
-		// JSPIndexManager depends on TaglibController, so TaglibController
-		// should be started first
-		TaglibController.startup();
-		
-		// add JSPIndexManager to keep JSP Index up to date
-		// listening for IResourceChangeEvent.PRE_DELETE and IResourceChangeEvent.POST_CHANGE
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(JSPIndexManager.getInstance(), IResourceChangeEvent.POST_CHANGE);
-		
-		// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=5091
-		// makes sure IndexManager is aware of our indexes
-		JSPIndexManager.getInstance().saveIndexes();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		// stop listening
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(JSPIndexManager.getInstance());
-		// stop any searching/indexing
-		JSPSearchSupport.getInstance().setCanceled(true);
-		 
-		TaglibController.shutdown();
-		
-		super.stop(context);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePluginResources.properties b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePluginResources.properties
deleted file mode 100644
index af478b5..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePluginResources.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 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
-###############################################################################
-JSPIndexManager_0=Updating JSP Index
-JSPIndexManager_2=JSP Indexer indexing {0} files
-JSP_Search=JSP Search - 
-JSPDocumentLoader_1=Program Error: structured model had no structuredDocument
-JSPEL_Syntax=EL Syntax Error 
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPELValidationHelper.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPELValidationHelper.java
deleted file mode 100644
index 80edf98..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPELValidationHelper.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.jst.jsp.core.internal;
-
-import org.eclipse.wst.validation.internal.operations.WorkbenchContext;
-
-public class JSPELValidationHelper extends WorkbenchContext {
-
-//	public JSPELValidationHelper() {
-//		System.out.println("Construtor");
-//	}
-//	
-//	public Object loadModel(String symbolicName) {
-//		// TODO Auto-generated method stub
-//		return null;
-//	}
-//
-//	public Object loadModel(String symbolicName, Object[] parms) {
-//		// TODO Auto-generated method stub
-//		return null;
-//	}
-//
-//	public String[] getURIs() {
-//		// TODO Auto-generated method stub
-//		return null;
-//	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPELValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPELValidator.java
deleted file mode 100644
index be65567..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPELValidator.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.eclipse.jst.jsp.core.internal;
-
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jst.jsp.core.internal.domdocument.DOMModelForJSP;
-import org.eclipse.wst.validation.internal.operations.LocalizedMessage;
-import org.eclipse.jst.jsp.core.internal.java.jspel.JSPELParser;
-import org.eclipse.jst.jsp.core.internal.java.jspel.ParseException;
-import org.eclipse.jst.jsp.core.internal.java.jspel.Token;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
-import org.eclipse.wst.validation.internal.core.Message;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class JSPELValidator implements org.eclipse.wst.validation.internal.provisional.core.IValidator {
-	
-	protected void validateRegionContainer(ITextRegionCollection container, IReporter reporter, IFile file) {
-		
-		ITextRegionCollection containerRegion = container;
-		Iterator regions = containerRegion.getRegions().iterator();
-		ITextRegion region = null;
-		while (regions.hasNext()) {
-			region = (ITextRegion) regions.next();
-			String type = region.getType();
-			if (type != null && region instanceof ITextRegionCollection) {
-				ITextRegionCollection parentRegion = ((ITextRegionCollection)region);				
-				Iterator childRegions = parentRegion.getRegions().iterator();
-				while(childRegions.hasNext()) {
-					ITextRegion childRegion = (ITextRegion)childRegions.next();
-					if(childRegion.getType() == DOMJSPRegionContexts.JSP_EL_CONTENT)
-						validateXMLNode(parentRegion, childRegion, reporter, file);
-				}
-			}
-		}
-	}
-			
-	protected void validateXMLNode(ITextRegionCollection container, ITextRegion region, IReporter reporter, IFile file) {
-		String elText = container.getText(region);
-		JSPELParser elParser = JSPELParser.createParser(elText);
-		int contentStart = container.getStartOffset(region);
-		try {
-			elParser.Expression();
-		} catch (ParseException e) {
-			Token curTok = e.currentToken;
-			int problemStartOffset =  contentStart + curTok.beginColumn;
-			Message message = new LocalizedMessage(IMessage.LOW_SEVERITY, JSPCoreMessages.JSPEL_Syntax);
-			message.setOffset(problemStartOffset);
-			message.setLength(curTok.endColumn - curTok.beginColumn + 1);
-			message.setTargetObject(file);
-			reporter.addMessage(this, message);
-		}
-	}
-
-	public void cleanup(org.eclipse.wst.validation.internal.provisional.core.IReporter reporter) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void validate(IValidationContext helper, IReporter reporter) throws ValidationException {
-		String [] uris = helper.getURIs();
-		reporter.removeAllMessages(this);
-		for(int i = 0; i < uris.length; i++) {
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(uris[i]));
-			IStructuredModel model = null;
-			try {
-				model = StructuredModelManager.getModelManager().getModelForRead(file);
-				DOMModelForJSP jspModel = (DOMModelForJSP)model;
-					IStructuredDocument structuredDoc = jspModel.getStructuredDocument();
-					IStructuredDocumentRegion curNode = structuredDoc.getFirstStructuredDocumentRegion();
-					while(null != (curNode = curNode.getNext())) {
-						if (curNode.getType() != DOMRegionContext.XML_COMMENT_TEXT && curNode.getType() != DOMRegionContext.XML_CDATA_TEXT && 
-								curNode.getType() != DOMRegionContext.UNDEFINED) {
-							validateRegionContainer(curNode, reporter, file);
-						}	
-					}	
-			} catch (Exception e) {}
-			finally {
-				if( null != model)
-					model.releaseFromRead();
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Logger.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Logger.java
deleted file mode 100644
index a35dcd0..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Logger.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal;
-
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-
-/**
- * Small convenience class to log messages to plugin's log file and also, if desired,
- * the console. This class should only be used by classes in this plugin. Other
- * plugins should make their own copy, with appropriate ID.
- */
-public class Logger {
-	private static final String PLUGIN_ID = "org.eclipse.jst.jsp.core"; //$NON-NLS-1$
-	
-	private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$
-
-	public static final int OK = IStatus.OK; // 0
-	public static final int INFO = IStatus.INFO; // 1
-	public static final int WARNING = IStatus.WARNING; // 2
-	public static final int ERROR = IStatus.ERROR; // 4
-
-	public static final int OK_DEBUG = 200 + OK;
-	public static final int INFO_DEBUG = 200 + INFO;
-	public static final int WARNING_DEBUG = 200 + WARNING;
-	public static final int ERROR_DEBUG = 200 + ERROR;
-
-	/**
-	 * Adds message to log.
-	 * @param level severity level of the message (OK, INFO, WARNING, ERROR, OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG)
-	 * @param message text to add to the log
-	 * @param exception exception thrown
-	 */
-	protected static void _log(int level, String message, Throwable exception) {
-		if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) {
-			if (!isDebugging())
-				return;
-		}
-
-		int severity = IStatus.OK;
-		switch (level) {
-			case INFO_DEBUG :
-			case INFO :
-				severity = IStatus.INFO;
-				break;
-			case WARNING_DEBUG :
-			case WARNING :
-				severity = IStatus.WARNING;
-				break;
-			case ERROR_DEBUG :
-			case ERROR :
-				severity = IStatus.ERROR;
-		}
-		message = (message != null) ? message : "null"; //$NON-NLS-1$
-		Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception);
-		Bundle bundle = Platform.getBundle(PLUGIN_ID);
-		if (bundle != null) 
-			Platform.getLog(bundle).log(statusObj);
-	}
-
-	/**
-	 * Prints message to log if category matches /debug/tracefilter option.
-	 * @param message text to print
-	 * @param category category of the message, to be compared with /debug/tracefilter
-	 */
-	protected static void _trace(String category, String message, Throwable exception) {
-		if (isTracing(category)) {
-			message = (message != null) ? message : "null"; //$NON-NLS-1$
-			Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception);
-			Bundle bundle = Platform.getBundle(PLUGIN_ID);
-			if (bundle != null) 
-				Platform.getLog(bundle).log(statusObj);
-		}
-	}
-
-	/**
-	 * @return true if the platform is debugging
-	 */
-	public static boolean isDebugging() {
-		return Platform.inDebugMode();
-	}
-
-	/**
-	 * Determines if currently tracing a category
-	 * @param category
-	 * @return true if tracing category, false otherwise
-	 */
-	public static boolean isTracing(String category) {
-		if (!isDebugging())
-			return false;
-
-		String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION);
-		if (traceFilter != null) {
-			StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreTokens()) {
-				String cat = tokenizer.nextToken().trim();
-				if (category.equals(cat)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static void log(int level, String message) {
-		_log(level, message, null);
-	}
-
-	public static void log(int level, String message, Throwable exception) {
-		_log(level, message, exception);
-	}
-
-	public static void logException(String message, Throwable exception) {
-		_log(ERROR, message, exception);
-	}
-
-	public static void logException(Throwable exception) {
-		_log(ERROR, exception.getMessage(), exception);
-	}
-
-	public static void traceException(String category, String message, Throwable exception) {
-		_trace(category, message, exception);
-	}
-
-	public static void traceException(String category, Throwable exception) {
-		_trace(category, exception.getMessage(), exception);
-	}
-
-	public static void trace(String category, String message) {
-		_trace(category, message, null);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMContentWrapperImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMContentWrapperImpl.java
deleted file mode 100644
index ed39833..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMContentWrapperImpl.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public class CMContentWrapperImpl extends CMNodeWrapperImpl implements CMContent {
-
-	private CMContent fCMContent = null;
-
-	/**
-	 * CMContentWrapper constructor comment.
-	 * @param prefix java.lang.String
-	 * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	public CMContentWrapperImpl(String prefix, org.eclipse.wst.xml.core.internal.contentmodel.CMContent node) {
-		super(prefix, node);
-		fCMContent = node;
-	}
-
-	/**
-	 * getMaxOccur method
-	 * @return int
-	 *
-	 * If -1, it's UNBOUNDED.
-	 */
-	public int getMaxOccur() {
-		return fCMContent.getMaxOccur();
-	}
-
-	/**
-	 * getMinOccur method
-	 * @return int
-	 *
-	 * If 0, it's OPTIONAL.
-	 * If 1, it's REQUIRED.
-	 */
-	public int getMinOccur() {
-		return fCMContent.getMinOccur();
-	}
-
-	public CMNode getOriginNode() {
-		return fCMContent;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMDocumentWrapperImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMDocumentWrapperImpl.java
deleted file mode 100644
index 1ab27a7..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMDocumentWrapperImpl.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel;
-
-
-
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMNodeWrapper;
-
-public class CMDocumentWrapperImpl implements CMDocument, CMNodeWrapper {
-
-	class CMNamedNodeMapImpl implements CMNamedNodeMap {
-
-		protected Hashtable table = new Hashtable();
-
-		public CMNamedNodeMapImpl() {
-			super();
-		}
-
-		Hashtable getHashtable() {
-			return table;
-		}
-
-		public int getLength() {
-			return table.size();
-		}
-
-		public CMNode getNamedItem(String name) {
-			return (CMNode) table.get(name);
-		}
-
-		public CMNode item(int index) {
-			Object result = null;
-			int size = table.size();
-			if (index < size) {
-				Iterator values = iterator();
-				for (int i = 0; i <= index; i++) {
-					result = values.next();
-				}
-			}
-			return (CMNode) result;
-		}
-
-		public Iterator iterator() {
-			return table.values().iterator();
-		}
-
-		public void setNamedItem(String name, CMNode aNode) {
-			if (name != null && aNode != null)
-				table.put(name, aNode);
-		}
-	}
-
-	public class CMNamespaceImpl implements CMNamespace {
-		public String getNodeName() {
-			return CMDocumentWrapperImpl.this.getURI();
-		}
-
-		public int getNodeType() {
-			return CMNode.NAME_SPACE;
-		}
-
-		public String getPrefix() {
-			return CMDocumentWrapperImpl.this.getPrefix();
-		}
-
-		public Object getProperty(String property) {
-			return null;
-		}
-
-		public String getURI() {
-			return CMDocumentWrapperImpl.this.getURI();
-		}
-
-		public boolean supports(String feature) {
-			return false;
-		}
-	}
-
-	private CMDocument fDocument;
-	private CMNamedNodeMap fElements = null;
-	private CMNamedNodeMap fEntities = null;
-	private CMNamespace fNamespace = new CMNamespaceImpl();
-	private String fPrefix;
-	private String fURI;
-
-	public CMDocumentWrapperImpl(String newURI, String newPrefix, CMDocument tld) {
-		fURI = newURI;
-		fPrefix = newPrefix;
-		fDocument = tld;
-	}
-
-	/**
-	 * 
-	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 */
-	public CMDocument getDocument() {
-		return fDocument;
-	}
-
-	/**
-	 * getElements method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of ElementDeclaration
-	 */
-	public CMNamedNodeMap getElements() {
-		if (fElements == null) {
-			int length = getDocument().getElements().getLength();
-			CMNamedNodeMapImpl elements = new CMNamedNodeMapImpl();
-			for (int i = 0; i < length; i++) {
-				CMElementDeclaration ed = new CMElementDeclarationWrapperImpl(fPrefix, (CMElementDeclaration) getDocument().getElements().item(i));
-				elements.setNamedItem(ed.getNodeName(), ed);
-			}
-			fElements = elements;
-		}
-		return fElements;
-	}
-
-	/**
-	 * getEntities method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of EntityDeclaration
-	 */
-	public CMNamedNodeMap getEntities() {
-		if (fEntities == null) {
-			fEntities = getDocument().getEntities();
-		}
-		return fEntities;
-	}
-
-	/**
-	 * getNamespace method
-	 * @return CMNamespace
-	 */
-	public CMNamespace getNamespace() {
-		return fNamespace;
-	}
-
-	/**
-	 * getNodeName method
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return getDocument().getNodeName();
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 *
-	 */
-	public int getNodeType() {
-		return getDocument().getNodeType();
-	}
-
-	public CMNode getOriginNode() {
-		return fDocument;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getPrefix() {
-		return fPrefix;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property desciped by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		return getDocument().getProperty(propertyName);
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getURI() {
-		return fURI;
-	}
-
-	/**
-	 * supports method
-	 * @return boolean
-	 *
-	 * Returns true if the CMNode supports a specified property
-	 *
-	 */
-	public boolean supports(String propertyName) {
-		return getDocument().supports(propertyName);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMElementDeclarationWrapperImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMElementDeclarationWrapperImpl.java
deleted file mode 100644
index 86368f0..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMElementDeclarationWrapperImpl.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public class CMElementDeclarationWrapperImpl extends CMNodeWrapperImpl implements CMElementDeclaration {
-	private CMContent fCMContent = null;
-
-	protected CMElementDeclaration fElementDecl = null;
-
-	/**
-	 * CMElementDeclarationWrapper constructor comment.
-	 * @param prefix java.lang.String
-	 * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 */
-	public CMElementDeclarationWrapperImpl(String prefix, CMElementDeclaration node) {
-		super(prefix, node);
-		fElementDecl = node;
-	}
-
-	/**
-	 * getAttributes method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of AttributeDeclaration
-	 */
-	public CMNamedNodeMap getAttributes() {
-		return fElementDecl.getAttributes();
-	}
-
-	/**
-	 * getCMContent method
-	 * @return CMContent
-	 *
-	 * Returns the root node of this element's content model.
-	 * This can be an CMElementDeclaration or a CMGroup
-	 */
-	public CMContent getContent() {
-		if (fCMContent == null) {
-			CMContent content = fElementDecl.getContent();
-			if (content == null)
-				return null;
-			if (content instanceof CMGroup)
-				fCMContent = new CMGroupWrapperImpl(fPrefix, (CMGroup) content);
-			else
-				fCMContent = new CMContentWrapperImpl(fPrefix, content);
-		}
-		return fCMContent;
-	}
-
-	/**
-	 * getContentType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA.
-	 */
-	public int getContentType() {
-		return fElementDecl.getContentType();
-	}
-
-	/**
-	 * getDataType method
-	 * @return java.lang.String
-	 */
-	public CMDataType getDataType() {
-		return fElementDecl.getDataType();
-	}
-
-	/**
-	 * getElementName method
-	 * @return java.lang.String
-	 */
-	public String getElementName() {
-		return getNodeName();
-	}
-
-	/**
-	 * getLocalElements method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns a list of locally defined elements.
-	 */
-	public CMNamedNodeMap getLocalElements() {
-		return fElementDecl.getLocalElements();
-	}
-
-	/**
-	 * getMaxOccur method
-	 * @return int
-	 *
-	 * If -1, it's UNBOUNDED.
-	 */
-	public int getMaxOccur() {
-		return fElementDecl.getMaxOccur();
-	}
-
-	/**
-	 * getMinOccur method
-	 * @return int
-	 *
-	 * If 0, it's OPTIONAL.
-	 * If 1, it's REQUIRED.
-	 */
-	public int getMinOccur() {
-		return fElementDecl.getMinOccur();
-	}
-
-	public CMNode getOriginNode() {
-		return fElementDecl;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMGroupWrapperImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMGroupWrapperImpl.java
deleted file mode 100644
index 714c547..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMGroupWrapperImpl.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-
-public class CMGroupWrapperImpl extends CMContentWrapperImpl implements CMGroup {
-	class CMNodeListImpl implements CMNodeList {
-		private List nodes = null;
-
-		/**
-		 * CMNodeListImpl constructor comment.
-		 */
-		public CMNodeListImpl() {
-			super();
-			nodes = new ArrayList();
-		}
-
-		/**
-		 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-		 * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-		 */
-		public void appendItem(CMNode node) {
-			nodes.add(node);
-		}
-
-		/**
-		 * getLength method
-		 * @return int
-		 */
-		public int getLength() {
-			return nodes.size();
-		}
-
-		/**
-		 * item method
-		 * @return CMNode
-		 * @param index int
-		 */
-		public CMNode item(int index) {
-			if (index < 0 || index >= nodes.size())
-				return null;
-			return (CMNode) nodes.get(index);
-		}
-	}
-
-	private CMNodeList fChildNodes = null;
-	private CMGroup fGroup = null;
-
-	/**
-	 * CMGroupWrapper constructor comment.
-	 * @param prefix java.lang.String
-	 * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMContent
-	 */
-	public CMGroupWrapperImpl(String prefix, CMGroup node) {
-		super(prefix, node);
-	}
-
-	/**
-	 * getChildNodes method
-	 * @return CMNodeList
-	 *
-	 * Returns child CMNodeList, which includes ElementDefinition or CMElement.
-	 */
-	public CMNodeList getChildNodes() {
-		if (fChildNodes == null) {
-			CMNodeListImpl childNodes = new CMNodeListImpl();
-			CMNodeList children = fGroup.getChildNodes();
-			for (int i = 0; i < children.getLength(); i++) {
-				CMNode child = children.item(i);
-				if (child instanceof CMGroup)
-					childNodes.appendItem(new CMGroupWrapperImpl(fPrefix, (CMGroup) child));
-				else if (child instanceof CMElementDeclaration)
-					childNodes.appendItem(new CMElementDeclarationWrapperImpl(fPrefix, (CMElementDeclaration) child));
-				else
-					// error?
-					childNodes.appendItem(new CMNodeWrapperImpl(fPrefix, child));
-			}
-			fChildNodes = childNodes;
-		}
-		return fChildNodes;
-	}
-
-	/**
-	 * getOperation method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ALONE (a), SEQUENCE (a,b), CHOICE (a|b), ALL (a&b).
-	 */
-	public int getOperator() {
-		return fGroup.getOperator();
-	}
-
-	public CMNode getOriginNode() {
-		return fGroup;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMNodeWrapperImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMNodeWrapperImpl.java
deleted file mode 100644
index 0f117ff..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMNodeWrapperImpl.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMNodeWrapper;
-
-public class CMNodeWrapperImpl implements CMNode, CMNodeWrapper {
-	private CMNode fNode = null;
-	private String fNodeName = null;
-
-	protected String fPrefix = null;
-
-	/**
-	 * CMNodeWrapper constructor comment.
-	 */
-	public CMNodeWrapperImpl(String prefix, CMNode node) {
-		super();
-		fPrefix = prefix;
-		fNode = node;
-
-		fNodeName = fPrefix + ":" + fNode.getNodeName(); //$NON-NLS-1$
-	}
-
-	/**
-	 * getNodeName method
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return fNodeName;
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 *
-	 */
-	public int getNodeType() {
-		return fNode.getNodeType();
-	}
-
-	public CMNode getOriginNode() {
-		return fNode;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property desciped by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		return fNode.getProperty(propertyName);
-	}
-
-	/**
-	 * supports method
-	 * @return boolean
-	 *
-	 * Returns true if the CMNode supports a specified property
-	 *
-	 */
-	public boolean supports(String propertyName) {
-		return fNode.supports(propertyName);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ITaglibIndexListener.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ITaglibIndexListener.java
deleted file mode 100644
index 25c3a11..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ITaglibIndexListener.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-
-public interface ITaglibIndexListener {
-	void indexChanged(ITaglibRecordEvent event);
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ITaglibRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ITaglibRecord.java
deleted file mode 100644
index b747676..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ITaglibRecord.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-public interface ITaglibRecord {
-	int JAR = 1 << 2;
-	int TAGDIR = 1 << 4;
-	int TLD = 1 << 1;
-	int URL = 1;
-	int WEB_XML = 1 << 3;
-
-	int getRecordType();
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ITaglibRecordEvent.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ITaglibRecordEvent.java
deleted file mode 100644
index b8ae951..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ITaglibRecordEvent.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-import org.eclipse.core.resources.IResourceDelta;
-
-public interface ITaglibRecordEvent {
-	ITaglibRecord getTaglibRecord();
-
-	int getType();
-
-	int ADDED = IResourceDelta.ADDED;
-	int CHANGED = IResourceDelta.CHANGED;
-	int REMOVED = IResourceDelta.REMOVED;
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JSPCMDocumentFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JSPCMDocumentFactory.java
deleted file mode 100644
index a75e1ce..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JSPCMDocumentFactory.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel;
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType;
-
-/**
- * CMDocument factory for JSP documents.
- */
-public final class JSPCMDocumentFactory {
-
-	static class CMDocImpl implements CMDocument {
-		public CMDocImpl() {
-			super();
-		}
-
-		private static CMDocument jcm = HTMLCMDocumentFactory.getCMDocument(CMDocType.JSP11_DOC_TYPE);
-
-		public String getNodeName() {
-			return jcm.getNodeName();
-		}
-
-		public int getNodeType() {
-			return jcm.getNodeType();
-		}
-
-		public CMNamedNodeMap getElements() {
-			return jcm.getElements();
-		}
-
-		public CMNamedNodeMap getEntities() {
-			return jcm.getEntities();
-		}
-
-		public CMNamespace getNamespace() {
-			return jcm.getNamespace();
-		}
-
-		public Object getProperty(String propertyName) {
-			return null;
-		}
-
-		public boolean supports(String propertyName) {
-			return false;
-		}
-	}
-
-	private static CMDocument mycm;
-
-	private JSPCMDocumentFactory() {
-		super();
-	}
-
-	public static CMDocument getCMDocument() {
-		if (mycm == null) {
-			mycm = new CMDocImpl();
-		}
-		return mycm;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JarRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JarRecord.java
deleted file mode 100644
index dcf88dc..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JarRecord.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-
-
-public class JarRecord implements ITaglibRecord {
-	IPath location;
-	List urlRecords;
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof JarRecord))
-			return false;
-		return ((JarRecord) obj).location.equals(location);
-	}
-
-	public int getRecordType() {
-		return ITaglibRecord.JAR;
-	}
-
-	/**
-	 * @return Returns the location.
-	 */
-	public IPath getLocation() {
-		return location;
-	}
-
-	/**
-	 * 
-	 */
-	public List getURLRecords() {
-		return urlRecords;
-	}
-
-	public String toString() {
-		return "JarRecord: " + location + " <-> " + urlRecords; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ProjectDescription.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ProjectDescription.java
deleted file mode 100644
index abf1519..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ProjectDescription.java
+++ /dev/null
@@ -1,753 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Stack;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-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.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IResourceProxy;
-import org.eclipse.core.resources.IResourceProxyVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
-import org.eclipse.jst.jsp.core.internal.util.DocumentProvider;
-import org.eclipse.wst.sse.core.internal.util.JarUtilities;
-import org.eclipse.wst.xml.uriresolver.internal.util.URIHelper;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-class ProjectDescription {
-
-	class DeltaVisitor implements IResourceDeltaVisitor {
-		public boolean visit(IResourceDelta delta) throws CoreException {
-			IResource resource = delta.getResource();
-			if (resource.getType() == IResource.FILE) {
-				if (resource.getName().endsWith(".tld")) { //$NON-NLS-1$
-					if (delta.getKind() == IResourceDelta.REMOVED) {
-						removeTLD(resource);
-					}
-					else {
-						updateTLD(resource, delta.getKind());
-					}
-				}
-				else if (resource.getName().endsWith(".jar")) { //$NON-NLS-1$
-					if (delta.getKind() == IResourceDelta.REMOVED) {
-						removeJAR(resource);
-					}
-					else {
-						updateJAR(resource, delta.getKind());
-					}
-				}
-				else if (resource.getName().endsWith(".tag") || resource.getName().endsWith(".tagx")) { //$NON-NLS-1$ //$NON-NLS-2$
-					if (delta.getKind() == IResourceDelta.REMOVED) {
-						removeTagDir(resource);
-					}
-					else {
-						updateTagDir(resource, delta.getKind());
-					}
-				}
-				else if (resource.getName().equals(WEB_XML) && resource.getParent().getName().equals(WEB_INF)) {
-					if (delta.getKind() == IResourceDelta.REMOVED) {
-						removeServlets(resource);
-					}
-					else {
-						updateServlets(resource, delta.getKind());
-					}
-				}
-			}
-			return resource.getName().length() != 0 && resource.getName().charAt(0) != '.';
-		}
-	}
-
-	class Indexer implements IResourceProxyVisitor {
-		public boolean visit(IResourceProxy proxy) throws CoreException {
-			if (proxy.getType() == IResource.FILE) {
-				if (proxy.getName().endsWith(".tld")) { //$NON-NLS-1$
-					updateTLD(proxy.requestResource(), ITaglibRecordEvent.ADDED);
-				}
-				else if (proxy.getName().endsWith(".jar")) { //$NON-NLS-1$
-					updateJAR(proxy.requestResource(), ITaglibRecordEvent.ADDED);
-				}
-				else if (proxy.getName().endsWith(".tag") || proxy.getName().endsWith(".tagx")) { //$NON-NLS-1$ //$NON-NLS-2$
-					updateTagDir(proxy.requestResource(), ITaglibRecordEvent.ADDED);
-				}
-				else if (proxy.getName().equals(WEB_XML) && proxy.requestResource().getParent().getName().equals(WEB_INF)) {
-					updateServlets(proxy.requestResource(), ITaglibRecordEvent.ADDED);
-				}
-			}
-			String name = proxy.getName();
-			return name.length() != 0 && name.charAt(0) != '.';
-		}
-	}
-
-	class TaglibRecordEvent implements ITaglibRecordEvent {
-		ITaglibRecord fTaglibRecord = null;
-		int fType = -1;
-
-		TaglibRecordEvent(ITaglibRecord record, int type) {
-			fTaglibRecord = record;
-			fType = type;
-		}
-
-		public ITaglibRecord getTaglibRecord() {
-			return fTaglibRecord;
-		}
-
-		public int getType() {
-			return fType;
-		}
-
-		public String toString() {
-			String string = fTaglibRecord.toString();
-			switch (fType) {
-				case ITaglibRecordEvent.ADDED :
-					string += " ADDED (" + TaglibRecordEvent.class.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				case ITaglibRecordEvent.CHANGED :
-					string += " CHANGED (" + TaglibRecordEvent.class.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				case ITaglibRecordEvent.REMOVED :
-					string += " REMOVED (" + TaglibRecordEvent.class.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				default :
-					string += " other:" + fType + " (" + TaglibRecordEvent.class.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-			}
-			return string;
-		}
-	}
-
-	static boolean _debugIndexCreation = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/taglib/indexcreation")); //$NON-NLS-1$ //$NON-NLS-2$
-	static boolean _debugIndexTime = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/taglib/indextime")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private static final String WEB_INF = "WEB-INF"; //$NON-NLS-1$
-
-	private static final IPath WEB_INF_PATH = new Path("WEB-INF"); //$NON-NLS-1$
-	private static final String WEB_XML = "web.xml"; //$NON-NLS-1$
-
-	/*
-	 * Records active JARs on the classpath. Taglib descriptors should be
-	 * usable, but the jars by themselves should not.
-	 */
-	Hashtable fClasspathJars;
-
-	Stack fClasspathProjects = null;
-
-	// holds references by URI to TLDs
-	Hashtable fClasspathReferences;
-
-	// this table is special in that it holds tables of references according
-	// to local roots
-	Hashtable fImplicitReferences;
-	Hashtable fJARReferences;
-	IProject fProject;
-	Hashtable fServletReferences;
-	Hashtable fTagDirReferences;
-
-	Hashtable fTLDReferences;
-
-	IResourceDeltaVisitor fVisitor;
-
-	private long time0;
-
-	ProjectDescription(IProject project) {
-		super();
-		fProject = project;
-		fClasspathReferences = new Hashtable(0);
-		fClasspathJars = new Hashtable(0);
-		fJARReferences = new Hashtable(0);
-		fTagDirReferences = new Hashtable(0);
-		fTLDReferences = new Hashtable(0);
-		fServletReferences = new Hashtable(0);
-		fImplicitReferences = new Hashtable(0);
-	}
-
-	void updateClasspathLibrary(String libraryLocation, int deltaKind) {
-		String[] entries = JarUtilities.getEntryNames(libraryLocation);
-		JarRecord libraryRecord = (JarRecord) createJARRecord(libraryLocation);
-		fClasspathJars.put(libraryLocation, libraryRecord);
-		for (int i = 0; i < entries.length; i++) {
-			if (entries[i].endsWith(".tld")) { //$NON-NLS-1$
-				InputStream contents = JarUtilities.getInputStream(libraryLocation, entries[i]);
-				if (contents != null) {
-					String uri = extractURI(libraryLocation, contents);
-					if (uri != null && uri.length() > 0) {
-						URLRecord record = new URLRecord();
-						record.uri = uri;
-						record.baseLocation = libraryLocation;
-						try {
-							record.url = new URL("jar:file:" + libraryLocation + "!/" + entries[i]); //$NON-NLS-1$ //$NON-NLS-2$
-							libraryRecord.urlRecords.add(record);
-							fClasspathReferences.put(uri, record);
-							if (_debugIndexCreation)
-								System.out.println("created record for " + uri + "@" + record.getURL()); //$NON-NLS-1$ //$NON-NLS-2$
-						}
-						catch (MalformedURLException e) {
-							// don't record this URI
-							Logger.logException(e);
-						}
-					}
-					try {
-						contents.close();
-					}
-					catch (IOException e) {
-					}
-				}
-			}
-		}
-		TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(libraryRecord, deltaKind));
-	}
-
-	void updateJAR(IResource jar, int deltaKind) {
-		if (_debugIndexCreation)
-			System.out.println("creating records for JAR " + jar.getFullPath()); //$NON-NLS-1$
-		String jarLocationString = jar.getLocation().toString();
-		String[] entries = JarUtilities.getEntryNames(jar);
-		JarRecord jarRecord = (JarRecord) createJARRecord(jar);
-		fJARReferences.put(jar.getFullPath().toString(), jarRecord);
-		for (int i = 0; i < entries.length; i++) {
-			if (entries[i].endsWith(".tld")) { //$NON-NLS-1$
-				InputStream contents = JarUtilities.getInputStream(jar, entries[i]);
-				if (contents != null) {
-					String uri = extractURI(jarLocationString, contents);
-					if (uri != null && uri.length() > 0) {
-						URLRecord record = new URLRecord();
-						record.uri = uri;
-						record.baseLocation = jarLocationString;
-						try {
-							record.url = new URL("jar:file:" + jarLocationString + "!/" + entries[i]); //$NON-NLS-1$ //$NON-NLS-2$
-							jarRecord.urlRecords.add(record);
-							getImplicitReferences(jarLocationString).put(uri, record);
-							if (_debugIndexCreation)
-								System.out.println("created record for " + uri + "@" + record.getURL()); //$NON-NLS-1$ //$NON-NLS-2$
-						}
-						catch (MalformedURLException e) {
-							// don't record this URI
-							Logger.logException(e);
-						}
-					}
-					try {
-						contents.close();
-					}
-					catch (IOException e) {
-					}
-				}
-			}
-		}
-		TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(jarRecord, deltaKind));
-	}
-
-	void updateServlets(IResource webxml, int deltaKind) {
-		if (webxml.getType() != IResource.FILE)
-			return;
-		InputStream webxmlContents = null;
-		Document document = null;
-		try {
-			webxmlContents = ((IFile) webxml).getContents(true);
-			DocumentProvider provider = new DocumentProvider();
-			provider.setInputStream(webxmlContents);
-			provider.setValidating(false);
-			provider.setBaseReference(webxml.getParent().getLocation().toString());
-			document = provider.getDocument();
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-		finally {
-			if (webxmlContents != null)
-				try {
-					webxmlContents.close();
-				}
-				catch (IOException e1) {
-					// ignore
-				}
-		}
-		if (document == null)
-			return;
-		if (_debugIndexCreation)
-			System.out.println("creating records for " + webxml.getFullPath()); //$NON-NLS-1$
-
-		ServletRecord servletRecord = new ServletRecord();
-		servletRecord.location = webxml.getLocation();
-		fServletReferences.put(servletRecord.getWebXML().toString(), servletRecord);
-		NodeList taglibs = document.getElementsByTagName(JSP12TLDNames.TAGLIB);
-		for (int i = 0; i < taglibs.getLength(); i++) {
-			String uri = readTextofChild(taglibs.item(i), "taglib-uri").trim(); //$NON-NLS-1$
-			// specified location is relative to root of the webapp
-			String location = readTextofChild(taglibs.item(i), "taglib-location").trim(); //$NON-NLS-1$
-			TLDRecord record = new TLDRecord();
-			record.uri = uri;
-			if (location.startsWith("/")) { //$NON-NLS-1$
-				record.location = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(getLocalRoot(webxml.getLocation().toString()) + location);
-			}
-			else {
-				record.location = new Path(URIHelper.normalize(location, webxml.getLocation().toString(), getLocalRoot(webxml.getLocation().toString())));
-			}
-			servletRecord.tldRecords.add(record);
-			getImplicitReferences(webxml.getLocation().toString()).put(uri, record);
-			if (_debugIndexCreation)
-				System.out.println("created record for " + uri + "@" + record.location); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(servletRecord, deltaKind));
-	}
-
-	void updateTagDir(IResource tagFile, int deltaKind) {
-		return;
-		/**
-		 * Make sure the tag file is n a WEB-INF/tags folder because of the
-		 * shortname computation requirements
-		 */
-		// if ((tagFile.getType() & IResource.FOLDER) > 0 ||
-		// tagFile.getFullPath().toString().indexOf("WEB-INF/tags") < 0)
-		// return;
-		// TagDirRecord record = createTagdirRecord(tagFile);
-		// if (record != null) {
-		// record.tags.add(tagFile.getName());
-		// }
-	}
-
-	void updateTLD(IResource tld, int deltaKind) {
-		if (_debugIndexCreation)
-			System.out.println("creating record for " + tld.getFullPath()); //$NON-NLS-1$
-		TLDRecord record = createTLDRecord(tld);
-		fTLDReferences.put(tld.getFullPath().toString(), record);
-		if (record.uri != null) {
-			getImplicitReferences(tld.getLocation().toString()).put(record.uri, record);
-		}
-		TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, deltaKind));
-	}
-
-	void clear() {
-	}
-
-	/**
-	 * @param resource
-	 * @return
-	 */
-	private ITaglibRecord createJARRecord(IResource jar) {
-		return createJARRecord(jar.getLocation().toString());
-	}
-
-	private ITaglibRecord createJARRecord(String fileLocation) {
-		JarRecord record = new JarRecord();
-		record.location = new Path(fileLocation);
-		record.urlRecords = new ArrayList(0);
-		return record;
-	}
-
-	/**
-	 * @return
-	 */
-	TagDirRecord createTagdirRecord(IResource tagFile) {
-		IContainer tagdir = tagFile.getParent();
-		String tagdirLocation = tagdir.getFullPath().toString();
-		TagDirRecord record = (TagDirRecord) fTagDirReferences.get(tagdirLocation);
-		if (record == null) {
-			record = new TagDirRecord();
-			record.location = tagdir.getFullPath();
-			// JSP 2.0 section 8.4.3
-			if (tagdir.getName().equals("tags")) //$NON-NLS-1$
-				record.shortName = "tags"; //$NON-NLS-1$
-			else {
-				IPath tagdirPath = tagdir.getFullPath();
-				String[] segments = tagdirPath.segments();
-				for (int i = 1; record.shortName == null && i < segments.length; i++) {
-					if (segments[i - 1].equals("WEB-INF") && segments[i].equals("tags")) { //$NON-NLS-1$ //$NON-NLS-2$
-						IPath tagdirLocalPath = tagdirPath.removeFirstSegments(i + 1);
-						record.shortName = tagdirLocalPath.toString().replace('/', '-');
-					}
-				}
-			}
-
-		}
-		return record;
-	}
-
-	/**
-	 * @param resource
-	 * @return
-	 */
-	private TLDRecord createTLDRecord(IResource tld) {
-		TLDRecord record = new TLDRecord();
-		record.location = tld.getLocation();
-		InputStream contents = null;
-		try {
-			contents = ((IFile) tld).getContents(true);
-			String baseLocation = record.location.toString();
-			String defaultURI = extractURI(baseLocation, contents);
-			if (defaultURI != null && defaultURI.length() > 0) {
-				record.uri = defaultURI;
-			}
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-		finally {
-			try {
-				if (contents != null) {
-					contents.close();
-				}
-			}
-			catch (IOException e) {
-				// ignore
-			}
-		}
-		return record;
-	}
-
-	/**
-	 * @param tldContents
-	 * @return
-	 */
-	private String extractURI(String baseLocation, InputStream tldContents) {
-		StringBuffer uri = new StringBuffer();
-		Node result = null;
-		DocumentProvider provider = new DocumentProvider();
-		provider.setInputStream(tldContents);
-		provider.setValidating(false);
-		provider.setRootElementName(JSP12TLDNames.TAGLIB);
-		provider.setBaseReference(baseLocation);
-		result = provider.getRootElement();
-		if (result.getNodeType() != Node.ELEMENT_NODE)
-			return null;
-		Element taglibElement = (Element) result;
-		if (taglibElement != null) {
-			Node child = taglibElement.getFirstChild();
-			while (child != null && !(child.getNodeType() == Node.ELEMENT_NODE && child.getNodeName().equals(JSP12TLDNames.URI))) {
-				child = child.getNextSibling();
-			}
-			if (child != null) {
-				Node text = child.getFirstChild();
-				while (text != null) {
-					if (text.getNodeType() == Node.TEXT_NODE || text.getNodeType() == Node.CDATA_SECTION_NODE) {
-						uri.append(text.getNodeValue().trim());
-					}
-					text = text.getNextSibling();
-				}
-			}
-		}
-		return uri.toString();
-	}
-
-	synchronized List getAvailableTaglibRecords(IPath location) {
-		Collection implicitReferences = getImplicitReferences(location.toString()).values();
-		List records = new ArrayList(fTLDReferences.size() + fTagDirReferences.size() + fJARReferences.size() + fServletReferences.size());
-		records.addAll(fTLDReferences.values());
-		records.addAll(fTagDirReferences.values());
-		records.addAll(fJARReferences.values());
-		records.addAll(fServletReferences.values());
-		records.addAll(implicitReferences);
-		return records;
-	}
-
-	/**
-	 * @return Returns the implicitReferences for the given path
-	 */
-	Hashtable getImplicitReferences(String location) {
-		String localRoot = getLocalRoot(location);
-		Hashtable implicitReferences = (Hashtable) fImplicitReferences.get(localRoot);
-		if (implicitReferences == null) {
-			implicitReferences = new Hashtable(1);
-			fImplicitReferences.put(localRoot, implicitReferences);
-		}
-		return implicitReferences;
-	}
-
-	/**
-	 * @param baseLocation
-	 * @return the applicable Web context root path, if one exists
-	 */
-	IPath getLocalRoot(IPath baseLocation) {
-		IResource file = FileBuffers.getWorkspaceFileAtLocation(baseLocation);
-		while (file != null) {
-			/**
-			 * Treat any parent folder with a WEB-INF subfolder as a web-app
-			 * root
-			 */
-			IContainer folder = null;
-			if ((file.getType() & IResource.FOLDER) != 0) {
-				folder = (IContainer) file;
-			}
-			else {
-				folder = file.getParent();
-			}
-			// getFolder on a workspace root must use a full path, skip
-			if (folder != null && (folder.getType() & IResource.ROOT) == 0) {
-				IFolder webinf = folder.getFolder(WEB_INF_PATH);
-				if (webinf != null && webinf.exists()) {
-					return folder.getFullPath();
-				}
-			}
-			file = file.getParent();
-		}
-
-		return fProject.getFullPath();
-	}
-
-	/**
-	 * @param baseLocation
-	 * @return
-	 */
-	private String getLocalRoot(String baseLocation) {
-		return getLocalRoot(new Path(baseLocation)).toString();
-	}
-
-	/**
-	 * @return Returns the visitor.
-	 */
-	IResourceDeltaVisitor getVisitor() {
-		if (fVisitor == null) {
-			fVisitor = new DeltaVisitor();
-		}
-		return fVisitor;
-	}
-
-	void index() {
-		time0 = System.currentTimeMillis();
-		fTLDReferences.clear();
-		fJARReferences.clear();
-		fTagDirReferences.clear();
-		fServletReferences.clear();
-		try {
-			fProject.accept(new Indexer(), 0);
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-
-		if (_debugIndexTime)
-			System.out.println("indexed " + fProject.getName() + " in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	void indexClasspath() {
-		time0 = System.currentTimeMillis();
-		fClasspathProjects = new Stack();
-		fClasspathReferences.clear();
-		fClasspathJars.clear();
-		IJavaProject javaProject = JavaCore.create(fProject);
-		indexClasspath(javaProject);
-		if (_debugIndexTime)
-			System.out.println("indexed " + fProject.getName() + " classpath in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	/**
-	 * @param entry
-	 */
-	private void indexClasspath(IClasspathEntry entry) {
-		switch (entry.getEntryKind()) {
-			case IClasspathEntry.CPE_CONTAINER : {
-				IClasspathContainer container = (IClasspathContainer) entry;
-				IClasspathEntry[] containedEntries = container.getClasspathEntries();
-				for (int i = 0; i < containedEntries.length; i++) {
-					indexClasspath(containedEntries[i]);
-				}
-			}
-				break;
-			case IClasspathEntry.CPE_LIBRARY : {
-				/*
-				 * Ignore libs in required projects that are not exported
-				 */
-				if (fClasspathProjects.size() < 2 || entry.isExported()) {
-					IPath libPath = entry.getPath();
-					if (!fClasspathJars.containsKey(libPath.toString())) {
-						if (libPath.toFile().exists()) {
-							updateClasspathLibrary(libPath.toString(), ITaglibRecordEvent.CHANGED);
-						}
-						else {
-							IFile libFile = ResourcesPlugin.getWorkspace().getRoot().getFile(libPath);
-							if (libFile != null && libFile.exists()) {
-								updateClasspathLibrary(libFile.getLocation().toString(), ITaglibRecordEvent.CHANGED);
-							}
-						}
-					}
-				}
-			}
-				break;
-			case IClasspathEntry.CPE_PROJECT : {
-				/*
-				 * Ignore required projects of required projects that are not
-				 * exported
-				 */
-				if (fClasspathProjects.size() < 2 || entry.isExported()) {
-					IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(entry.getPath().lastSegment());
-					if (project != null && !fClasspathProjects.contains(project.getName())) {
-						indexClasspath(JavaCore.create(project));
-					}
-				}
-			}
-				break;
-			case IClasspathEntry.CPE_SOURCE :
-				break;
-			case IClasspathEntry.CPE_VARIABLE :
-				break;
-		}
-	}
-
-	/**
-	 * @param javaProject
-	 */
-	private void indexClasspath(IJavaProject javaProject) {
-		if (javaProject != null && javaProject.exists()) {
-			fClasspathProjects.push(javaProject.getElementName());
-			try {
-				IClasspathEntry[] entries = javaProject.getResolvedClasspath(true);
-				for (int i = 0; i < entries.length; i++) {
-					indexClasspath(entries[i]);
-				}
-			}
-			catch (JavaModelException e) {
-				Logger.logException("Error searching Java Build Path + (" + fProject.getName() + ") for tag libraries", e); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			fClasspathProjects.pop();
-		}
-	}
-
-	protected String readTextofChild(Node node, String childName) {
-		StringBuffer buffer = new StringBuffer();
-		NodeList children = node.getChildNodes();
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			if (child.getNodeType() == Node.ELEMENT_NODE && child.getNodeName().equals(childName)) {
-				Node text = child.getFirstChild();
-				while (text != null) {
-					buffer.append(text.getNodeValue().trim());
-					text = text.getNextSibling();
-				}
-			}
-		}
-		return buffer.toString();
-	}
-
-	void removeClasspathLibrary(String libraryLocation) {
-		JarRecord record = (JarRecord) fClasspathJars.remove(libraryLocation);
-		if (record != null) {
-			URLRecord[] records = (URLRecord[]) record.getURLRecords().toArray(new URLRecord[0]);
-			for (int i = 0; i < records.length; i++) {
-				fClasspathReferences.remove(records[i].getURI());
-			}
-			TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, ITaglibRecordEvent.REMOVED));
-		}
-	}
-
-	void removeJAR(IResource jar) {
-		if (_debugIndexCreation)
-			System.out.println("removing records for JAR " + jar.getFullPath()); //$NON-NLS-1$
-		JarRecord record = (JarRecord) fJARReferences.remove(jar.getFullPath());
-		if (record != null) {
-			URLRecord[] records = (URLRecord[]) record.getURLRecords().toArray(new URLRecord[0]);
-			for (int i = 0; i < records.length; i++) {
-				getImplicitReferences(jar.getLocation().toString()).remove(records[i].getURI());
-			}
-			TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, ITaglibRecordEvent.REMOVED));
-		}
-	}
-
-	void removeServlets(IResource webxml) {
-		if (_debugIndexCreation)
-			System.out.println("removing records for " + webxml.getFullPath()); //$NON-NLS-1$
-		ServletRecord record = (ServletRecord) fServletReferences.remove(webxml.getLocation().toString());
-		if (record != null) {
-			TLDRecord[] records = (TLDRecord[]) record.getTLDRecords().toArray(new TLDRecord[0]);
-			for (int i = 0; i < records.length; i++) {
-				if (_debugIndexCreation)
-					System.out.println("removed record for " + records[i].uri + "@" + records[i].location); //$NON-NLS-1$ //$NON-NLS-2$
-				getImplicitReferences(webxml.getLocation().toString()).remove(records[i].getURI());
-			}
-			TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, ITaglibRecordEvent.REMOVED));
-		}
-	}
-
-	void removeTagDir(IResource tagFile) {
-		// IContainer tagdir = tagFile.getParent();
-		// String tagdirLocation = tagdir.getFullPath().toString();
-		// fTagDirReferences.remove(tagdirLocation);
-	}
-
-	void removeTLD(IResource tld) {
-		if (_debugIndexCreation)
-			System.out.println("removing record for " + tld.getFullPath()); //$NON-NLS-1$
-		TLDRecord record = (TLDRecord) fTLDReferences.remove(tld.getFullPath());
-		if (record != null) {
-			if (record.uri != null) {
-				getImplicitReferences(tld.getLocation().toString()).remove(record.uri);
-			}
-			TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, ITaglibRecordEvent.REMOVED));
-		}
-	}
-
-	/**
-	 * @param basePath
-	 * @param reference
-	 * @return
-	 */
-	ITaglibRecord resolve(String basePath, String reference) {
-		ITaglibRecord record = null;
-		String location = null;
-
-		/**
-		 * Workaround for problem in URIHelper; uris starting with '/' are
-		 * returned as-is.
-		 */
-		if (reference.startsWith("/")) { //$NON-NLS-1$
-			location = getLocalRoot(basePath) + reference;
-		}
-		else {
-			location = URIHelper.normalize(reference, basePath, getLocalRoot(basePath));
-		}
-		// order dictated by JSP spec 2.0 section 7.2.3
-		if (record == null) {
-			record = (ITaglibRecord) fServletReferences.get(location);
-		}
-		if (record == null) {
-			record = (ITaglibRecord) fJARReferences.get(location);
-		}
-		if (record == null) {
-			record = (ITaglibRecord) fTLDReferences.get(location);
-		}
-		if (record == null) {
-			record = (ITaglibRecord) getImplicitReferences(basePath).get(reference);
-		}
-		if (record == null) {
-			record = (ITaglibRecord) fTagDirReferences.get(location);
-		}
-		if (record == null) {
-			record = (ITaglibRecord) fClasspathReferences.get(reference);
-		}
-		return record;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ServletRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ServletRecord.java
deleted file mode 100644
index c801f4d..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/ServletRecord.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-
-
-public class ServletRecord implements ITaglibRecord {
-	IPath location;
-	List tldRecords = new ArrayList(0);
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof ServletRecord))
-			return false;
-		return ((ServletRecord) obj).location.equals(location);
-	}
-
-	public int getRecordType() {
-		return ITaglibRecord.WEB_XML;
-	}
-
-	/**
-	 * @return Returns the webxml.
-	 */
-	public IPath getWebXML() {
-		return location;
-	}
-
-	/**
-	 * 
-	 */
-	public List getTLDRecords() {
-		return tldRecords;
-	}
-
-	public String toString() {
-		return "ServletRecord: " + location + tldRecords; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TLDRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TLDRecord.java
deleted file mode 100644
index b3af0f9..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TLDRecord.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-import org.eclipse.core.runtime.IPath;
-
-
-public class TLDRecord implements ITaglibRecord {
-	IPath location;
-	String uri;
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof TLDRecord))
-			return false;
-		return ((TLDRecord) obj).location.equals(location);
-	}
-
-	public int getRecordType() {
-		return ITaglibRecord.TLD;
-	}
-
-	/**
-	 * @return Returns the filesystem location.
-	 */
-	public IPath getLocation() {
-		return location;
-	}
-
-	/**
-	 * @return Returns the uri.
-	 */
-	public String getURI() {
-		return uri;
-	}
-
-	public String toString() {
-		return "TLDRecord: " + location + " <-> " + uri; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TagDirRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TagDirRecord.java
deleted file mode 100644
index 8967f0d..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TagDirRecord.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-
-
-public class TagDirRecord implements ITaglibRecord {
-	IPath location;
-	String shortName;
-	// a List holding Strings of .tag and .tagx filenames relative to the
-	// tagdir's location
-	List tags = new ArrayList(0);
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof TagDirRecord))
-			return false;
-		return ((TagDirRecord) obj).location.equals(location);
-	}
-
-	/**
-	 * @return Returns the location.
-	 */
-	public IPath getLocation() {
-		return location;
-	}
-
-	public int getRecordType() {
-		return ITaglibRecord.TAGDIR;
-	}
-
-	/**
-	 * @return Returns the shortName.
-	 */
-	public String getShortName() {
-		return shortName;
-	}
-
-	/**
-	 * @return Returns the tags.
-	 */
-	public String[] getTags() {
-		return (String[]) tags.toArray(new String[tags.size()]);
-	}
-
-	public String toString() {
-		return "TagdirRecord: " + location + " <-> " + shortName; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibController.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibController.java
deleted file mode 100644
index 31b986f..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibController.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.filebuffers.IDocumentSetupParticipant;
-import org.eclipse.core.filebuffers.IFileBuffer;
-import org.eclipse.core.filebuffers.IFileBufferListener;
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
-import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.sse.core.internal.util.Assert;
-
-/**
- * Provides a direct mapping from IStructuredDocument to supporting
- * TLDCMDocumentManager.
- * 
- * Listens to the creation of JSP type TextFileBuffers and forces a text-less
- * reparse after connecting taglib-supporting listeners. Connecting the
- * listeners before the text is set would be ideal, but there is no way to
- * look up taglib references since the location is not yet knowable. Since
- * taglibs can affect the parsing of the document, a reparse is currently
- * required to react to custom tags with tagdependent content.
- * 
- * TODO: Remove the reparse penalty.
- */
-public class TaglibController implements IDocumentSetupParticipant {
-
-	class DocumentInfo implements ITaglibIndexListener {
-		IStructuredDocument document;
-		ITextFileBuffer textFileBuffer;
-		TLDCMDocumentManager tldDocumentManager;
-
-		public void indexChanged(ITaglibRecordEvent event) {
-			tldDocumentManager.indexChanged(event);
-		}
-	}
-
-	class FileBufferListener implements IFileBufferListener {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#bufferContentAboutToBeReplaced(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void bufferContentAboutToBeReplaced(IFileBuffer buffer) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#bufferContentReplaced(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void bufferContentReplaced(IFileBuffer buffer) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#bufferCreated(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void bufferCreated(IFileBuffer buffer) {
-			if (buffer instanceof ITextFileBuffer) {
-				IDocument document = ((ITextFileBuffer) buffer).getDocument();
-				// ignore non-JSP documents
-				synchronized (fJSPdocuments) {
-					if (!fJSPdocuments.contains(document))
-						return;
-				}
-				Assert.isTrue(document instanceof IStructuredDocument, getClass().getName() + " SetupParticipant was called for non-IStructuredDocument"); //$NON-NLS-1$
-				DocumentInfo info = new DocumentInfo();
-				info.document = (IStructuredDocument) document;
-				info.textFileBuffer = (ITextFileBuffer) buffer;
-				info.tldDocumentManager = new TLDCMDocumentManager();
-				info.tldDocumentManager.setSourceParser((JSPSourceParser) info.document.getParser());
-				synchronized (fDocumentMap) {
-					fDocumentMap.put(document, info);
-					TaglibIndex.addTaglibIndexListener(info);
-				}
-				if (document instanceof BasicStructuredDocument) {
-					((BasicStructuredDocument) document).reparse(this);
-				}
-				// info.tldDocumentManager.doRebuild();
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#bufferDisposed(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void bufferDisposed(IFileBuffer buffer) {
-			if (buffer instanceof ITextFileBuffer) {
-				IDocument document = ((ITextFileBuffer) buffer).getDocument();
-				synchronized (fJSPdocuments) {
-					if (!fJSPdocuments.remove(document))
-						return;
-				}
-			}
-			synchronized (fDocumentMap) {
-				Object[] keys = fDocumentMap.keySet().toArray();
-				boolean removed = false;
-				for (int i = 0; i < keys.length && !removed; i++) {
-					DocumentInfo info = (DocumentInfo) fDocumentMap.get(keys[i]);
-					if (info != null && info.textFileBuffer.equals(buffer)) {
-						TaglibIndex.removeTaglibIndexListener(info);
-						fDocumentMap.remove(keys[i]);
-						removed = true;
-					}
-				}
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#dirtyStateChanged(org.eclipse.core.filebuffers.IFileBuffer,
-		 *      boolean)
-		 */
-		public void dirtyStateChanged(IFileBuffer buffer, boolean isDirty) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#stateChangeFailed(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void stateChangeFailed(IFileBuffer buffer) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#stateChanging(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void stateChanging(IFileBuffer buffer) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#stateValidationChanged(org.eclipse.core.filebuffers.IFileBuffer,
-		 *      boolean)
-		 */
-		public void stateValidationChanged(IFileBuffer buffer, boolean isStateValidated) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#underlyingFileDeleted(org.eclipse.core.filebuffers.IFileBuffer)
-		 */
-		public void underlyingFileDeleted(IFileBuffer buffer) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.filebuffers.IFileBufferListener#underlyingFileMoved(org.eclipse.core.filebuffers.IFileBuffer,
-		 *      org.eclipse.core.runtime.IPath)
-		 */
-		public void underlyingFileMoved(IFileBuffer buffer, IPath path) {
-		}
-
-
-	}
-
-	static TaglibController _instance = null;
-	static private boolean fIsShutdown = false;
-
-	public static ITextFileBuffer getFileBuffer(IDocument document) {
-		synchronized (_instance.fDocumentMap) {
-			DocumentInfo info = (DocumentInfo) _instance.fDocumentMap.get(document);
-			if (info != null)
-				return info.textFileBuffer;
-			return null;
-		}
-	}
-
-	/**
-	 * @param manager
-	 * @return
-	 */
-	public static ITextFileBuffer getFileBuffer(TLDCMDocumentManager manager) {
-		// if _instance is null, we are already shutting donw
-		if (_instance == null)
-			return null;
-
-		ITextFileBuffer buffer = null;
-		synchronized (_instance.fDocumentMap) {
-			Iterator docInfos = _instance.fDocumentMap.values().iterator();
-			while (docInfos.hasNext() && buffer == null) {
-				DocumentInfo info = (DocumentInfo) docInfos.next();
-				if (info.tldDocumentManager.equals(manager))
-					buffer = info.textFileBuffer;
-			}
-		}
-		return buffer;
-	}
-
-	public static TLDCMDocumentManager getTLDCMDocumentManager(IDocument document) {
-		// if _instance is null, we are already shutting donw
-		if (_instance == null)
-			return null;
-		synchronized (_instance.fDocumentMap) {
-			DocumentInfo info = (DocumentInfo) _instance.fDocumentMap.get(document);
-			if (info != null)
-				return info.tldDocumentManager;
-			return null;
-
-		}
-	}
-
-	public synchronized static void shutdown() {
-		setShutdown(true);
-		FileBuffers.getTextFileBufferManager().removeFileBufferListener(_instance.fBufferListener);
-		_instance = null;
-	}
-
-	public synchronized static void startup() {
-		_instance = new TaglibController();
-		FileBuffers.getTextFileBufferManager().addFileBufferListener(_instance.fBufferListener);
-		setShutdown(false);
-	}
-
-	IFileBufferListener fBufferListener;
-	Map fDocumentMap;
-
-	List fJSPdocuments;
-
-	// This constructor is only to be called as part of the FileBuffer
-	// framework
-	public TaglibController() {
-		super();
-		fBufferListener = new FileBufferListener();
-		fJSPdocuments = new ArrayList(1);
-		fDocumentMap = new HashMap(1);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.filebuffers.IDocumentSetupParticipant#setup(org.eclipse.jface.text.IDocument)
-	 */
-	public void setup(IDocument document) {
-		// if we've already shutdown, just ignore
-		if (isShutdown())
-			return;
-		synchronized (_instance.fJSPdocuments) {
-			_instance.fJSPdocuments.add(document);
-		}
-	}
-
-	private static synchronized boolean isShutdown() {
-		return fIsShutdown;
-	}
-
-
-	private static synchronized void setShutdown(boolean isShutdown) {
-		fIsShutdown = isShutdown;
-	}
-
-
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibIndex.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibIndex.java
deleted file mode 100644
index a2a0b5b..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibIndex.java
+++ /dev/null
@@ -1,442 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Stack;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.resources.IFile;
-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.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.ElementChangedEvent;
-import org.eclipse.jdt.core.IElementChangedListener;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaElementDelta;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-import org.eclipse.wst.xml.uriresolver.internal.util.URIHelper;
-
-/**
- * @author nitin
- * 
- * A non-extendable index manager for taglibs similar to the J2EE
- * ITaglibRegistry but lacking any ties to project natures.
- * 
- * Indexing is not persisted between sessions, so new ADD events will be sent
- * to ITaglibIndexListeners during each workbench session. REMOVE events are
- * not fired on workbench shutdown. Events for TAGDIR, JAR, and WEBXML type
- * records are only fired for the .jar and web.xml file itself. The record's
- * contents should be examined for any further information.
- */
-public class TaglibIndex {
-
-	class ClasspathChangeListener implements IElementChangedListener {
-		Stack classpathStack = new Stack();
-		List projectsIndexed = new ArrayList(1);
-
-		public void elementChanged(ElementChangedEvent event) {
-			classpathStack.clear();
-			projectsIndexed.clear();
-			elementChanged(event.getDelta());
-		}
-
-		private void elementChanged(IJavaElementDelta delta) {
-			if (delta.getElement().getElementType() == IJavaElement.JAVA_MODEL) {
-				IJavaElementDelta[] changed = delta.getChangedChildren();
-				for (int i = 0; i < changed.length; i++) {
-					elementChanged(changed[i]);
-				}
-			}
-			else if (delta.getElement().getElementType() == IJavaElement.JAVA_PROJECT) {
-				if ((delta.getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) {
-					IJavaElement proj = delta.getElement();
-					handleClasspathChange((IJavaProject) proj);
-				}
-			}
-		}
-
-		private void handleClasspathChange(IJavaProject project) {
-			classpathStack.push(project.getElementName());
-			try {
-				/* Handle changes to this project's build path */
-				IResource resource = project.getCorrespondingResource();
-				if (resource.getType() == IResource.PROJECT && !projectsIndexed.contains(resource)) {
-					projectsIndexed.add(resource);
-					boolean classpathIndexIsOld = fProjectDescriptions.containsKey(resource);
-					ProjectDescription description = createDescription((IProject) resource);
-					if (classpathIndexIsOld) {
-						description.indexClasspath();
-					}
-				}
-				/*
-				 * Update indeces for projects who include this project in
-				 * their build path (e.g. toggling the "exportation" of a
-				 * taglib JAR in this project affects the JAR's visibility in
-				 * other projects)
-				 */
-				IJavaProject[] projects = project.getJavaModel().getJavaProjects();
-				for (int i = 0; i < projects.length; i++) {
-					IJavaProject otherProject = projects[i];
-					if (StringUtils.contains(otherProject.getRequiredProjectNames(), project.getElementName(), false) && !classpathStack.contains(otherProject.getElementName())) {
-						handleClasspathChange(otherProject);
-					}
-				}
-			}
-			catch (JavaModelException e) {
-			}
-			classpathStack.pop();
-		}
-	}
-
-	class ResourceChangeListener implements IResourceChangeListener {
-		public void resourceChanged(IResourceChangeEvent event) {
-			switch (event.getType()) {
-				case IResourceChangeEvent.PRE_CLOSE :
-				case IResourceChangeEvent.PRE_DELETE : {
-					try {
-						// pair deltas with projects
-						IResourceDelta[] deltas = new IResourceDelta[]{event.getDelta()};
-						IProject[] projects = null;
-
-						if (deltas != null && deltas.length > 0) {
-							IResource resource = null;
-							if (deltas[0] != null) {
-								resource = deltas[0].getResource();
-							}
-							else {
-								resource = event.getResource();
-							}
-
-							if (resource != null) {
-								if (resource.getType() == IResource.ROOT) {
-									deltas = deltas[0].getAffectedChildren();
-									projects = new IProject[deltas.length];
-									for (int i = 0; i < deltas.length; i++) {
-										if (deltas[i].getResource().getType() == IResource.PROJECT) {
-											projects[i] = (IProject) deltas[i].getResource();
-										}
-									}
-								}
-								else {
-									projects = new IProject[1];
-									if (resource.getType() != IResource.PROJECT) {
-										projects[0] = resource.getProject();
-									}
-									else {
-										projects[0] = (IProject) resource;
-									}
-								}
-							}
-							for (int i = 0; i < projects.length; i++) {
-								if (_debugIndexCreation) {
-									System.out.println("TaglibIndex noticed " + projects[i].getName() + " is about to be deleted/closed"); //$NON-NLS-1$ //$NON-NLS-2$
-								}
-								ProjectDescription description = (ProjectDescription) fProjectDescriptions.remove(projects[i]);
-								if (description != null) {
-									if (_debugIndexCreation) {
-										System.out.println("removing index of " + description.fProject.getName()); //$NON-NLS-1$
-									}
-									description.clear();
-								}
-							}
-						}
-					}
-					catch (Exception e) {
-						Logger.logException("Exception while processing resource deletion", e); //$NON-NLS-1$
-					}
-				}
-				case IResourceChangeEvent.POST_CHANGE : {
-					try {
-						// pair deltas with projects
-						IResourceDelta[] deltas = new IResourceDelta[]{event.getDelta()};
-						IProject[] projects = null;
-
-						if (deltas != null && deltas.length > 0) {
-							IResource resource = null;
-							if (deltas[0] != null) {
-								resource = deltas[0].getResource();
-							}
-							else {
-								resource = event.getResource();
-							}
-
-							if (resource != null) {
-								if (resource.getType() == IResource.ROOT) {
-									deltas = deltas[0].getAffectedChildren();
-									projects = new IProject[deltas.length];
-									for (int i = 0; i < deltas.length; i++) {
-										if (deltas[i].getResource().getType() == IResource.PROJECT) {
-											projects[i] = (IProject) deltas[i].getResource();
-										}
-									}
-								}
-								else {
-									projects = new IProject[1];
-									if (resource.getType() != IResource.PROJECT) {
-										projects[0] = resource.getProject();
-									}
-									else {
-										projects[0] = (IProject) resource;
-									}
-								}
-							}
-							for (int i = 0; i < projects.length; i++) {
-								try {
-									if (deltas[i] != null && deltas[i].getKind() != IResourceDelta.REMOVED && projects[i].isAccessible()) {
-										ProjectDescription description = createDescription(projects[i]);
-										deltas[i].accept(description.getVisitor());
-									}
-									if (!projects[i].isAccessible() || (deltas[i] != null && deltas[i].getKind() == IResourceDelta.REMOVED)) {
-										if (_debugIndexCreation) {
-											System.out.println("TaglibIndex noticed " + projects[i].getName() + " is no longer accessible"); //$NON-NLS-1$ //$NON-NLS-2$
-										}
-										ProjectDescription description = (ProjectDescription) fProjectDescriptions.remove(projects[i]);
-										if (description != null) {
-											if (_debugIndexCreation) {
-												System.out.println("removing index of " + description.fProject.getName()); //$NON-NLS-1$
-											}
-											description.clear();
-										}
-									}
-								}
-								catch (CoreException e) {
-									Logger.logException(e);
-								}
-							}
-						}
-					}
-					catch (Exception e) {
-						Logger.logException("Exception while processing resource change", e); //$NON-NLS-1$
-					}
-				}
-			}
-		}
-	}
-
-	static final boolean _debugChangeListener = false;
-	static boolean _debugIndexCreation = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/taglib/indexcreation")); //$NON-NLS-1$ //$NON-NLS-2$
-	static boolean _debugEvents = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/taglib/events")); //$NON-NLS-1$ //$NON-NLS-2$
-	static final boolean _debugResolution = "true".equals(Platform.getDebugOption("org.eclipse.jst.jsp.core/taglib/resolve")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	static TaglibIndex _instance;
-
-	static {
-		_instance = new TaglibIndex();
-	}
-
-	static void fireTaglibRecordEvent(ITaglibRecordEvent event) {
-		if(_debugEvents) {
-			System.out.println("TaglibIndex fired event:" + event); //$NON-NLS-1$
-		}
-		ITaglibIndexListener[] listeners = _instance.fTaglibIndexListeners;
-		if (listeners != null) {
-			for (int i = 0; i < listeners.length; i++) {
-				try {
-					listeners[i].indexChanged(event);
-				}
-				catch (Exception e) {
-					Logger.log(Logger.WARNING, e.getMessage());
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns all of the visible ITaglibRecords for the given filepath in the
-	 * workspace.
-	 * 
-	 * @param workspacePath
-	 * @return
-	 */
-	public static ITaglibRecord[] getAvailableTaglibRecords(IPath workspacePath) {
-		ITaglibRecord[] records = _instance.internalGetAvailableTaglibRecords(workspacePath);
-		return records;
-	}
-
-	public static IPath getContextRoot(IPath path) {
-		return _instance.internalGetContextRoot(path);
-	}
-
-	public static void removeTaglibIndexListener(ITaglibIndexListener listener) {
-		_instance.internalRemoveTaglibIndexListener(listener);
-	}
-
-	/**
-	 * Find a matching ITaglibRecord given the reference.
-	 * 
-	 * @param basePath -
-	 *            the workspace-relative path for IResources, full filesystem
-	 *            path otherwise
-	 * @param reference
-	 * @param crossProjects
-	 * @return
-	 */
-	public static ITaglibRecord resolve(String basePath, String reference, boolean crossProjects) {
-		ITaglibRecord result = _instance.internalResolve(basePath, reference, crossProjects);
-		if (_debugResolution) {
-			if (result == null) {
-				System.out.println("TaglibIndex could not resolve \"" + reference + "\" from " + basePath); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			else {
-				switch (result.getRecordType()) {
-					case (ITaglibRecord.TLD) : {
-						TLDRecord record = (TLDRecord) result;
-						System.out.println("TaglibIndex resolved " + basePath + ":" + reference + " = " + record.getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					}
-						break;
-					case (ITaglibRecord.JAR) : {
-						JarRecord record = (JarRecord) result;
-						System.out.println("TaglibIndex resolved " + basePath + ":" + reference + " = " + record.getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					}
-						break;
-					case (ITaglibRecord.TAGDIR) : {
-					}
-						break;
-					case (ITaglibRecord.URL) : {
-						URLRecord record = (URLRecord) result;
-						System.out.println("TaglibIndex resolved " + basePath + ":" + reference + " = " + record.getURL()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					}
-						break;
-				}
-			}
-		}
-		return result;
-	}
-
-	private ClasspathChangeListener fClasspathChangeListener = null;
-
-	Map fProjectDescriptions;
-	private ResourceChangeListener fResourceChangeListener;
-
-	private ITaglibIndexListener[] fTaglibIndexListeners = null;
-
-	private TaglibIndex() {
-		super();
-		fResourceChangeListener = new ResourceChangeListener();
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(fResourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-		fClasspathChangeListener = new ClasspathChangeListener();
-		JavaCore.addElementChangedListener(fClasspathChangeListener);
-		fProjectDescriptions = new HashMap();
-	}
-
-	public static void addTaglibIndexListener(ITaglibIndexListener listener) {
-		_instance.internalAddTaglibIndexListener(listener);
-	}
-
-	/**
-	 * @param project
-	 * @return
-	 */
-	ProjectDescription createDescription(IProject project) {
-		ProjectDescription description = (ProjectDescription) fProjectDescriptions.get(project);
-		if (description == null) {
-			description = new ProjectDescription(project);
-			description.index();
-			description.indexClasspath();
-			fProjectDescriptions.put(project, description);
-		}
-		return description;
-	}
-
-	private synchronized void internalAddTaglibIndexListener(ITaglibIndexListener listener) {
-		if (fTaglibIndexListeners == null) {
-			fTaglibIndexListeners = new ITaglibIndexListener[]{listener};
-		}
-		else {
-			List listeners = new ArrayList(Arrays.asList(fTaglibIndexListeners));
-			listeners.add(listener);
-			fTaglibIndexListeners = (ITaglibIndexListener[]) listeners.toArray(new ITaglibIndexListener[0]);
-		}
-	}
-
-	private ITaglibRecord[] internalGetAvailableTaglibRecords(IPath location) {
-		ITaglibRecord[] records = null;
-		IFile baseResource = ResourcesPlugin.getWorkspace().getRoot().getFile(location);
-		if (baseResource != null) {
-			IProject project = baseResource.getProject();
-			ProjectDescription description = createDescription(project);
-			List availableRecords = description.getAvailableTaglibRecords(location);
-			records = (ITaglibRecord[]) availableRecords.toArray(records);
-		}
-		else {
-			records = new ITaglibRecord[0];
-		}
-		return records;
-	}
-
-	private IPath internalGetContextRoot(IPath path) {
-		IFile baseResource = FileBuffers.getWorkspaceFileAtLocation(path);
-		if (baseResource != null) {
-			IProject project = baseResource.getProject();
-			ProjectDescription description = _instance.createDescription(project);
-			IPath rootPath = description.getLocalRoot(baseResource.getFullPath());
-			return ResourcesPlugin.getWorkspace().getRoot().getLocation().append(rootPath);
-		}
-		// try to handle out-of-workspace paths
-		IPath root = path;
-		while (root != null && !root.isRoot())
-			root = root.removeLastSegments(1);
-		if (root == null)
-			root = path;
-		return root;
-	}
-
-	private synchronized void internalRemoveTaglibIndexListener(ITaglibIndexListener listener) {
-		if (fTaglibIndexListeners != null) {
-			List listeners = new ArrayList(Arrays.asList(fTaglibIndexListeners));
-			listeners.remove(listener);
-			fTaglibIndexListeners = (ITaglibIndexListener[]) listeners.toArray(new ITaglibIndexListener[0]);
-		}
-	}
-
-	private ITaglibRecord internalResolve(String basePath, String reference, boolean crossProjects) {
-		IProject project = null;
-		ITaglibRecord resolved = null;
-		IFile baseResource = FileBuffers.getWorkspaceFileAtLocation(new Path(basePath));
-		if (baseResource != null) {
-			project = baseResource.getProject();
-			ProjectDescription description = createDescription(project);
-			resolved = description.resolve(basePath, reference);
-		}
-		else {
-			// try simple file support outside of the workspace
-			File baseFile = FileBuffers.getSystemFileAtLocation(new Path(basePath));
-			if (baseFile != null) {
-				String normalizedReference = URIHelper.normalize(reference, basePath, "/"); //$NON-NLS-1$
-				if (normalizedReference != null) {
-					TLDRecord record = new TLDRecord();
-					record.location = new Path(normalizedReference);
-					record.uri = reference;
-					resolved = record;
-				}
-			}
-		}
-		return resolved;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/URLRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/URLRecord.java
deleted file mode 100644
index 62aba77..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/URLRecord.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jst.jsp.core.internal.contentmodel;
-
-import java.net.URL;
-
-public class URLRecord implements ITaglibRecord {
-	URL url;
-	String uri;
-	String baseLocation;
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof URLRecord))
-			return false;
-		return ((URLRecord) obj).baseLocation.equals(baseLocation) || ((URLRecord) obj).uri.equals(uri) || ((URLRecord) obj).url.equals(url);
-	}
-
-	public String getBaseLocation() {
-		return baseLocation;
-	}
-
-	public URLRecord() {
-		super();
-	}
-
-	public int getRecordType() {
-		return ITaglibRecord.URL;
-	}
-
-	/**
-	 * @return Returns the uri.
-	 */
-	public String getURI() {
-		return uri;
-	}
-
-	/**
-	 * @return Returns the URL.
-	 */
-	public URL getURL() {
-		return url;
-	}
-
-	public String toString() {
-		return "URLRecord: " + baseLocation + " <-> " + uri; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMAttributeDeclarationImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMAttributeDeclarationImpl.java
deleted file mode 100644
index c018b77..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMAttributeDeclarationImpl.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-
-
-import java.util.Enumeration;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDAttributeDeclaration;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public class CMAttributeDeclarationImpl implements TLDAttributeDeclaration {
-
-	private CMDataType attrType = new CMDataTypeImpl(CMDataType.CDATA);
-	private String fDescription;
-	
-	//
-	private boolean fIsFragment = false;
-
-	private CMDocument fOwnerDocument;
-	// optional id
-	private String id = null;
-
-	// required name
-	private String name = null;
-	// optional "required" element present, defaults to not present
-	private boolean required = false;
-	
-	// optional run-time (scriplet derived) value of attributes, defaults to none/false
-	private String rtexprvalue = null;
-
-	private String type = null;
-
-	/**
-	 * CMAttributeDeclarationImpl constructor comment.
-	 */
-	public CMAttributeDeclarationImpl(CMDocument owner) {
-		super();
-		fOwnerDocument = owner;
-	}
-
-	/**
-	 * getAttrName method
-	 * @return java.lang.String
-	 */
-	public String getAttrName() {
-		return getNodeName();
-	}
-
-	/**
-	 * getAttrType method
-	 * @return CMDataType
-	 */
-	public CMDataType getAttrType() {
-		return attrType;
-	}
-
-	/**
-	 * @deprecated in superclass
-	 */
-	public String getDefaultValue() {
-		return ""; //$NON-NLS-1$
-	}
-	/**
-	 * @return Returns the description.
-	 */
-	public String getDescription() {
-		return fDescription;
-	}
-
-	/**
-	 * @deprecated in superclass
-	 */
-	public Enumeration getEnumAttr() {
-		return null;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * getNodeName method
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return name;
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 *
-	 */
-	public int getNodeType() {
-		return CMNode.ATTRIBUTE_DECLARATION;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsp.core.contentmodel.tld.TLDAttributeDeclaration#getOwnerDocument()
-	 */
-	public CMDocument getOwnerDocument() {
-		return fOwnerDocument;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property desciped by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName != null && propertyName.equals(JSP12TLDNames.DESCRIPTION)) {
-			return getDescription(); // return attribute description
-		}
-		else if (propertyName.equals(TLDDocument.CM_KIND)) {
-			return TLDDocument.JSP_TLD;
-		}
-		else if (propertyName.equals(JSP12TLDNames.SMALL_ICON) || propertyName.equals(JSP12TLDNames.LARGE_ICON)) {
-			return getOwnerDocument().getProperty(propertyName);
-		}
-		return null;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public java.lang.String getRtexprvalue() {
-		return rtexprvalue;
-	}
-
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * getUsage method
-	 * @return int
-	 * OPTIONAL|REQUIRED
-	 */
-	public int getUsage() {
-		return required ? REQUIRED : OPTIONAL;
-	}
-	/**
-	 * @return Returns the isFragment.
-	 */
-	public boolean isFragment() {
-		return fIsFragment;
-	}
-
-	/**
-	 * 
-	 * @return boolean
-	 */
-	public boolean isRequired() {
-		return required;
-	}
-	/**
-	 * @param description The description to set.
-	 */
-	public void setDescription(String description) {
-		fDescription = description;
-	}
-	/**
-	 * @param isFragment The isFragment to set.
-	 */
-	public void setFragment(boolean isFragment) {
-		fIsFragment = isFragment;
-	}
-
-	/**
-	 * 
-	 * @param newId java.lang.String
-	 */
-	public void setId(String newId) {
-		id = newId;
-	}
-
-	public void setNodeName(String string) {
-		name = string;
-	}
-
-	/**
-	 * 
-	 * @param newRequired boolean
-	 */
-	public void setRequired(boolean newRequired) {
-		required = newRequired;
-	}
-
-	/**
-	 * 
-	 * @param newRequired boolean
-	 */
-	public void setRequiredString(String newRequired) {
-		if (newRequired.equalsIgnoreCase("true") || newRequired.equalsIgnoreCase("yes")) //$NON-NLS-2$//$NON-NLS-1$
-			setRequired(true);
-		else if (newRequired.equalsIgnoreCase("false") || newRequired.equalsIgnoreCase("no")) //$NON-NLS-2$//$NON-NLS-1$
-			setRequired(false);
-	}
-
-	/**
-	 * 
-	 * @param newRtexprvalue java.lang.String
-	 */
-	public void setRtexprvalue(String newRtexprvalue) {
-		rtexprvalue = newRtexprvalue;
-	}
-
-	public void setType(String type) {
-		this.type = type;
-	}
-
-	/**
-	 * supports method
-	 * 
-	 * @return boolean
-	 * 
-	 * Returns true if the CMNode supports a specified property
-	 * 
-	 */
-	public boolean supports(String propertyName) {
-		return propertyName == null || propertyName.equals(JSP12TLDNames.DESCRIPTION) || propertyName.equals(TLDDocument.CM_KIND) || propertyName.equals(JSP12TLDNames.SMALL_ICON) || propertyName.equals(JSP12TLDNames.LARGE_ICON);
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append("\n\t " + super.toString()); //$NON-NLS-1$
-		buffer.append("\n\t name:" + StringUtils.escape(getNodeName())); //$NON-NLS-1$
-		// Boolean.toString(boolean) is introduced in 1.4
-		//buffer.append("\n\t required:" + StringUtils.escape(Boolean.toString(isRequired())));
-		buffer.append("\n\t required:" + StringUtils.toString(isRequired())); //$NON-NLS-1$
-		buffer.append("\n\t rtexpr:" + StringUtils.escape(getRtexprvalue())); //$NON-NLS-1$
-		if (getId() != null)
-			buffer.append("\n\t id:" + StringUtils.escape(getId())); //$NON-NLS-1$
-		return buffer.toString();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDataTypeImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDataTypeImpl.java
deleted file mode 100644
index 06e0817..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDataTypeImpl.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public class CMDataTypeImpl implements CMDataType {
-
-	protected String dataTypeName;
-
-	public CMDataTypeImpl(String dataTypeName) {
-		this.dataTypeName = dataTypeName;
-	}
-
-	/**
-	 * getTypeName method
-	 * @return java.lang.String
-	 *
-	 * This method returns a suitable default value that can be used when an instance of the data type is created.
-	 * This returns null of a suitable default is not available.
-	 */
-	public String generateInstanceValue() {
-		return null;
-	}
-
-	public String getDataTypeName() {
-		return dataTypeName;
-	}
-
-	/**
-	 * getTypeName method
-	 * @return java.lang.String[]
-	 *
-	 */
-	public String[] getEnumeratedValues() {
-		return null;
-	}
-
-	/**
-	 * getTypeName method
-	 * @return java.lang.String  
-	 *
-	 * Returns the implied value or null if none exists.
-	 */
-	public String getImpliedValue() {
-		return null;
-	}
-
-	/**
-	 * getImpliedValueKind method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * IMPLIED_VALUE_NONE, IMPLIED_VALUE_FIXED, IMPLIED_VALUE_DEFAULT.
-	 */
-	public int getImpliedValueKind() {
-		return IMPLIED_VALUE_NONE;
-	}
-
-	public String getNodeName() {
-		return dataTypeName;
-	}
-
-	public int getNodeType() {
-		return CMNode.DATA_TYPE;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property described by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		return null;
-	}
-
-	/**
-	 * supports method
-	 * @return boolean
-	 *
-	 * Returns true if the CMNode supports a specified property
-	 *
-	 */
-	public boolean supports(String propertyName) {
-		return false;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentFactoryTLD.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentFactoryTLD.java
deleted file mode 100644
index 66fad76..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentFactoryTLD.java
+++ /dev/null
@@ -1,685 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.jsp.core.internal.contentmodel.ITaglibRecord;
-import org.eclipse.jst.jsp.core.internal.contentmodel.JarRecord;
-import org.eclipse.jst.jsp.core.internal.contentmodel.TLDRecord;
-import org.eclipse.jst.jsp.core.internal.contentmodel.URLRecord;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP11TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP20TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDFunction;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDInitParam;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDListener;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDValidator;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDVariable;
-import org.eclipse.jst.jsp.core.internal.util.DocumentProvider;
-import org.eclipse.wst.sse.core.internal.util.JarUtilities;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.factory.CMDocumentFactory;
-import org.eclipse.wst.xml.uriresolver.internal.util.URIHelper;
-import org.w3c.dom.Element;
-import org.w3c.dom.EntityReference;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * CMDocumentBuilder for Taglib Descriptors
- * 
- * Returns namespace-less CMDocuments for a taglib descriptor, loading it
- * directly from a file or extracted from a JAR archive. Content Model objects
- * will implement the TLDCMDocument, TLDElementDeclaration, and
- * TLDAttributeDeclaration interfaces for extended properties.
- */
-public class CMDocumentFactoryTLD implements CMDocumentFactory {
-
-	static final boolean _debug = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/tldcmdocument/factory")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * CMDocumentFactoryTLD constructor comment.
-	 */
-	public CMDocumentFactoryTLD() {
-		super();
-	}
-
-	/**
-	 * NOT API
-	 * 
-	 * @param baselocation
-	 * @param input
-	 * @return
-	 */
-	public CMDocument buildCMDocument(String baselocation, InputStream input) {
-		DocumentProvider provider = new DocumentProvider();
-		provider.setValidating(false);
-		provider.setRootElementName(JSP11TLDNames.TAGLIB);
-		provider.setInputStream(input);
-		if (baselocation != null)
-			provider.setBaseReference(baselocation);
-		return loadDocument(baselocation, provider.getRootElement());
-	}
-
-	/**
-	 * @param fileName
-	 * @return
-	 */
-	private CMDocument buildCMDocumentFromDirectory(File directory) {
-		if (_debug) {
-			System.out.println("not implemented: tagdir loading for " + directory.getAbsolutePath()); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-	/**
-	 * NOT API
-	 * 
-	 * @param fileName
-	 * @return
-	 */
-	protected CMDocument buildCMDocumentFromFile(String fileName) {
-		// load the taglib descriptor file
-		DocumentProvider provider = new DocumentProvider();
-		provider.setValidating(false);
-		provider.setBaseReference(fileName);
-		provider.setRootElementName(JSP11TLDNames.TAGLIB);
-		provider.setFileName(fileName);
-		Node rootElement = provider.getRootElement();
-		return loadDocument(fileName, rootElement);
-	}
-
-	/**
-	 * Builds a CMDocument assuming the JSP v1.1 default path
-	 * 
-	 * @param jarFileName -
-	 *            the name of the containing JAR file
-	 */
-	protected CMDocument buildCMDocumentFromJar(String jarFileName) {
-		// load the taglib descriptor file
-		return buildCMDocumentFromJar(jarFileName, JarUtilities.JSP11_TAGLIB);
-	}
-
-	/**
-	 * Builds a CMDocument
-	 * 
-	 * @param jarFileName -
-	 *            the name of the containing JAR file
-	 * @param contentFileName -
-	 *            the path within the JAR for a valid taglib descriptor
-	 */
-	protected CMDocument buildCMDocumentFromJar(String jarFileName, String contentFileName) {
-		// load the taglib descriptor file
-		DocumentProvider provider = new DocumentProvider();
-		provider.setValidating(false);
-		provider.setBaseReference(jarFileName);
-		provider.setRootElementName(JSP11TLDNames.TAGLIB);
-		provider.setJarFileName(jarFileName);
-		provider.setFileName(contentFileName);
-		CMDocument document = loadDocument("jar:file://" + jarFileName + "!" + contentFileName, provider.getRootElement()); //$NON-NLS-1$ //$NON-NLS-2$
-		// TODO: Add the tags declared in META-INF/tags, see JSP 2.0 section
-		// 8.4.1
-		return document;
-	}
-
-	protected CMAttributeDeclaration createAttributeDeclaration(CMDocument document, Node attrNode) {
-		CMAttributeDeclarationImpl attr = new CMAttributeDeclarationImpl(document);
-
-		Node child = attrNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				if (child.getNodeName().equals(JSP11TLDNames.NAME) && child.hasChildNodes()) {
-					attr.setNodeName(getContainedText(child));
-				}
-				else if (child.getNodeName().equals(JSP12TLDNames.DESCRIPTION) && child.hasChildNodes()) {
-					attr.setDescription(getContainedText(child));
-				}
-				else if (child.getNodeName().equals(JSP11TLDNames.ID) && child.hasChildNodes()) {
-					attr.setId(getContainedText(child));
-				}
-				else if (child.getNodeName().equals(JSP11TLDNames.REQUIRED) && child.hasChildNodes()) {
-					attr.setRequiredString(getContainedText(child));
-				}
-				else if (child.getNodeName().equals(JSP11TLDNames.RTEXPRVALUE) && child.hasChildNodes()) {
-					attr.setRtexprvalue(getContainedText(child));
-				}
-				else if (child.getNodeName().equals(JSP20TLDNames.FRAGMENT) && child.hasChildNodes()) {
-					attr.setFragment(Boolean.valueOf(getContainedText(child)).booleanValue());
-				}
-			}
-			child = child.getNextSibling();
-		}
-
-		return attr;
-	}
-
-	/**
-	 * Builds a CMDocument from a taglib descriptor
-	 * 
-	 * @param uri -
-	 *            the location of a valid taglib descriptor
-	 */
-	public CMDocument createCMDocument(String uri) {
-		CMDocument result = null;
-		URL url = null;
-		try {
-			url = new URL(uri);
-		}
-		catch (MalformedURLException e) {
-			result = createCMDocumentFromFile(uri);
-		}
-		if (result == null && url != null) {
-			InputStream istream = null;
-			if (url.getProtocol().equals("file")) { //$NON-NLS-1$
-				result = createCMDocumentFromFile(url.getFile());
-			}
-			else {
-				try {
-					istream = url.openStream();
-					result = buildCMDocument(url.toExternalForm(), istream);
-				}
-				catch (Exception t) {
-					// Logger.log(Logger.INFO, "Exception creating content
-					// model: could not load TLD contents from URI " + uri + "
-					// :" + t);
-				}
-			}
-			try {
-				if (istream != null)
-					istream.close();
-			}
-			catch (IOException e1) {
-				// don't care
-			}
-		}
-		if (result == null)
-			result = new CMDocumentImpl();
-		return result;
-	}
-
-	/**
-	 * @param fileName
-	 * @return
-	 */
-	private CMDocument createCMDocumentFromFile(String fileName) {
-		CMDocument result = null;
-		File file = new File(fileName);
-		try {
-			if (file.isDirectory()) {
-				result = buildCMDocumentFromDirectory(file);
-			}
-		}
-		catch (SecurityException e) {
-			result = null;
-		}
-		if (result == null) {
-			if (fileName.endsWith(".jar")) { //$NON-NLS-1$
-				result = buildCMDocumentFromJar(fileName);
-			}
-			else {
-				result = buildCMDocumentFromFile(fileName);
-			}
-		}
-		return result;
-	}
-
-	protected CMElementDeclaration createElementDeclaration(CMDocument cmdocument, Element tagFileNode, String path) {
-		CMElementDeclarationImpl ed = new CMElementDeclarationImpl(cmdocument);
-		boolean hasName = false;
-
-		// load information declared within the .tld
-		Node child = tagFileNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.DESCRIPTION) && child.hasChildNodes()) {
-					ed.setDescription(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.DISPLAY_NAME) && child.hasChildNodes()) {
-					ed.setDisplayName(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.EXAMPLE) && child.hasChildNodes()) {
-					ed.setExample(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.ICON) && child.hasChildNodes()) {
-					ed.setSmallIcon(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.NAME) && child.hasChildNodes()) {
-					ed.setNodeName(getContainedText(child));
-					hasName = ed.getNodeName().trim().length() > 0;
-				}
-				else if (nodeName.equals(JSP20TLDNames.PATH) && child.hasChildNodes()) {
-					ed.setPath(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.TAG_EXTENSION)) {
-					ed.getExtensions().add(child);
-				}
-			}
-			child = child.getNextSibling();
-		}
-		if (hasName) {
-			// load information declared within the .tag(x) file
-			// JSP2_TODO: implement for JSP 2.0
-			return ed;
-		}
-		return null;
-	}
-
-	protected CMElementDeclaration createElementDeclaration(CMDocument document, Node tagNode) {
-		CMElementDeclarationImpl ed = new CMElementDeclarationImpl(document);
-
-		Node child = tagNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				// tag information
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP11TLDNames.NAME) && child.hasChildNodes()) {
-					ed.setNodeName(getContainedText(child));
-				}
-				else if ((nodeName.equals(JSP11TLDNames.TAGCLASS) || nodeName.equals(JSP12TLDNames.TAG_CLASS)) && child.hasChildNodes()) {
-					ed.setTagclass(getContainedText(child));
-				}
-				else if ((nodeName.equals(JSP11TLDNames.TEICLASS) || nodeName.equals(JSP12TLDNames.TEI_CLASS)) && child.hasChildNodes()) {
-					ed.setTeiclass(getContainedText(child));
-				}
-				else if ((nodeName.equals(JSP11TLDNames.BODYCONTENT) || nodeName.equals(JSP12TLDNames.BODY_CONTENT)) && child.hasChildNodes()) {
-					String bodycontent = getContainedText(child);
-					// Apparently, Apache Tomcat is not case sensitive about
-					// these values
-					if (bodycontent.equalsIgnoreCase(JSP11TLDNames.CONTENT_JSP))
-						ed.setBodycontent(JSP11TLDNames.CONTENT_JSP);
-					else if (bodycontent.equalsIgnoreCase(JSP11TLDNames.CONTENT_TAGDEPENDENT))
-						ed.setBodycontent(JSP11TLDNames.CONTENT_TAGDEPENDENT);
-					else if (bodycontent.equalsIgnoreCase(JSP11TLDNames.CONTENT_EMPTY))
-						ed.setBodycontent(JSP11TLDNames.CONTENT_EMPTY);
-					else if (bodycontent.equalsIgnoreCase(JSP20TLDNames.CONTENT_SCRIPTLESS))
-						ed.setBodycontent(JSP20TLDNames.CONTENT_SCRIPTLESS);
-				}
-				// info (1.1 only) or description (1.2 only)
-				else if ((nodeName.equals(JSP11TLDNames.INFO) || nodeName.equals(JSP12TLDNames.DESCRIPTION)) && child.hasChildNodes()) {
-					ed.setDescription(getContainedText(child));
-				}
-				// attributes
-				else if (nodeName.equals(JSP11TLDNames.ATTRIBUTE)) {
-					CMAttributeDeclaration attr = createAttributeDeclaration(document, child);
-					ed.attributes.setNamedItem(attr.getAttrName(), attr);
-				}
-				// variables
-				else if (nodeName.equals(JSP12TLDNames.VARIABLE)) {
-					ed.getVariables().add(createVariable(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.LARGE_ICON) && child.hasChildNodes()) {
-					ed.setLargeIcon(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.SMALL_ICON) && child.hasChildNodes()) {
-					ed.setSmallIcon(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.TAG_EXTENSION) && child.getNodeType() == Node.ELEMENT_NODE) {
-					ed.getExtensions().add(child);
-				}
-			}
-			child = child.getNextSibling();
-		}
-		return ed;
-	}
-
-	protected TLDFunction createFunction(CMDocument document, Node functionNode) {
-		TLDFunctionImpl function = new TLDFunctionImpl(document);
-		boolean hasName = false;
-
-		Node child = functionNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				// tag information
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.DESCRIPTION) && child.hasChildNodes()) {
-					function.setDescription(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.DISPLAY_NAME) && child.hasChildNodes()) {
-					function.setName(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.EXAMPLE) && child.hasChildNodes()) {
-					function.setExample(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.FUNCTION_CLASS) && child.hasChildNodes()) {
-					function.setClassName(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.FUNCTION_EXTENSION) && child.hasChildNodes()) {
-					function.getExtensions().add(child);
-				}
-				else if (nodeName.equals(JSP20TLDNames.FUNCTION_SIGNATURE) && child.hasChildNodes()) {
-					function.setSignature(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP20TLDNames.ICON) && child.hasChildNodes()) {
-					function.setIcon(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.NAME) && child.hasChildNodes()) {
-					function.setName(getContainedText(child));
-					hasName = function.getName().trim().length() > 0;
-				}
-			}
-			child = child.getNextSibling();
-		}
-		if (hasName) {
-			return function;
-		}
-		return null;
-	}
-
-	protected TLDInitParam createInitParam(Node initParamNode) {
-		TLDInitParamImpl initParam = new TLDInitParamImpl();
-		Node child = initParamNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.VALIDATOR_PARAM_NAME) && child.hasChildNodes()) {
-					initParam.setName(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VALIDATOR_PARAM_VALUE) && child.hasChildNodes()) {
-					initParam.setValue(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.DESCRIPTION) && child.hasChildNodes()) {
-					initParam.setDescription(getContainedText(child));
-				}
-			}
-			child = child.getNextSibling();
-		}
-		return initParam;
-	}
-
-	protected TLDListener createListener(Node listenerNode) {
-		TLDListenerImpl listener = new TLDListenerImpl();
-		Node child = listenerNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.LISTENER_CLASS) && child.hasChildNodes()) {
-					listener.setListenerClass(getContainedText(child));
-				}
-			}
-			child = child.getNextSibling();
-		}
-		return listener;
-	}
-
-	protected TLDValidator createValidator(Node validatorNode) {
-		TLDValidatorImpl validator = new TLDValidatorImpl();
-		Node child = validatorNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.VALIDATOR_CLASS) && child.hasChildNodes()) {
-					validator.setValidatorClass(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VALIDATOR_INIT_PARAM) && child.hasChildNodes()) {
-					validator.getInitParams().add(createInitParam(child));
-				}
-			}
-			child = child.getNextSibling();
-		}
-		return validator;
-	}
-
-	protected TLDVariable createVariable(Node variableNode) {
-		TLDVariableImpl variable = new TLDVariableImpl();
-		Node child = variableNode.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String nodeName = child.getNodeName();
-				if (nodeName.equals(JSP12TLDNames.VARIABLE_CLASS) && child.hasChildNodes()) {
-					variable.setVariableClass(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VARIABLE_DECLARE) && child.hasChildNodes()) {
-					variable.setDeclareString(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VARIABLE_NAME_FROM_ATTRIBUTE) && child.hasChildNodes()) {
-					variable.setNameFromAttribute(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VARIABLE_NAME_GIVEN) && child.hasChildNodes()) {
-					variable.setNameGiven(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.VARIABLE_SCOPE) && child.hasChildNodes()) {
-					variable.setScope(getContainedText(child));
-				}
-				else if (nodeName.equals(JSP12TLDNames.DESCRIPTION) && child.hasChildNodes()) {
-					variable.setDescription(getContainedText(child));
-				}
-			}
-			child = child.getNextSibling();
-		}
-		return variable;
-	}
-
-	protected String getContainedText(Node parent) {
-		NodeList children = parent.getChildNodes();
-		if (children.getLength() == 1) {
-			return children.item(0).getNodeValue().trim();
-		}
-		StringBuffer s = new StringBuffer();
-		Node child = parent.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() == Node.ENTITY_REFERENCE_NODE) {
-				String reference = ((EntityReference) child).getNodeValue();
-				if (reference == null && child.getNodeName() != null) {
-					reference = "&" + child.getNodeName() + ";"; //$NON-NLS-1$ //$NON-NLS-2$
-				}
-				if (reference != null) {
-					s.append(reference.trim());
-				}
-			}
-			else {
-				s.append(child.getNodeValue().trim());
-			}
-			child = child.getNextSibling();
-		}
-		return s.toString().trim();
-	}
-
-	public boolean isBuilderForGrammar(String grammarFileName) {
-		String fileName = grammarFileName.toLowerCase();
-		return fileName.endsWith(".tld") || fileName.endsWith(".jar"); //$NON-NLS-2$//$NON-NLS-1$
-	}
-
-	private CMDocument loadDocument(String baseLocation, Node taglib) {
-		Node root = taglib;
-
-		// create the CMDocument
-		CMDocumentImpl document = new CMDocumentImpl();
-		document.setBaseLocation(baseLocation);
-
-		if (root == null) {
-			if (_debug) {
-				System.out.println("null \"taglib\" element for TLD " + baseLocation); //$NON-NLS-1$
-			}
-			return document;
-		}
-
-		// populate the CMDocument
-		Node child = root.getFirstChild();
-		while (child != null) {
-			if (child.getNodeType() != Node.ELEMENT_NODE) {
-				child = child.getNextSibling();
-				continue;
-			}
-			String nodeName = child.getNodeName();
-			// tag
-			if (nodeName.equals(JSP11TLDNames.TAG)) {
-				CMElementDeclaration ed = createElementDeclaration(document, child);
-				if (ed != null) {
-					document.fElements.setNamedItem(ed.getNodeName(), ed);
-				}
-			}
-			// tag-file
-			else if (nodeName.equals(JSP20TLDNames.TAG_FILE) && child.getNodeType() == Node.ELEMENT_NODE && child.hasChildNodes()) {
-				Element tagFileElement = (Element) child;
-				String path = tagFileElement.getAttribute(JSP20TLDNames.PATH);
-
-				CMElementDeclarationImpl ed = (CMElementDeclarationImpl) createElementDeclaration(document, tagFileElement, path);
-				if (ed != null) {
-					document.fElements.setNamedItem(ed.getNodeName(), ed);
-				}
-			}
-			// other one-of-a-kind children
-			// JSP version
-			else if ((nodeName.equals(JSP11TLDNames.JSPVERSION) || nodeName.equals(JSP12TLDNames.JSP_VERSION)) && child.hasChildNodes()) {
-				document.setJspversion(getContainedText(child));
-			}
-			// tag library version
-			else if ((nodeName.equals(JSP11TLDNames.TLIBVERSION) || nodeName.equals(JSP12TLDNames.TLIB_VERSION)) && child.hasChildNodes()) {
-				document.setTlibversion(getContainedText(child));
-			}
-			// short name
-			else if ((nodeName.equals(JSP11TLDNames.SHORTNAME) || nodeName.equals(JSP12TLDNames.SHORT_NAME)) && child.hasChildNodes()) {
-				document.setShortname(getContainedText(child));
-			}
-			// URI/URN
-			else if ((nodeName.equals(JSP11TLDNames.URI) || nodeName.equals(JSP11TLDNames.URN)) && child.hasChildNodes()) { //$NON-NLS-1$
-				document.setUri(getContainedText(child));
-			}
-			// info
-			else if (nodeName.equals(JSP11TLDNames.INFO) && child.hasChildNodes()) {
-				document.setInfo(getContainedText(child));
-			}
-			// New JSP 1.2
-			// description
-			else if (nodeName.equals(JSP12TLDNames.DESCRIPTION)) {
-				document.setDescription(getContainedText(child));
-			}
-			// display name
-			else if (nodeName.equals(JSP12TLDNames.DISPLAY_NAME) && child.hasChildNodes()) {
-				document.setDisplayName(getContainedText(child));
-			}
-			// large icon
-			else if (nodeName.equals(JSP12TLDNames.LARGE_ICON) && child.hasChildNodes()) {
-				document.setLargeIcon(getContainedText(child));
-			}
-			// small icon
-			else if (nodeName.equals(JSP12TLDNames.SMALL_ICON) && child.hasChildNodes()) {
-				document.setSmallIcon(getContainedText(child));
-			}
-			// validator
-			else if (nodeName.equals(JSP12TLDNames.VALIDATOR)) {
-				document.setValidator(createValidator(child));
-			}
-			// listener
-			else if (nodeName.equals(JSP12TLDNames.LISTENER)) {
-				document.getListeners().add(createListener(child));
-			}
-			else if (nodeName.equals(JSP20TLDNames.FUNCTION)) {
-				TLDFunction function = createFunction(document, child);
-				if (function != null) {
-					document.getFunctions().add(function);
-				}
-			}
-			else if (nodeName.equals(JSP20TLDNames.TAGLIB_EXTENSION)) {
-				document.getExtensions().add(child);
-			}
-
-			child = child.getNextSibling();
-		}
-		return document;
-	}
-
-	/**
-	 * @param reference
-	 * @return
-	 */
-	public CMDocument createCMDocument(ITaglibRecord reference) {
-		CMDocumentImpl document = null;
-		switch (reference.getRecordType()) {
-			case (ITaglibRecord.TLD) : {
-				TLDRecord record = (TLDRecord) reference;
-				document = (CMDocumentImpl) buildCMDocumentFromFile(record.getLocation().toString());
-				if (_debug && document != null && document.getElements().getLength() == 0) {
-					System.out.println("failure parsing " + record.getLocation()); //$NON-NLS-1$
-				}
-
-				if (document.getSmallIcon() != null) {
-					String iconPath = URIHelper.normalize(((TLDDocument) document).getSmallIcon(), record.getLocation().toString(), "/"); //$NON-NLS-1$
-					document.setProperty(JSP12TLDNames.SMALL_ICON, "file:" + iconPath); //$NON-NLS-1$
-				}
-				if (document.getLargeIcon() != null) {
-					String iconPath = URIHelper.normalize(((TLDDocument) document).getLargeIcon(), record.getLocation().toString(), "/"); //$NON-NLS-1$
-					document.setProperty(JSP12TLDNames.LARGE_ICON, "file:" + iconPath); //$NON-NLS-1$
-				}
-			}
-				break;
-			case (ITaglibRecord.JAR) : {
-				JarRecord record = (JarRecord) reference;
-				document = (CMDocumentImpl) buildCMDocumentFromJar(record.getLocation().toString());
-				if (document.getSmallIcon() != null) {
-					String iconPath = URIHelper.normalize(((TLDDocument) document).getSmallIcon(), record.getLocation().toString() + "!META-INF/", "/"); //$NON-NLS-1$ //$NON-NLS-2$
-					document.setProperty(JSP12TLDNames.SMALL_ICON, "jar:file:" + iconPath); //$NON-NLS-1$
-				}
-				if (document.getLargeIcon() != null) {
-					String iconPath = URIHelper.normalize(((TLDDocument) document).getLargeIcon(), record.getLocation().toString() + "!META-INF/", "/"); //$NON-NLS-1$ //$NON-NLS-2$
-					document.setProperty(JSP12TLDNames.LARGE_ICON, "jar:file:" + iconPath); //$NON-NLS-1$
-				}
-				if (document != null && document.getElements().getLength() == 0) {
-					System.out.println("failure parsing " + record.getLocation()); //$NON-NLS-1$
-				}
-			}
-				break;
-			case (ITaglibRecord.TAGDIR) : {
-				// TagDirRecord record = (TagDirRecord) reference;
-				// document =
-				// buildCMDocumentFromDirectory(record.getLocation().toFile());
-			}
-				break;
-			case (ITaglibRecord.URL) : {
-				URLRecord record = (URLRecord) reference;
-				InputStream urlContents = null;
-				boolean doCache = false;
-				URLConnection connection = null;
-				try {
-					connection = record.getURL().openConnection();
-					doCache = connection.getUseCaches();
-					connection.setUseCaches(false);
-					urlContents = connection.getInputStream();
-					document = (CMDocumentImpl) buildCMDocument(record.getBaseLocation(), urlContents);
-					if (document.getSmallIcon() != null) {
-						String iconPath = URIHelper.normalize(((TLDDocument) document).getSmallIcon(), record.getURL().toString(), "/"); //$NON-NLS-1$
-						document.setProperty(JSP12TLDNames.SMALL_ICON, iconPath);
-					}
-					if (document.getLargeIcon() != null) {
-						String iconPath = URIHelper.normalize(((TLDDocument) document).getLargeIcon(), record.getURL().toString(), "/"); //$NON-NLS-1$
-						document.setProperty(JSP12TLDNames.LARGE_ICON, iconPath);
-					}
-					connection.setUseCaches(doCache);
-				}
-				catch (IOException e) {
-					// not uncommon given invalid URLs
-				}
-				finally {
-					if (urlContents != null) {
-						try {
-							urlContents.close();
-						}
-						catch (IOException e) {
-						}
-					}
-				}
-			}
-				break;
-		}
-		return document;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentImpl.java
deleted file mode 100644
index 740a360..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentImpl.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDValidator;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.ContentModelManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation.AnnotationFileParser;
-
-public class CMDocumentImpl implements TLDDocument {
-	
-	/** Contains taginfo and/or any other misc properties*/
-	private AnnotationMap fAnnotationMap = null;
-	
-	private Map fProperties = new HashMap(0);
-
-	/**
-	 * Records from where this document was created
-	 */
-	private String fBaseLocation;
-	/** 
-	 * since JSP 1.2
-	 */
-	private String fDescription;
-	
-	private String fDisplayName;
-
-	/**
-	 * NOT public API
-	 */
-	public CMNamedNodeMapImpl fElements = new CMNamedNodeMapImpl();
-
-	private List fFunctions = new ArrayList(0);
-	
-	// id of the taglib
-	private String fId = null;
-	/**
-	 * Children of "taglib" within a .tld file each allow
-	 * one Text node (#PCDATA) beneath them.  Store the values
-	 * here for simplicity.
-	 */
-	// The JSP specification required for this taglib to function
-	private String fJSPVersion = null;
-	
-	private String fLargeIcon;
-
-	private List fListeners;
-	
-	private String fParentURI = null;
-	// A short name suggested as the default prefix for tags within the lib
-	private String fShortName = null;
-	
-	private String fSmallIcon;
-	
-	/**
-	 * since JSP 2.0
-	 * 
-	 * The entire element is stored here since its layout is undefined 
-	 */
-	private List fTaglibExtensions = new ArrayList(0);
-	
-	// Version information for the taglib itself
-	private String fTLibVersion = null;
-	
-	// A unique public URI describing this taglib.  Recommended to be the URL
-	// to the descriptor
-	private String fURI = null;
-
-	protected TLDValidator validator;
-	
-	/**
-	 * CMDocumentImpl constructor comment.
-	 */
-	public CMDocumentImpl() {
-		super();
-	}
-
-	/**
-	 * Get the annotation map associated with this document.  Lazily creates
-	 * and loads annotation map.
-	 * @return AnnotationMap
-	 */
-	private AnnotationMap getAnnotationMap() {
-		// create a new annotation map and load it up
-		if (fAnnotationMap == null) {
-			fAnnotationMap = new AnnotationMap();
-			
-		    List annotationFiles = ContentModelManager.getInstance().getAnnotationFiles(getUri());
-		    for (Iterator i = annotationFiles.iterator(); i.hasNext();) {
-		    	try {
-		    		String annotationFileURI = (String) i.next();
-		    		AnnotationFileParser parser = new AnnotationFileParser();
-		    		parser.parse(fAnnotationMap, annotationFileURI);
-		        } catch (Exception e) {
-		        	Logger.log(Logger.WARNING_DEBUG, "Exception thrown in CMDocumentImpl#getAnnotationMap", e); //$NON-NLS-1$
-		        }
-		    }
-		}
-		return fAnnotationMap;
-	}
-	/**
-	 * @return Returns the baseLocation.
-	 */
-	public String getBaseLocation() {
-		return fBaseLocation;
-	}
-
-	/**
-	 * Gets the description.
-	 * @return Returns a String
-	 */
-	public String getDescription() {
-		return fDescription;
-	}
-
-	/**
-	 * Gets the displayName.
-	 * @return Returns a String
-	 */
-	public String getDisplayName() {
-		return fDisplayName;
-	}
-
-	/**
-	 * getElements method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of ElementDeclaration
-	 */
-	public CMNamedNodeMap getElements() {
-		return fElements;
-	}
-
-	/**
-	 * getEntities method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of EntityDeclaration
-	 */
-	public CMNamedNodeMap getEntities() {
-		return null;
-	}
-	
-	public List getExtensions() {
-		return fTaglibExtensions;
-	}
-	/**
-	 * @return Returns the functions.
-	 */
-	public List getFunctions() {
-		return fFunctions;
-	}
-
-	/**
-	 * Gets the id.
-	 * @return Returns a String
-	 */
-	public String getId() {
-		return fId;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getInfo() {
-		return getDescription();
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getJspversion() {
-		return fJSPVersion;
-	}
-
-	/**
-	 * Gets the largeIcon.
-	 * @return Returns a String
-	 */
-	public String getLargeIcon() {
-		return fLargeIcon;
-	}
-
-	public List getListeners() {
-		if (fListeners == null)
-			fListeners = new ArrayList();
-		return fListeners;
-	}
-
-	/**
-	 * getNamespace method
-	 * @return CMNamespace
-	 */
-	public CMNamespace getNamespace() {
-		return null;
-	}
-
-	/**
-	 * getNodeName method
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return "#cmdocument"; //$NON-NLS-1$
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 *
-	 */
-	public int getNodeType() {
-		return CMNode.DOCUMENT;
-	}
-	/**
-	 * @return Returns the parentURI.
-	 */
-	public String getParentURI() {
-		return fParentURI;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property desciped by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName.equals(TLDDocument.CM_KIND)) {
-			return TLDDocument.JSP_TLD;
-		}
-		else if (propertyName.equals("annotationMap")) { //$NON-NLS-1$
-			return getAnnotationMap();
-		}
-		return fProperties.get(propertyName);
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getShortname() {
-		return fShortName;
-	}
-
-	/**
-	 * Gets the smallIcon.
-	 * @return Returns a String
-	 */
-	public String getSmallIcon() {
-		return fSmallIcon;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getTlibversion() {
-		return fTLibVersion;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getUri() {
-		return fURI;
-	}
-
-	/*
-	 * @see TLDDocument#getValidator()
-	 */
-	public TLDValidator getValidator() {
-		return validator;
-	}
-	/**
-	 * @param baseLocation The baseLocation to set.
-	 */
-	public void setBaseLocation(String baseLocation) {
-		fBaseLocation = baseLocation;
-	}
-
-	/**
-	 * Sets the description.
-	 * @param description The description to set
-	 */
-	public void setDescription(String description) {
-		this.fDescription = description;
-	}
-
-	/**
-	 * Sets the displayName.
-	 * @param displayName The displayName to set
-	 */
-	public void setDisplayName(String displayName) {
-		this.fDisplayName = displayName;
-	}
-
-	/**
-	 * Sets the id.
-	 * @param id The id to set
-	 */
-	public void setId(String id) {
-		this.fId = id;
-	}
-
-	/**
-	 * 
-	 * @param newInfo java.lang.String
-	 */
-	public void setInfo(String newInfo) {
-		setDescription(newInfo);
-	}
-
-	/**
-	 * 
-	 * @param newJspversion java.lang.String
-	 */
-	public void setJspversion(String newJspversion) {
-		fJSPVersion = newJspversion;
-	}
-
-	/**
-	 * Sets the largeIcon.
-	 * @param largeIcon The largeIcon to set
-	 */
-	public void setLargeIcon(String largeIcon) {
-		this.fLargeIcon = largeIcon;
-	}
-
-	public void setListeners(List listeners) {
-		this.fListeners = listeners;
-	}
-	/**
-	 * @param parentURI The parentURI to set.
-	 */
-	public void setParentURI(String parentURI) {
-		fParentURI = parentURI;
-	}
-	
-	public void setProperty(String property, Object value) {
-		fProperties.put(property, value);
-	}
-
-	/**
-	 * 
-	 * @param newShortname java.lang.String
-	 */
-	public void setShortname(String newShortname) {
-		fShortName = newShortname;
-	}
-
-	/**
-	 * Sets the smallIcon.
-	 * @param smallIcon The smallIcon to set
-	 */
-	public void setSmallIcon(String smallIcon) {
-		this.fSmallIcon = smallIcon;
-	}
-
-	/**
-	 * 
-	 * @param newTlibversion java.lang.String
-	 */
-	public void setTlibversion(String newTlibversion) {
-		fTLibVersion = newTlibversion;
-	}
-
-	/**
-	 * 
-	 * @param newUri java.lang.String
-	 */
-	public void setUri(String newUri) {
-		fURI = newUri;
-	}
-
-	public void setValidator(TLDValidator validator) {
-		this.validator = validator;
-	}
-
-	/**
-	 * supports method
-	 * @return boolean
-	 *
-	 * Returns true if the CMNode supports a specified property
-	 *
-	 */
-	public boolean supports(String propertyName) {
-		if (TLDDocument.CM_KIND.equals(propertyName) || "annotationMap".equals(propertyName)) //$NON-NLS-1$
-			return true;
-		return fProperties.containsKey(propertyName);
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(super.toString());
-		buffer.append("\n\t short name:" + StringUtils.escape(getShortname())); //$NON-NLS-1$
-		buffer.append("\n\t display name:" + StringUtils.escape(getDisplayName())); //$NON-NLS-1$
-		buffer.append("\n\t description (info):" + StringUtils.escape(getDescription())); //$NON-NLS-1$
-		buffer.append("\n\t URI:" + StringUtils.escape(getUri())); //$NON-NLS-1$
-		buffer.append("\n\t jsp version:" + StringUtils.escape(getJspversion())); //$NON-NLS-1$
-		buffer.append("\n\t taglib version:" + StringUtils.escape(getTlibversion())); //$NON-NLS-1$
-		buffer.append("\n\t small icon:" + StringUtils.escape(getSmallIcon())); //$NON-NLS-1$
-		buffer.append("\n\t large icon:" + StringUtils.escape(getLargeIcon())); //$NON-NLS-1$
-		if (getValidator() != null)
-			buffer.append("\n\t validator:" + StringUtils.replace(getValidator().toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		buffer.append("\n\t listeners:"); //$NON-NLS-1$
-		for (int i = 0; i < getListeners().size(); i++) {
-			buffer.append("\n" + StringUtils.replace(getListeners().get(i).toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		buffer.append("\n\t elements:"); //$NON-NLS-1$
-		CMNamedNodeMap elements = getElements();
-		for (int i = 0; i < elements.getLength(); i++) {
-			buffer.append(StringUtils.replace(elements.item(i).toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return buffer.toString();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMElementDeclarationImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMElementDeclarationImpl.java
deleted file mode 100644
index c383d88..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMElementDeclarationImpl.java
+++ /dev/null
@@ -1,461 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP11TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap;
-
-public class CMElementDeclarationImpl implements TLDElementDeclaration {
-
-	// optional attributes
-	public CMNamedNodeMapImpl attributes = new CMNamedNodeMapImpl();
-	// (empty|JSP|tagdependant|scriptless) - optional, defaults to JSP
-	private String bodycontent = JSP11TLDNames.CONTENT_JSP;
-
-	/** 
-	 * since JSP 1.2
-	 * 
-	 * Usage information
-	 */
-	private String description;
-	
-	/** 
-	 * since JSP 1.2
-	 */
-	private String displayName;
-
-	/** 
-	 * since JSP 2.0
-	 */
-	private String fExample;
-
-	private CMDocument fOwnerDocument;
-	
-	private String fPath = null;
-
-	private List fTagExtensions = new ArrayList(0);
-	/** 
-	 * since JSP 1.2
-	 */
-	private String largeIcon;
-	
-	
-	private int maxOccur = -1;
-	private int minOccur = 0;
-
-	// required tag name
-	private String nodeName = null;
-	
-	/** 
-	 * since JSP 1.2
-	 */
-	private String smallIcon;
-	
-	// tag handler class - required
-	private String tagclass = null;
-	
-	// tag extra info class (subclass of javax.servlet.jsp.TagExtraInfo) - optional
-	private String teiclass = null;
-
-	/** 
-	 * since JSP 1.2
-	 */
-	private List variables;
-
-	/**
-	 * CMElementDeclarationImpl constructor comment.
-	 */
-	public CMElementDeclarationImpl(CMDocument owner) {
-		super();
-		fOwnerDocument = owner;
-	}
-
-	/**
-	 * getAttributes method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns CMNamedNodeMap of AttributeDeclaration
-	 */
-	public CMNamedNodeMap getAttributes() {
-		return attributes;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getBodycontent() {
-		return bodycontent;
-	}
-
-	/**
-	 * getCMContent method
-	 * @return CMContent
-	 *
-	 * Returns the root node of this element's content model.
-	 * This can be an CMElementDeclaration or a CMGroup
-	 */
-	public CMContent getContent() {
-		return null;
-	}
-
-	/**
-	 * getContentType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 * ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA.
-	 */
-	public int getContentType() {
-		if (bodycontent.equals(JSP11TLDNames.CONTENT_EMPTY))
-			return EMPTY;
-		if (bodycontent.equals(JSP11TLDNames.CONTENT_TAGDEPENDENT))
-			return PCDATA;
-		else
-			// JSP
-			return ANY;
-	}
-
-	/**
-	 * getDataType method
-	 * @return java.lang.String
-	 */
-	public CMDataType getDataType() {
-		return new CMDataTypeImpl(CMDataType.CDATA);
-	}
-
-	/**
-	 * Gets the description.
-	 * @return Returns a String
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Gets the displayName.
-	 * @return Returns a String
-	 */
-	public String getDisplayName() {
-		return displayName;
-	}
-
-	/**
-	 * getElementName method
-	 * @return java.lang.String
-	 */
-	public String getElementName() {
-		return getNodeName();
-	}
-	/**
-	 * @return Returns the example.
-	 */
-	public String getExample() {
-		return fExample;
-	}
-	/**
-	 * @return Returns the extensions.
-	 */
-	public List getExtensions() {
-		return fTagExtensions;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getInfo() {
-		return getDescription();
-	}
-
-	/**
-	 * Gets the largeIcon.
-	 * @return Returns a String
-	 */
-	public String getLargeIcon() {
-		return largeIcon;
-	}
-
-	/**
-	 * getLocalElements method
-	 * @return CMNamedNodeMap
-	 *
-	 * Returns a list of locally defined elements.
-	 */
-	public CMNamedNodeMap getLocalElements() {
-		return null;
-	}
-
-	/**
-	 * getMaxOccur method
-	 * @return int
-	 *
-	 * If -1, it's UNBOUNDED.
-	 */
-	public int getMaxOccur() {
-		return maxOccur;
-	}
-
-	/**
-	 * getMinOccur method
-	 * @return int
-	 *
-	 * If 0, it's OPTIONAL.
-	 * If 1, it's REQUIRED.
-	 */
-	public int getMinOccur() {
-		return minOccur;
-	}
-
-	/**
-	 * getNodeName method
-	 * @return java.lang.String
-	 */
-	public String getNodeName() {
-		return nodeName;
-	}
-
-	/**
-	 * getNodeType method
-	 * @return int
-	 *
-	 * Returns one of :
-	 *
-	 */
-	public int getNodeType() {
-		return CMNode.ELEMENT_DECLARATION;
-	}
-
-	/**
-	 * @return
-	 */
-	public CMDocument getOwnerDocument() {
-		return fOwnerDocument;
-	}
-	/**
-	 * @return Returns the path.
-	 */
-	public String getPath() {
-		return fPath;
-	}
-
-	/**
-	 * getProperty method
-	 * @return java.lang.Object
-	 *
-	 * Returns the object property described by the propertyName
-	 *
-	 */
-	public Object getProperty(String propertyName) {
-		if (propertyName != null && propertyName.equals("tagInfo")) { //$NON-NLS-1$
-			return getTagInfo();	// return tag info
-			// bug88336 no need to restore markers 
-			// return StringUtils.restoreMarkers(getTagInfo()); // return tag description
-		}
-		else if (propertyName != null && propertyName.equals("description")) {	//$NON-NLS-1$
-			return getDescription();
-			// bug88336 no need to restore markers 
-			// return StringUtils.restoreMarkers(getDescription()); // return tag description
-		}
-		else if (propertyName.equals(TLDDocument.CM_KIND)) {
-			return TLDDocument.JSP_TLD;
-		}
-		else if (propertyName.equals(JSP12TLDNames.SMALL_ICON) || propertyName.equals(JSP12TLDNames.LARGE_ICON)) {
-			return getOwnerDocument().getProperty(propertyName);
-		}
-		return null;
-	}
-
-	/**
-	 * Gets the smallIcon.
-	 * @return Returns a String
-	 */
-	public String getSmallIcon() {
-		return smallIcon;
-	}
-	
-	/**
-	 * Returns the XPath of this element
-	 * (currently just returns the node name)
-	 * @return
-	 */
-	private String getSpec() {
-		return getNodeName();
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getTagclass() {
-		return tagclass;
-	}
-	
-	/**
-	 * Get the taginfo for this current element
-	 * @return String taginfo if it exists, null otherwise
-	 */
-	private String getTagInfo() {
-		if (getOwnerDocument().supports("annotationMap")) { //$NON-NLS-1$
-			AnnotationMap map = (AnnotationMap)getOwnerDocument().getProperty("annotationMap"); //$NON-NLS-1$
-			String spec = getSpec();
-			String result = map.getProperty(spec, "tagInfo"); //$NON-NLS-1$
-			return result;
-			// bug88336 no need to restore markers 
-			// return StringUtils.restoreMarkers(result); // return tag info
-		}
-		return null;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getTeiclass() {
-		return teiclass;
-	}
-
-	/**
-	 * Gets the variables.
-	 * @return Returns a List
-	 */
-	public List getVariables() {
-		if (variables == null)
-			variables = new ArrayList();
-		return variables;
-	}
-
-	/**
-	 * 
-	 * @param newBodycontent java.lang.String
-	 */
-	public void setBodycontent(String newBodycontent) {
-		bodycontent = newBodycontent;
-	}
-
-	/**
-	 * Sets the description.
-	 * @param description The description to set
-	 */
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	/**
-	 * Sets the displayName.
-	 * @param displayName The displayName to set
-	 */
-	public void setDisplayName(String displayName) {
-		this.displayName = displayName;
-	}
-	/**
-	 * @param example The example to set.
-	 */
-	public void setExample(String example) {
-		fExample = example;
-	}
-
-	/**
-	 * Sets the largeIcon.
-	 * @param largeIcon The largeIcon to set
-	 */
-	public void setLargeIcon(String largeIcon) {
-		this.largeIcon = largeIcon;
-	}
-
-	public void setNodeName(String string) {
-		nodeName = string;
-	}
-	/**
-	 * @param path The path to set.
-	 */
-	public void setPath(String path) {
-		fPath = path;
-	}
-
-	/**
-	 * Sets the smallIcon.
-	 * @param smallIcon The smallIcon to set
-	 */
-	public void setSmallIcon(String smallIcon) {
-		this.smallIcon = smallIcon;
-	}
-
-	/**
-	 * 
-	 * @param newTagclass java.lang.String
-	 */
-	public void setTagclass(String newTagclass) {
-		tagclass = newTagclass;
-	}
-
-	/**
-	 * 
-	 * @param newTeiclass java.lang.String
-	 */
-	public void setTeiclass(String newTeiclass) {
-		teiclass = newTeiclass;
-	}
-
-	/**
-	 * Sets the variables.
-	 * @param variables The variables to set
-	 */
-	public void setVariables(List variables) {
-		this.variables = variables;
-	}
-
-	/**
-	 * supports method
-	 * 
-	 * @return boolean
-	 * 
-	 * Returns true if the CMNode supports a specified property
-	 * 
-	 */
-	public boolean supports(String propertyName) {
-		return propertyName == null || propertyName.equals("tagInfo") || propertyName.equals(JSP12TLDNames.DESCRIPTION) || propertyName.equals(TLDDocument.CM_KIND) || propertyName.equals(JSP12TLDNames.SMALL_ICON) || propertyName.equals(JSP12TLDNames.LARGE_ICON);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append("\n\t " + super.toString()); //$NON-NLS-1$
-		buffer.append("\n\t name:" + StringUtils.escape(getNodeName())); //$NON-NLS-1$
-		buffer.append("\n\t tag class:" + StringUtils.escape(getTagclass())); //$NON-NLS-1$
-		buffer.append("\n\t tei class:" + StringUtils.escape(getTeiclass())); //$NON-NLS-1$
-		buffer.append("\n\t body content:" + StringUtils.escape(getBodycontent())); //$NON-NLS-1$
-		buffer.append("\n\t description (info):" + StringUtils.escape(getDescription())); //$NON-NLS-1$
-		buffer.append("\n\t attributes:"); //$NON-NLS-1$
-		CMNamedNodeMap attributes = getAttributes();
-		for (int i = 0; i < attributes.getLength(); i++) {
-			buffer.append("\n\t\t" + StringUtils.replace(attributes.item(i).toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		buffer.append("\n\t variables:"); //$NON-NLS-1$
-		for (int i = 0; i < getVariables().size(); i++) {
-			buffer.append("\n\t\t" + StringUtils.replace(getVariables().get(i).toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		return buffer.toString();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNamedNodeMapImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNamedNodeMapImpl.java
deleted file mode 100644
index 38613f9..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNamedNodeMapImpl.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-
-
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public class CMNamedNodeMapImpl implements CMNamedNodeMap {
-
-	public static CMNamedNodeMapImpl EMPTY_NAMED_NODE_MAP = new CMNamedNodeMapImpl();
-	protected Hashtable table = new Hashtable();
-
-	/**
-	 * CMNamedNodeMapImpl constructor comment.
-	 */
-	public CMNamedNodeMapImpl() {
-		super();
-	}
-
-	Hashtable getHashtable() {
-		return table;
-	}
-
-	/**
-	 * getLength method
-	 * @return int
-	 */
-	public int getLength() {
-		return table.size();
-	}
-
-	/**
-	 * getNamedItem method
-	 * @return CMNode
-	 * @param name java.lang.String
-	 */
-	public CMNode getNamedItem(String name) {
-		return (CMNode) table.get(name);
-	}
-
-	/**
-	 * item method
-	 * @return CMNode
-	 * @param index int
-	 */
-	public CMNode item(int index) {
-		Object result = null;
-		int size = table.size();
-		if (index < size) {
-			Iterator values = iterator();
-			for (int i = 0; i <= index; i++) {
-				result = values.next();
-			}
-		}
-		return (CMNode) result;
-	}
-
-	public Iterator iterator() {
-		return table.values().iterator();
-	}
-
-	/**
-	 * getNamedItem method
-	 * @return
-	 * @param name java.lang.String
-	 * @param aNode CMNode
-	 */
-	public void setNamedItem(String name, CMNode aNode) {
-		if (name != null && aNode != null)
-			table.put(name, aNode);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNodeListImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNodeListImpl.java
deleted file mode 100644
index b066cf7..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNodeListImpl.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-
-public class CMNodeListImpl implements CMNodeList {
-	static CMNodeListImpl EMPTY_NODE_LIST = new CMNodeListImpl(Collections.EMPTY_LIST);
-	protected List list;
-
-	public CMNodeListImpl() {
-		this(new ArrayList());
-	}
-
-	public CMNodeListImpl(List list) {
-		this.list = list;
-	}
-
-	public void appendItem(CMNode node) {
-		list.add(node);
-	}
-
-	/**
-	 * getLength method
-	 * @return int
-	 */
-	public int getLength() {
-		return list.size();
-	}
-
-	public List getList() {
-		return list;
-	}
-
-	/**
-	 * item method
-	 * @return CMNode
-	 * @param index int
-	 */
-	public CMNode item(int index) {
-		return (CMNode) list.get(index);
-	}
-
-	public Iterator iterator() {
-		return list.iterator();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java
deleted file mode 100644
index 4b652fe..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java
+++ /dev/null
@@ -1,991 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Stack;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.contentmodel.ITaglibIndexListener;
-import org.eclipse.jst.jsp.core.internal.contentmodel.ITaglibRecord;
-import org.eclipse.jst.jsp.core.internal.contentmodel.ITaglibRecordEvent;
-import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
-import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibIndex;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP11TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP20TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
-import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP12Namespace;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.ltk.parser.StructuredDocumentRegionHandler;
-import org.eclipse.wst.sse.core.internal.ltk.parser.StructuredDocumentRegionHandlerExtension;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Assert;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.uriresolver.internal.util.URIHelper;
-
-public class TLDCMDocumentManager implements ITaglibIndexListener {
-
-	protected class DirectiveStructuredDocumentRegionHandler implements StructuredDocumentRegionHandler, StructuredDocumentRegionHandlerExtension {
-
-		/**
-		 * Adds a block tagname (fully namespace qualified) into the list of
-		 * block tag names for the parser. The marker
-		 * IStructuredDocumentRegion along with position cues during reparses
-		 * allow the JSPSourceParser to enable/ignore the tags as blocks.
-		 */
-		protected void addBlockTag(String tagnameNS, IStructuredDocumentRegion marker) {
-			if (getParser() == null)
-				return;
-			if (getParser().getBlockMarker(tagnameNS) == null) {
-				getParser().addBlockMarker(new BlockMarker(tagnameNS, marker, DOMRegionContext.BLOCK_TEXT, true, false));
-				if (_debug) {
-					System.out.println("TLDCMDocumentManager added block marker: " + tagnameNS + "@" + marker.getStartOffset()); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-		}
-
-		/**
-		 * Enables a TLD owning the given prefix loaded from the given URI at
-		 * the anchorStructuredDocumentRegion. The list of
-		 * additionalCMDocuments will claim to not know any of its tags at
-		 * positions earlier than that IStructuredDocumentRegion's position.
-		 * 
-		 * For taglib directives, the taglib is the anchor while taglibs
-		 * registered through include directives use the parent document's
-		 * include directive as their anchor.
-		 * 
-		 * @param prefix
-		 * @param uri
-		 * @param anchorStructuredDocumentRegion
-		 */
-		protected void enableTaglibFromURI(String prefix, String uri, IStructuredDocumentRegion anchorStructuredDocumentRegion) {
-			if (prefix == null || uri == null || bannedPrefixes.contains(prefix))
-				return;
-			// Try to load the CMDocument for this URI
-			CMDocument tld = getCMDocument(uri);
-			if (tld == null || !(tld instanceof TLDDocument)) {
-				if (_debug) {
-					System.out.println("TLDCMDocumentManager failed to create a CMDocument for " + uri); //$NON-NLS-1$
-				}
-				return;
-			}
-			CMNamedNodeMap elements = tld.getElements();
-			// Go through the CMDocument for any tags that must be marked as
-			// block tags
-			// starting at the anchoring IStructuredDocumentRegion. As the
-			// document is edited and the
-			// IStructuredDocumentRegion moved around, the block tag
-			// enablement will automatically follow
-			// it.
-			for (int i = 0; i < elements.getLength(); i++) {
-				TLDElementDeclaration ed = (TLDElementDeclaration) elements.item(i);
-				if (ed.getBodycontent() == JSP12TLDNames.CONTENT_TAGDEPENDENT)
-					addBlockTag(prefix + ":" + ed.getNodeName(), anchorStructuredDocumentRegion); //$NON-NLS-1$
-			}
-			// Since modifications to StructuredDocumentRegions adjacent to a
-			// taglib directive can cause
-			// that IStructuredDocumentRegion to be reported, filter out any
-			// duplicated URIs. When the
-			// taglib is actually modified, a full rebuild will occur and no
-			// duplicates
-			// will/should be found.
-			List trackers = getTaglibTrackers();
-			for (int i = 0; i < trackers.size(); i++) {
-				TaglibTracker tracker = (TaglibTracker) trackers.get(i);
-				if (tracker.getPrefix().equals(prefix) && tracker.getURI().equals(uri)) {
-					return;
-				}
-			}
-			if (_debug) {
-				System.out.println("TLDCMDocumentManager registered a tracker for " + uri + " with prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$
-			}
-			getTaglibTrackers().add(new TaglibTracker(uri, prefix, tld, anchorStructuredDocumentRegion));
-		}
-
-		/**
-		 * Enables a TLD owning the given prefix loaded from the given URI at
-		 * the anchorStructuredDocumentRegion. The list of
-		 * additionalCMDocuments will claim to not know any of its tags at
-		 * positions earlier than that IStructuredDocumentRegion's position.
-		 * 
-		 * For taglib directives, the taglib is the anchor while taglibs
-		 * registered through include directives use the parent document's
-		 * include directive as their anchor.
-		 * 
-		 * @param prefix
-		 * @param uri
-		 * @param taglibStructuredDocumentRegion
-		 */
-		protected void enableTagsInDir(String prefix, String tagdir, IStructuredDocumentRegion taglibStructuredDocumentRegion) {
-			if (prefix == null || tagdir == null || bannedPrefixes.contains(prefix))
-				return;
-			if (_debug) {
-				System.out.println("TLDCMDocumentManager enabling tags from directory" + tagdir + " for prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$
-			}
-			// Try to load the CMDocument for this URI
-			CMDocument tld = getImplicitCMDocument(tagdir);
-			if (tld == null || !(tld instanceof TLDDocument))
-				return;
-			CMNamedNodeMap elements = tld.getElements();
-			// Go through the CMDocument for any tags that must be marked as
-			// block tags
-			// starting at the anchoring IStructuredDocumentRegion. As the
-			// document is edited and the
-			// IStructuredDocumentRegion moved around, the block tag
-			// enablement will automatically follow
-			// it.
-			for (int i = 0; i < elements.getLength(); i++) {
-				TLDElementDeclaration ed = (TLDElementDeclaration) elements.item(i);
-				if (ed.getBodycontent() == JSP12TLDNames.CONTENT_TAGDEPENDENT)
-					addBlockTag(prefix + ":" + ed.getNodeName(), taglibStructuredDocumentRegion); //$NON-NLS-1$
-			}
-			// Since modifications to StructuredDocumentRegions adjacent to a
-			// taglib directive can cause
-			// that IStructuredDocumentRegion to be reported, filter out any
-			// duplicated URIs. When the
-			// taglib is actually modified, a full rebuild will occur and no
-			// duplicates
-			// will/should be found.
-			List trackers = getTaglibTrackers();
-			for (int i = 0; i < trackers.size(); i++) {
-				TaglibTracker tracker = (TaglibTracker) trackers.get(i);
-				if (tracker.getPrefix().equals(prefix) && tracker.getURI().equals(tagdir)) {
-					return;
-				}
-			}
-			if (_debug) {
-				System.out.println("TLDCMDocumentManager registered a tracker for directory" + tagdir + " with prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$
-			}
-			getTaglibTrackers().add(new TaglibTracker(tagdir, prefix, tld, taglibStructuredDocumentRegion));
-		}
-
-		public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
-			// could test > 1, but since we only care if there are 8 (<%@,
-			// taglib, uri, =, where, prefix, =, what) [or 4 for includes]
-			if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-				ITextRegion name = aCoreStructuredDocumentRegion.getRegions().get(1);
-				try {
-					if (getParser() == null) {
-						Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-					else {
-						boolean taglibDetected = false;
-						boolean taglibDirectiveDetected = false;
-						boolean includeDetected = false;
-						boolean includeDirectiveDetected = false;
-						int startOffset = aCoreStructuredDocumentRegion.getStartOffset(name);
-						int textLength = name.getTextLength();
-
-						if (getParser() != null) {
-							taglibDetected = getParser().regionMatches(startOffset, textLength, JSP12TLDNames.TAGLIB);
-							taglibDirectiveDetected = getParser().regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
-							includeDetected = getParser().regionMatches(startOffset, textLength, JSP12TLDNames.INCLUDE);
-							includeDirectiveDetected = getParser().regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
-						}
-						else {
-							// old fashioned way
-							String directiveName = getParser().getText(startOffset, textLength);
-							taglibDetected = directiveName.equals(JSP12TLDNames.TAGLIB);
-							taglibDirectiveDetected = directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
-							includeDetected = directiveName.equals(JSP12TLDNames.INCLUDE);
-							includeDirectiveDetected = directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
-						}
-						if (taglibDetected || taglibDirectiveDetected) {
-							processTaglib(aCoreStructuredDocumentRegion);
-						}
-						else if (includeDetected || includeDirectiveDetected) {
-							processInclude(aCoreStructuredDocumentRegion);
-						}
-					}
-				}
-				catch (StringIndexOutOfBoundsException sioobExc) {
-					// do nothing
-				}
-			}
-			// could test > 1, but since we only care if there are 5 (<,
-			// jsp:root, xmlns:prefix, =, where)
-			else if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) {
-				if (getParser() == null) {
-					Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-				else {
-					processJSPRoot(aCoreStructuredDocumentRegion);
-				}
-			}
-		}
-
-		protected void processInclude(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
-			processInclude(aCoreStructuredDocumentRegion, aCoreStructuredDocumentRegion, getParser());
-		}
-
-		/**
-		 * Process an include directive found by the textSource parser and
-		 * anchor any taglibs found within at the
-		 * anchorStructuredDocumentRegion. Includes use the including file as
-		 * the point of reference, not necessarily the "top" file.
-		 */
-		protected void processInclude(IStructuredDocumentRegion includeStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
-			ITextRegionList regions = includeStructuredDocumentRegion.getRegions();
-			String includedFile = null;
-			boolean isFilename = false;
-			try {
-				for (int i = 0; i < regions.size(); i++) {
-					ITextRegion region = regions.get(i);
-					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-						if (textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength()).equals(JSP12TLDNames.FILE)) {
-							isFilename = true;
-						}
-						else {
-							isFilename = false;
-						}
-					}
-					else if (isFilename && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-						includedFile = textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
-						isFilename = false;
-					}
-				}
-			}
-			catch (StringIndexOutOfBoundsException sioobExc) {
-				// nothing to be done
-				includedFile = null;
-			}
-			if (includedFile != null) {
-				IPath root = TaglibIndex.getContextRoot(getCurrentBaseLocation());
-				IPath fileLocation = new Path(URIHelper.normalize(StringUtils.strip(includedFile).trim(), getCurrentBaseLocation().toString(), root.toString()));
-				// check for "loops"
-				if (!getIncludes().contains(fileLocation) && fileLocation != null && !fileLocation.equals(getCurrentBaseLocation())) {
-
-					// prevent slow performance when editing scriptlet part of
-					// the JSP
-					// only process includes if they've been modified
-					if (hasAnyIncludeBeenModified(fileLocation.toString())) {
-						getIncludes().push(fileLocation);
-						if (getParser() != null)
-							new IncludeHelper(anchorStructuredDocumentRegion, getParser()).parse(fileLocation.toString());
-						else
-							Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$
-						getIncludes().pop();
-					}
-				}
-				else {
-					if (Debug.debugTokenizer)
-						System.out.println("LOOP IN @INCLUDES FOUND: " + fileLocation); //$NON-NLS-1$
-				}
-			}
-		}
-
-		// Pulls the URI and prefix from the given jsp:root
-		// IStructuredDocumentRegion and
-		// makes sure the tags are known.
-		protected void processJSPRoot(IStructuredDocumentRegion jspRootStructuredDocumentRegion) {
-			processJSPRoot(jspRootStructuredDocumentRegion, jspRootStructuredDocumentRegion, getParser());
-		}
-
-		protected void processJSPRoot(IStructuredDocumentRegion taglibStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
-			ITextRegionList regions = taglibStructuredDocumentRegion.getRegions();
-			String uri = null;
-			String prefix = null;
-			boolean taglib = false;
-			try {
-				for (int i = 0; i < regions.size(); i++) {
-					ITextRegion region = regions.get(i);
-					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-						String name = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
-						if (name.startsWith(XMLNS)) { //$NON-NLS-1$
-							prefix = name.substring(XMLNS_LENGTH);
-							if (!bannedPrefixes.contains(prefix))
-								taglib = true;
-						}
-						else {
-							prefix = null;
-							taglib = false;
-						}
-					}
-					else if (taglib && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-						uri = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
-						if (uri != null && prefix != null && (StringUtils.strip(uri).length() > 0) && (StringUtils.strip(prefix).length() > 0)) {
-							if (anchorStructuredDocumentRegion == null)
-								enableTaglibFromURI(StringUtils.strip(prefix), StringUtils.strip(uri), taglibStructuredDocumentRegion);
-							else
-								enableTaglibFromURI(StringUtils.strip(prefix), StringUtils.strip(uri), anchorStructuredDocumentRegion);
-							uri = null;
-							prefix = null;
-						}
-					}
-				}
-			}
-			catch (StringIndexOutOfBoundsException sioobExc) {
-				// nothing to be done
-				uri = null;
-				prefix = null;
-			}
-		}
-
-		protected void processTaglib(IStructuredDocumentRegion taglibStructuredDocumentRegion) {
-			processTaglib(taglibStructuredDocumentRegion, taglibStructuredDocumentRegion, getParser());
-		}
-
-		/**
-		 * Pulls the URI and prefix from the given taglib directive
-		 * IStructuredDocumentRegion and makes sure the tags are known.
-		 */
-		protected void processTaglib(IStructuredDocumentRegion taglibStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
-			ITextRegionList regions = taglibStructuredDocumentRegion.getRegions();
-			String uri = null;
-			String prefix = null;
-			String tagdir = null;
-			String attrName = null;
-			try {
-				for (int i = 0; i < regions.size(); i++) {
-					ITextRegion region = regions.get(i);
-					// remember attribute name
-					int startOffset = taglibStructuredDocumentRegion.getStartOffset(region);
-					int textLength = region.getTextLength();
-					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-						// String name = textSource.getText(startOffset,
-						// textLength);
-						if (textSource.regionMatches(startOffset, textLength, JSP11TLDNames.PREFIX)) {
-							attrName = JSP11TLDNames.PREFIX;
-						}
-						else if (textSource.regionMatches(startOffset, textLength, JSP12TLDNames.URI)) {
-							attrName = JSP11TLDNames.URI;
-						}
-						else if (textSource.regionMatches(startOffset, textLength, JSP20TLDNames.TAGDIR)) {
-							attrName = JSP20TLDNames.TAGDIR;
-						}
-						else {
-							attrName = null;
-						}
-					}
-					// process value
-					else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-						if (JSP11TLDNames.PREFIX.equals(attrName))
-							prefix = textSource.getText(startOffset, textLength);
-						else if (JSP11TLDNames.URI.equals(attrName))
-							uri = textSource.getText(startOffset, textLength);
-						else if (JSP20TLDNames.TAGDIR.equals(attrName))
-							tagdir = textSource.getText(startOffset, textLength);
-					}
-				}
-			}
-			catch (StringIndexOutOfBoundsException sioobExc) {
-				// nothing to be done
-				uri = null;
-				prefix = null;
-			}
-			if (uri != null && prefix != null && (StringUtils.strip(uri).length() > 0) && (StringUtils.strip(prefix).length() > 0)) {
-				if (anchorStructuredDocumentRegion == null)
-					enableTaglibFromURI(StringUtils.strip(prefix), StringUtils.strip(uri), taglibStructuredDocumentRegion);
-				else
-					enableTaglibFromURI(StringUtils.strip(prefix), StringUtils.strip(uri), anchorStructuredDocumentRegion);
-			}
-			else if (tagdir != null && prefix != null && (StringUtils.strip(tagdir).length() > 0) && (StringUtils.strip(prefix).length() > 0)) {
-				if (anchorStructuredDocumentRegion == null)
-					enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), taglibStructuredDocumentRegion);
-				else
-					enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), anchorStructuredDocumentRegion);
-			}
-		}
-
-		private void resetBlockTags() {
-			if (getParser() == null)
-				return;
-			Iterator names = getParser().getBlockMarkers().iterator();
-			while (names.hasNext()) {
-				BlockMarker marker = (BlockMarker) names.next();
-				if (!marker.isGlobal() && marker.getContext() == DOMRegionContext.BLOCK_TEXT) {
-					if (_debug) {
-						System.out.println("TLDCMDocumentManager removing block tag named: " + marker.getTagName()); //$NON-NLS-1$
-					}
-					names.remove();
-				}
-			}
-		}
-
-		public void resetNodes() {
-			if (Debug.debugTaglibs)
-				System.out.println(getClass().getName() + ": resetting"); //$NON-NLS-1$
-			getIncludes().clear();
-			resetBlockTags();
-			resetTaglibTrackers();
-		}
-
-		public void setStructuredDocument(IStructuredDocument newDocument) {
-			Assert.isTrue(newDocument != null, "null document"); //$NON-NLS-1$
-			Assert.isTrue(newDocument.getParser() != null, "null document parser"); //$NON-NLS-1$
-			Assert.isTrue(newDocument.getParser() instanceof JSPSourceParser, "can only listen to document with a JSPSourceParser"); //$NON-NLS-1$
-			getSourceParser().removeStructuredDocumentRegionHandler(this);
-			setSourceParser((JSPSourceParser) newDocument.getParser());
-			getSourceParser().addStructuredDocumentRegionHandler(this);
-		}
-	}
-
-	protected class IncludeHelper extends DirectiveStructuredDocumentRegionHandler {
-		protected IStructuredDocumentRegion fAnchor = null;
-		protected JSPSourceParser fLocalParser = null;
-		protected JSPSourceParser fParentParser = null;
-
-		public IncludeHelper(IStructuredDocumentRegion anchor, JSPSourceParser rootParser) {
-			super();
-			fAnchor = anchor;
-			fParentParser = rootParser;
-		}
-
-		private String detectCharset(IFile file) {
-			if (file.getType() == IResource.FILE && file.isAccessible()) {
-				IContentDescription d = null;
-				try {
-					// optimized description lookup, might not succeed
-					d = file.getContentDescription();
-					if (d != null)
-						return d.getCharset();
-				}
-				catch (CoreException e) {
-					// should not be possible given the accessible and file
-					// type
-					// check above
-				}
-				InputStream contents = null;
-				try {
-					contents = file.getContents();
-					IContentDescription description = Platform.getContentTypeManager().getDescriptionFor(contents, file.getName(), new QualifiedName[]{IContentDescription.CHARSET});
-					if (description != null) {
-						return description.getCharset();
-					}
-				}
-				catch (IOException e) {
-					// will try to cleanup in finally
-				}
-				catch (CoreException e) {
-					Logger.logException(e);
-				}
-				finally {
-					if (contents != null) {
-						try {
-							contents.close();
-						}
-						catch (Exception e) {
-							// not sure how to recover at this point
-						}
-					}
-				}
-			}
-			return ResourcesPlugin.getEncoding();
-		}
-
-		protected String getContents(String fileName) {
-			StringBuffer s = new StringBuffer();
-			IFile iFile = FileBuffers.getWorkspaceFileAtLocation(new Path(fileName));
-			if (iFile != null && iFile.exists()) {
-				String charset = detectCharset(iFile);
-				InputStream contents = null;
-				try {
-					contents = iFile.getContents();
-					Reader reader = new InputStreamReader(contents, charset);
-					char[] readBuffer = new char[2048];
-					int n = reader.read(readBuffer);
-					while (n > 0) {
-						s.append(readBuffer, 0, n);
-						n = reader.read(readBuffer);
-					}
-				}
-				catch (Exception e) {
-					if (Debug.debugStructuredDocument)
-						Logger.log(Logger.WARNING, "An exception occured while scanning " + fileName, e); //$NON-NLS-1$
-				}
-				finally {
-					try {
-						if (contents != null) {
-							contents.close();
-						}
-					}
-					catch (Exception e) {
-						// nothing to do
-					}
-				}
-			}
-			else {
-				int c = 0;
-				int length = 0;
-				int count = 0;
-				File file = null;
-				FileInputStream fis = null;
-				try {
-					file = new File(fileName);
-					length = (int) file.length();
-					fis = new FileInputStream(file);
-					while (((c = fis.read()) >= 0) && (count < length)) {
-						count++;
-						s.append((char) c);
-					}
-				}
-				catch (FileNotFoundException e) {
-					if (Debug.debugStructuredDocument)
-						System.out.println("File not found : \"" + fileName + "\""); //$NON-NLS-2$//$NON-NLS-1$
-				}
-				catch (ArrayIndexOutOfBoundsException e) {
-					if (Debug.debugStructuredDocument)
-						System.out.println("Usage wrong: specify inputfile"); //$NON-NLS-1$
-					//$NON-NLS-1$
-				}
-				catch (IOException e) {
-					if (Debug.debugStructuredDocument)
-						System.out.println("An I/O error occured while scanning :"); //$NON-NLS-1$
-					//$NON-NLS-1$
-				}
-				catch (Exception e) {
-					if (Debug.debugStructuredDocument)
-						e.printStackTrace();
-				}
-				finally {
-					try {
-						if (fis != null) {
-							fis.close();
-						}
-					}
-					catch (Exception e) {
-						// nothing to do
-					}
-				}
-			}
-			return s.toString();
-		}
-
-		public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
-			// could test > 1, but since we only care if there are 8 (<%@,
-			// taglib, uri, =, where, prefix, =, what)
-			if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 1 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-				ITextRegion name = aCoreStructuredDocumentRegion.getRegions().get(1);
-				try {
-					String directiveName = fLocalParser.getText(aCoreStructuredDocumentRegion.getStartOffset(name), name.getTextLength());
-					if (directiveName.equals(JSP12TLDNames.TAGLIB) || directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB)) {
-						processTaglib(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
-					}
-					if (directiveName.equals(JSP12TLDNames.INCLUDE) || directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE)) {
-						processInclude(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
-					}
-				}
-				catch (StringIndexOutOfBoundsException sioobExc) {
-					// do nothing
-				}
-			}
-			// could test > 1, but since we only care if there are 5 (<,
-			// jsp:root, xmlns:prefix, =, where)
-			else if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) {
-				processJSPRoot(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
-			}
-		}
-
-		public void parse(String filename) {
-			JSPSourceParser p = new JSPSourceParser();
-			fLocalParser = p;
-			List blockTags = fParentParser.getBlockMarkers();
-			String includedFilename = filename;
-			File baseFile = FileBuffers.getSystemFileAtLocation(new Path(includedFilename));
-			try {
-				if (baseFile != null)
-					includedFilename = baseFile.getCanonicalPath();
-			}
-			catch (IOException e) {
-			}
-			String s = getContents(includedFilename);
-			fLocalParser.addStructuredDocumentRegionHandler(this);
-			fLocalParser.reset(s);
-			for (int i = 0; i < blockTags.size(); i++) {
-				BlockMarker marker = (BlockMarker) blockTags.get(i);
-				fLocalParser.addBlockMarker(new BlockMarker(marker.getTagName(), null, marker.getContext(), marker.isCaseSensitive()));
-			}
-			// force parse
-			fLocalParser.getDocumentRegions();
-			fLocalParser = null;
-		}
-
-		public void resetNodes() {
-		}
-
-	}
-
-	static final boolean _debug = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/tldcmdocument/manager")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	// will hold the prefixes banned by the specification; taglibs may not use
-	// them
-	protected static List bannedPrefixes = null;
-	static final String XMLNS = "xmlns:"; //$NON-NLS-1$ 
-	static final int XMLNS_LENGTH = XMLNS.length();
-
-	static {
-		bannedPrefixes = new ArrayList(7);
-		bannedPrefixes.add("jsp"); //$NON-NLS-1$
-		bannedPrefixes.add("jspx"); //$NON-NLS-1$
-		bannedPrefixes.add("java"); //$NON-NLS-1$
-		bannedPrefixes.add("javax"); //$NON-NLS-1$
-		bannedPrefixes.add("servlet"); //$NON-NLS-1$
-		bannedPrefixes.add("sun"); //$NON-NLS-1$
-		bannedPrefixes.add("sunw"); //$NON-NLS-1$
-	}
-
-	private CMDocumentFactoryTLD fCMDocumentBuilder = null;
-	private DirectiveStructuredDocumentRegionHandler fDirectiveHandler = null;
-	private Hashtable fDocuments = null;
-	private Stack fIncludes = null;
-
-	private JSPSourceParser fParser = null;
-
-	// trivial hand edit to remove unused variable private URIResolverProvider
-	// fResolverProvider = null;
-
-	private List fTaglibTrackers = null;
-
-	// timestamp cache to prevent excessive reparsing
-	// of included files
-	// String (filepath) > Long (modification stamp)
-	HashMap fInclude2TimestampMap = new HashMap();
-
-	public TLDCMDocumentManager() {
-		super();
-	}
-
-	public void clearCache() {
-		if (_debug) {
-			System.out.println("TLDCMDocumentManager cleared its CMDocument cache"); //$NON-NLS-1$
-		}
-		getDocuments().clear();
-	}
-
-	/**
-	 * Return the CMDocument at the uri (cached)
-	 */
-	protected CMDocument getCMDocument(String uri) {
-		if (uri == null || uri.length() == 0)
-			return null;
-		String reference = uri;
-		/**
-		 * JSP 1.2 Specification, section 5.2.2 jsp-1_2-fcs-spec.pdf, page 87
-		 */
-		String URNprefix = "urn:jsptld:"; //$NON-NLS-1$
-		if (reference.startsWith(URNprefix)) {
-			/**
-			 * @see section 7.3.2
-			 */
-			if (reference.length() > URNprefix.length())
-				reference = reference.substring(11);
-		}
-		else {
-			/**
-			 * @see section 7.3.6
-			 */
-		}
-		CMDocument doc = (CMDocument) getDocuments().get(reference);
-		if (doc == null) {
-			doc = loadTaglib(reference);
-			if (doc != null)
-				getDocuments().put(reference, doc);
-		}
-		return doc;
-	}
-
-	/**
-	 * Gets the cMDocumentBuilder.
-	 * 
-	 * @return Returns a CMDocumentFactoryTLD, since it has more builder
-	 *         methods
-	 */
-	protected CMDocumentFactoryTLD getCMDocumentBuilder() {
-		if (fCMDocumentBuilder == null)
-			fCMDocumentBuilder = new CMDocumentFactoryTLD();
-		return fCMDocumentBuilder;
-	}
-
-	public List getCMDocumentTrackers(int offset) {
-		List validDocs = new ArrayList();
-		Iterator alldocs = getTaglibTrackers().iterator();
-		while (alldocs.hasNext()) {
-			TaglibTracker aTracker = (TaglibTracker) alldocs.next();
-			if (aTracker.getStructuredDocumentRegion().getStartOffset() < offset || offset < 0) {
-				validDocs.add(aTracker);
-			}
-		}
-		return validDocs;
-	}
-
-	public List getCMDocumentTrackers(String prefix, int offset) {
-		List validDocs = new ArrayList();
-		Iterator alldocs = getTaglibTrackers().iterator();
-		while (alldocs.hasNext()) {
-			TaglibTracker aTracker = (TaglibTracker) alldocs.next();
-			if ((aTracker.getStructuredDocumentRegion().getStartOffset() < offset || offset < 0) && aTracker.getPrefix().equals(prefix)) {
-				validDocs.add(aTracker);
-			}
-		}
-		return validDocs;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	IPath getCurrentBaseLocation() {
-		IPath baseLocation = null;
-		if (!getIncludes().isEmpty()) {
-			baseLocation = (IPath) getIncludes().peek();
-		}
-		else {
-			IPath path = TaglibController.getFileBuffer(this).getLocation();
-			if (path.toFile().exists())
-				baseLocation = path;
-			else
-				baseLocation = ResourcesPlugin.getWorkspace().getRoot().getFile(path).getLocation();
-		}
-		return baseLocation;
-	}
-
-	protected DirectiveStructuredDocumentRegionHandler getDirectiveStructuredDocumentRegionHandler() {
-		if (fDirectiveHandler == null)
-			fDirectiveHandler = new DirectiveStructuredDocumentRegionHandler();
-		return fDirectiveHandler;
-	}
-
-	/**
-	 * Gets the documents.
-	 * 
-	 * @return Returns a Hashtable
-	 */
-	public Hashtable getDocuments() {
-		if (fDocuments == null)
-			fDocuments = new Hashtable();
-		return fDocuments;
-	}
-
-	/**
-	 * Return the CMDocument at the tagdir (cached)
-	 */
-	protected CMDocument getImplicitCMDocument(String tagdir) {
-		if (tagdir == null || tagdir.length() == 0)
-			return null;
-		String reference = tagdir;
-		/**
-		 * JSP 1.2 Specification, section 5.2.2 jsp-1_2-fcs-spec.pdf, page 87
-		 */
-		String URNprefix = "urn:jsptld:"; //$NON-NLS-1$
-		if (reference.startsWith(URNprefix)) {
-			/**
-			 * @see section 7.3.2
-			 */
-			if (reference.length() > URNprefix.length())
-				reference = reference.substring(11);
-		}
-		else {
-			/**
-			 * @see section 7.3.6
-			 */
-		}
-		CMDocument doc = (CMDocument) getDocuments().get(reference);
-		if (doc == null) {
-			doc = loadTagDir(reference);
-			if (doc != null)
-				getDocuments().put(reference, doc);
-		}
-		return doc;
-	}
-
-	/**
-	 * Gets the includes.
-	 * 
-	 * @return Returns a Stack
-	 */
-	protected Stack getIncludes() {
-		if (fIncludes == null)
-			fIncludes = new Stack();
-		return fIncludes;
-	}
-
-	JSPSourceParser getParser() {
-		return fParser;
-	}
-
-	public JSPSourceParser getSourceParser() {
-		return fParser;
-	}
-
-	public StructuredDocumentRegionHandler getStructuredDocumentRegionHandler() {
-		return getDirectiveStructuredDocumentRegionHandler();
-	}
-
-	/**
-	 * 
-	 * @return java.util.List
-	 */
-	public List getTaglibTrackers() {
-		if (fTaglibTrackers == null)
-			fTaglibTrackers = new ArrayList();
-		return fTaglibTrackers;
-	}
-
-	public void indexChanged(ITaglibRecordEvent event) {
-	}
-
-	/**
-	 * Loads the tags from the specified URI. It must point to a URL of valid
-	 * tag files to work.
-	 */
-	protected CMDocument loadTagDir(String uri) {
-		ITaglibRecord reference = TaglibIndex.resolve(getCurrentBaseLocation().toString(), uri, false);
-		if (reference != null) {
-			CMDocument document = getCMDocumentBuilder().createCMDocument(reference);
-			if (document != null) {
-				return document;
-			}
-		}
-		// JSP2_TODO: implement for JSP 2.0
-		String location = URIResolverPlugin.createResolver().resolve(getCurrentBaseLocation().toString(), null, uri);
-		if (location == null)
-			return null;
-		if (_debug) {
-			System.out.println("Loading tags from dir" + uri + " at " + location); //$NON-NLS-2$//$NON-NLS-1$
-		}
-		return getCMDocumentBuilder().createCMDocument(location);
-	}
-
-	/**
-	 * Loads the taglib from the specified URI. It must point to a valid
-	 * taglib descriptor or valid JAR file to work.
-	 */
-	protected CMDocument loadTaglib(String uri) {
-		CMDocument document = null;
-		ITextFileBuffer fileBuffer = TaglibController.getFileBuffer(this);
-		if (fileBuffer != null) {
-			ITaglibRecord reference = TaglibIndex.resolve(fileBuffer.getLocation().toString(), uri, false);
-			if (reference != null) {
-				document = getCMDocumentBuilder().createCMDocument(reference);
-			}
-			else {
-				String location = URIResolverPlugin.createResolver().resolve(getCurrentBaseLocation().toString(), null, uri);
-				if (location != null) {
-					if (_debug) {
-						System.out.println("Loading tags from " + uri + " at " + location); //$NON-NLS-2$//$NON-NLS-1$
-					}
-					document = getCMDocumentBuilder().createCMDocument(location);
-				}
-			}
-		}
-		return document;
-	}
-
-	protected void resetTaglibTrackers() {
-		if (_debug) {
-			System.out.println("TLDCMDocumentManager cleared its taglib trackers\n"); //$NON-NLS-1$
-		}
-		getTaglibTrackers().clear();
-	}
-
-	public void setSourceParser(JSPSourceParser parser) {
-		if (fParser != null)
-			fParser.removeStructuredDocumentRegionHandler(getStructuredDocumentRegionHandler());
-		fParser = parser;
-		if (fParser != null)
-			fParser.addStructuredDocumentRegionHandler(getStructuredDocumentRegionHandler());
-	}
-
-	/**
-	 * @param fileLocation
-	 *            the "root" file
-	 */
-	boolean hasAnyIncludeBeenModified(String fileLocation) {
-
-		boolean result = false;
-		// check the top level
-		if (hasBeenModified(fileLocation)) {
-			result = true;
-		}
-		else {
-			// check all includees
-			Iterator iter = fInclude2TimestampMap.keySet().iterator();
-			while (iter.hasNext()) {
-				if (hasBeenModified((String) iter.next())) {
-					result = true;
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * @param filename
-	 * @return
-	 */
-	boolean hasBeenModified(String filename) {
-
-		boolean result = false;
-		// quick filename/timestamp cache check here...
-		IPath filePath = new Path(filename);
-		IFile f = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(filePath);
-		if (f == null && filePath.segmentCount() > 1) {
-			f = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath);
-		}
-		if (f != null && f.exists()) {
-			Long currentStamp = new Long(f.getModificationStamp());
-			Object o = fInclude2TimestampMap.get(filename);
-			if (o != null) {
-				Long previousStamp = (Long) o;
-				// stamps don't match, file changed
-				if (currentStamp.longValue() != previousStamp.longValue()) {
-					result = true;
-					// store for next time
-					fInclude2TimestampMap.put(filename, currentStamp);
-				}
-			}
-			else {
-				// return true, since we've not encountered this file yet.
-				result = true;
-				// store for next time
-				fInclude2TimestampMap.put(filename, currentStamp);
-			}
-		}
-		return result;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDFunctionImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDFunctionImpl.java
deleted file mode 100644
index 65c7de0..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDFunctionImpl.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDFunction;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-public class TLDFunctionImpl implements TLDFunction {
-	private String fClassName = null;
-	private String fDescription = null;
-	private String fDisplayName = null;
-	private String fExample = null;
-	private List fExtensions = new ArrayList(0);
-	private String fIcon = null;
-	private String fName = null;
-
-	private CMDocument fOwnerDocument = null;
-	private String fSignature = null;
-
-	public TLDFunctionImpl(CMDocument owner) {
-		super();
-		fOwnerDocument = owner;
-	}
-
-	/**
-	 * @return Returns the className.
-	 */
-	public String getClassName() {
-		return fClassName;
-	}
-	/**
-	 * @return Returns the description.
-	 */
-	public String getDescription() {
-		return fDescription;
-	}
-
-	/**
-	 * @return Returns the displayName.
-	 */
-	public String getDisplayName() {
-		return fDisplayName;
-	}
-
-	/**
-	 * @return Returns the example.
-	 */
-	public String getExample() {
-		return fExample;
-	}
-
-	/**
-	 * @return Returns the extensions.
-	 */
-	public List getExtensions() {
-		return fExtensions;
-	}
-
-	/**
-	 * @return Returns the icon.
-	 */
-	public String getIcon() {
-		return fIcon;
-	}
-
-	/**
-	 * @return Returns the name.
-	 */
-	public String getName() {
-		return fName;
-	}
-
-	/**
-	 * @return Returns the ownerDocument.
-	 */
-	public CMDocument getOwnerDocument() {
-		return fOwnerDocument;
-	}
-
-	/**
-	 * @return Returns the signature.
-	 */
-	public String getSignature() {
-		return fSignature;
-	}
-
-	/**
-	 * @param className
-	 *            The className to set.
-	 */
-	public void setClassName(String className) {
-		fClassName = className;
-	}
-	/**
-	 * @param description The description to set.
-	 */
-	public void setDescription(String description) {
-		fDescription = description;
-	}
-
-	/**
-	 * @param displayName
-	 *            The displayName to set.
-	 */
-	public void setDisplayName(String displayName) {
-		fDisplayName = displayName;
-	}
-
-	/**
-	 * @param example
-	 *            The example to set.
-	 */
-	public void setExample(String example) {
-		fExample = example;
-	}
-
-	/**
-	 * @param icon
-	 *            The icon to set.
-	 */
-	public void setIcon(String icon) {
-		fIcon = icon;
-	}
-
-	/**
-	 * @param name
-	 *            The name to set.
-	 */
-	public void setName(String name) {
-		fName = name;
-	}
-
-	/**
-	 * @param signature
-	 *            The signature to set.
-	 */
-	public void setSignature(String signature) {
-		fSignature = signature;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDInitParamImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDInitParamImpl.java
deleted file mode 100644
index 7edf467..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDInitParamImpl.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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
- *******************************************************************************/
-/*
- * Created on Sep 9, 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.jst.jsp.core.internal.contentmodel.tld;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDInitParam;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-
-
-public class TLDInitParamImpl implements TLDInitParam {
-	private String description;
-	private String name;
-	private String value;
-
-	public TLDInitParamImpl() {
-		super();
-	}
-
-	public String getDescription() {
-		return description;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public String getValue() {
-		return value;
-	}
-
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public void setValue(String value) {
-		this.value = value;
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(super.toString());
-		buffer.append("\n\t name:" + StringUtils.escape(getName())); //$NON-NLS-1$
-		buffer.append("\n\t description:" + StringUtils.escape(getDescription())); //$NON-NLS-1$
-		buffer.append("\n\t value:" + StringUtils.escape(getValue())); //$NON-NLS-1$
-		return buffer.toString();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDListenerImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDListenerImpl.java
deleted file mode 100644
index 517b319..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDListenerImpl.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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
- *******************************************************************************/
-/*
- * Created on Sep 9, 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.jst.jsp.core.internal.contentmodel.tld;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDListener;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-
-
-public class TLDListenerImpl implements TLDListener {
-	protected String listenerClass;
-
-	public String getListenerClass() {
-		return listenerClass;
-	}
-
-	public void setListenerClass(String className) {
-		listenerClass = className;
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(super.toString());
-		buffer.append("\n\t listener class:" + StringUtils.escape(getListenerClass())); //$NON-NLS-1$
-		return buffer.toString();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDValidatorImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDValidatorImpl.java
deleted file mode 100644
index 55badba..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDValidatorImpl.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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
- *******************************************************************************/
-/*
- * Created on Sep 9, 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.jst.jsp.core.internal.contentmodel.tld;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDValidator;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-
-
-public class TLDValidatorImpl implements TLDValidator {
-	protected List initParams;
-	protected String validatorClass;
-
-	public List getInitParams() {
-		if (initParams == null)
-			initParams = new ArrayList();
-		return initParams;
-	}
-
-	public String getValidatorClass() {
-		return validatorClass;
-	}
-
-	public void setInitParams(List initParams) {
-		this.initParams = initParams;
-	}
-
-	public void setValidatorClass(String validatorClass) {
-		this.validatorClass = validatorClass;
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(super.toString());
-		buffer.append("\n\t validator class:" + StringUtils.escape(getValidatorClass())); //$NON-NLS-1$
-		buffer.append("\n\t init-parms:"); //$NON-NLS-1$
-		for (int i = 0; i < getInitParams().size(); i++) {
-			buffer.append("\n" + StringUtils.replace(getInitParams().get(i).toString(), "\n", "\n\t\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		return buffer.toString();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDVariableImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDVariableImpl.java
deleted file mode 100644
index f6c0525..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDVariableImpl.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDVariable;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-
-
-public class TLDVariableImpl implements TLDVariable {
-	// optional - defaults to true
-	private boolean declare = true;
-	
-	private String fDescription;
-	// required
-	private String nameFromAttribute;
-	// required
-	private String nameGiven;
-	// optional - defaults to NESTED
-	private String scope = JSP12TLDNames.VARIABLE_SCOPE_NESTED;
-	// required - defaults to a String
-	private String variableClass = "java.lang.String"; //$NON-NLS-1$
-
-	public boolean getDeclare() {
-		return declare;
-	}
-
-	/**
-	 * @return Returns the description.
-	 */
-	public String getDescription() {
-		return fDescription;
-	}
-
-	public String getNameFromAttribute() {
-		return nameFromAttribute;
-	}
-
-	public String getNameGiven() {
-		return nameGiven;
-	}
-
-	public String getScope() {
-		return scope;
-	}
-
-	public String getVariableClass() {
-		return variableClass;
-	}
-
-	public void setDeclare(boolean declare) {
-		this.declare = declare;
-	}
-
-	public void setDeclareString(String decl) {
-		setDeclare(decl.equals(JSP12TLDNames.TRUE) || decl.equals(JSP12TLDNames.YES));
-	}
-	/**
-	 * @param description The description to set.
-	 */
-	public void setDescription(String description) {
-		fDescription = description;
-	}
-
-	public void setNameFromAttribute(String nameFromAttribute) {
-		this.nameFromAttribute = nameFromAttribute;
-	}
-
-	public void setNameGiven(String nameGiven) {
-		this.nameGiven = nameGiven;
-	}
-
-	public void setScope(String scope) {
-		this.scope = scope;
-	}
-
-	public void setVariableClass(String variableClass) {
-		this.variableClass = variableClass;
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(super.toString());
-		buffer.append("\n\t name given:" + StringUtils.escape(getNameGiven())); //$NON-NLS-1$
-		buffer.append("\n\t name from attribute:" + StringUtils.escape(getNameFromAttribute())); //$NON-NLS-1$
-		// Boolean.toString(boolean) is introduced in JDK 1.4
-		//buffer.append("\n\t declare:" + StringUtils.escape(Boolean.toString(getDeclare())));
-		buffer.append("\n\t declare:" + StringUtils.toString(getDeclare())); //$NON-NLS-1$
-		buffer.append("\n\t scope:" + StringUtils.escape(getScope())); //$NON-NLS-1$
-		buffer.append("\n\t variable class:" + StringUtils.escape(getVariableClass())); //$NON-NLS-1$
-		return buffer.toString();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TaglibTracker.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TaglibTracker.java
deleted file mode 100644
index fcd90af..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TaglibTracker.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld;
-
-
-
-import org.eclipse.jst.jsp.core.internal.contentmodel.CMDocumentWrapperImpl;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocumentTracker;
-
-/**
- * TaglibTracker class
- */
-public class TaglibTracker extends CMDocumentWrapperImpl implements CMDocumentTracker {
-
-	private IStructuredDocumentRegion fStructuredDocumentRegion;
-
-	public TaglibTracker(String newURI, String newPrefix, CMDocument tld, IStructuredDocumentRegion aStructuredDocumentRegion) {
-		super(newURI, newPrefix, tld);
-		fStructuredDocumentRegion = aStructuredDocumentRegion;
-	}
-
-	public IStructuredDocumentRegion getStructuredDocumentRegion() {
-		return fStructuredDocumentRegion;
-	}
-
-	public String toString() {
-		if (getStructuredDocumentRegion() != null)
-			return getPrefix() + "@" + getStructuredDocumentRegion().getStartOffset(); //$NON-NLS-1$
-		return super.toString();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP11TLDNames.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP11TLDNames.java
deleted file mode 100644
index 6a484dc..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP11TLDNames.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-public interface JSP11TLDNames {
-
-	String TAGLIB = "taglib"; //$NON-NLS-1$
-
-	String CONTENT_JSP = "JSP"; //$NON-NLS-1$
-	String CONTENT_EMPTY = "empty"; //$NON-NLS-1$
-	String CONTENT_TAGDEPENDENT = "tagdependent"; //$NON-NLS-1$
-
-	String TAG = "tag"; //$NON-NLS-1$
-	String JSPVERSION = "jspversion"; //$NON-NLS-1$
-	String TLIBVERSION = "tlibversion"; //$NON-NLS-1$
-	String SHORTNAME = "shortname"; //$NON-NLS-1$
-	String URI = "uri"; //$NON-NLS-1$
-	String URN = "urn"; //$NON-NLS-1$
-	String INFO = "info"; //$NON-NLS-1$
-
-	String NAME = "name"; //$NON-NLS-1$
-	String TEICLASS = "teiclass"; //$NON-NLS-1$
-	String TAGCLASS = "tagclass"; //$NON-NLS-1$
-	String BODYCONTENT = "bodycontent"; //$NON-NLS-1$
-	String ATTRIBUTE = "attribute"; //$NON-NLS-1$
-
-	String ID = "id"; //$NON-NLS-1$
-	String REQUIRED = "required"; //$NON-NLS-1$
-	String RTEXPRVALUE = "rtexprvalue"; //$NON-NLS-1$
-
-	String PREFIX = "prefix"; //$NON-NLS-1$
-
-	String INCLUDE = "include"; //$NON-NLS-1$
-	String FILE = "file"; //$NON-NLS-1$
-
-	String TRUE = "true"; //$NON-NLS-1$
-	String FALSE = "false"; //$NON-NLS-1$
-	String YES = "yes"; //$NON-NLS-1$
-	String NO = "no"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP12TLDNames.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP12TLDNames.java
deleted file mode 100644
index 4e8c767..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP12TLDNames.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-public interface JSP12TLDNames {
-
-	String TAGLIB = JSP11TLDNames.TAGLIB;
-
-	String CONTENT_JSP = JSP11TLDNames.CONTENT_JSP;
-	String CONTENT_EMPTY = JSP11TLDNames.CONTENT_EMPTY;
-	String CONTENT_TAGDEPENDENT = JSP11TLDNames.CONTENT_TAGDEPENDENT;
-
-	String TAG = JSP11TLDNames.TAG;
-	String JSP_VERSION = "jsp-version"; //$NON-NLS-1$
-	String TLIB_VERSION = "tlib-version"; //$NON-NLS-1$
-	String SHORT_NAME = "short-name"; //$NON-NLS-1$
-	String URI = JSP11TLDNames.URI;
-	String URN = JSP11TLDNames.URN;
-
-	String NAME = JSP11TLDNames.NAME;
-	String TEI_CLASS = "tei-class"; //$NON-NLS-1$
-	String TAG_CLASS = "tag-class"; //$NON-NLS-1$
-	String BODY_CONTENT = "body-content"; //$NON-NLS-1$
-	String ATTRIBUTE = JSP11TLDNames.ATTRIBUTE;
-
-	String ID = JSP11TLDNames.ID;
-	String REQUIRED = JSP11TLDNames.REQUIRED;
-	String RTEXPRVALUE = JSP11TLDNames.RTEXPRVALUE;
-
-	String PREFIX = JSP11TLDNames.PREFIX;
-
-	String INCLUDE = JSP11TLDNames.INCLUDE;
-	String FILE = JSP11TLDNames.FILE;
-
-	String TRUE = JSP11TLDNames.TRUE;
-	String FALSE = JSP11TLDNames.FALSE;
-	String YES = JSP11TLDNames.YES;
-	String NO = JSP11TLDNames.NO;
-
-	/*
-	 * @since JSP 1.2
-	 */
-	String DESCRIPTION = "description"; //$NON-NLS-1$
-	String DISPLAY_NAME = "display-name"; //$NON-NLS-1$
-	String SMALL_ICON = "small-icon"; //$NON-NLS-1$
-	String LARGE_ICON = "large-icon"; //$NON-NLS-1$
-
-
-	String VALIDATOR = "validator"; //$NON-NLS-1$
-	String VALIDATOR_CLASS = "validator-class"; //$NON-NLS-1$
-	String VALIDATOR_INIT_PARAM = "init-param"; //$NON-NLS-1$
-	String VALIDATOR_PARAM_NAME = "param-name"; //$NON-NLS-1$
-	String VALIDATOR_PARAM_VALUE = "param-value"; //$NON-NLS-1$
-
-
-	String LISTENER = "listener"; //$NON-NLS-1$
-	String LISTENER_CLASS = "listener-class"; //$NON-NLS-1$
-
-	String VARIABLE = "variable"; //$NON-NLS-1$
-	String VARIABLE_NAME_GIVEN = "name-given"; //$NON-NLS-1$
-	String VARIABLE_NAME_FROM_ATTRIBUTE = "name-from-attribute"; //$NON-NLS-1$
-	String VARIABLE_CLASS = "variable-class"; //$NON-NLS-1$
-	String VARIABLE_DECLARE = "declare"; //$NON-NLS-1$
-	String VARIABLE_SCOPE = "scope"; //$NON-NLS-1$
-	String VARIABLE_SCOPE_NESTED = "NESTED"; //$NON-NLS-1$
-	String VARIABLE_SCOPE_AT_BEGIN = "AT_BEGIN"; //$NON-NLS-1$
-	String VARIABLE_SCOPE_AT_END = "AT_END"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP20TLDNames.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP20TLDNames.java
deleted file mode 100644
index ea51e19..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP20TLDNames.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-/*nlsXXX*/
-public interface JSP20TLDNames extends JSP12TLDNames {
-	String CONTENT_SCRIPTLESS = "scriptless"; //$NON-NLS-1$
-	String EXAMPLE = "example"; //$NON-NLS-1$
-	String FRAGMENT = "fragment"; //$NON-NLS-1$
-	String FUNCTION = "function"; //$NON-NLS-1$
-	String FUNCTION_CLASS = "function-class"; //$NON-NLS-1$
-	String FUNCTION_EXTENSION = "function-extension"; //$NON-NLS-1$
-	String FUNCTION_SIGNATURE = "function-signature"; //$NON-NLS-1$
-	String ICON = "icon"; //$NON-NLS-1$
-	String PATH = "path"; //$NON-NLS-1$
-	String TAG_EXTENSION = "tag-extension"; //$NON-NLS-1$
-	String TAG_FILE = "tag-file"; //$NON-NLS-1$
-
-	String TAGDIR = "tagdir"; //$NON-NLS-1$
-	
-	String TAGLIB_EXTENSION = "taglib-extension"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDAttributeDeclaration.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDAttributeDeclaration.java
deleted file mode 100644
index 05960a3..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDAttributeDeclaration.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-/**
- * Represents an attribute definition from a TLD
- */
-public interface TLDAttributeDeclaration extends CMAttributeDeclaration {
-
-	/**
-	 * a description of the attribute
-	 * @return String
-	 * @since JSP 2.0
-	 */
-	String getDescription();
-	
-	/**
-	 * the attribute's name
-	 * @since JSP 1.1
-	 */
-	String getId();
-
-	CMDocument getOwnerDocument();
-
-	/**
-	 * whether the attribute's value may be dynamically calculated at runtime by an expression
-	 * @since JSP 1.1
-	 */
-	String getRtexprvalue();
-
-	/**
-	 * the type of the attribute's value
-	 * @since JSP 1.2
-	 */
-	String getType();
-
-	/**
-	 * whether this attribute is a fragment
-	 * 
-	 * @return boolean
-	 */
-	boolean isFragment();
-	
-	/**
-	 * if the attribute is required or optional
-	 * @since JSP 1.1
-	 */
-	boolean isRequired();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDDocument.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDDocument.java
deleted file mode 100644
index 7addae4..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDDocument.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-public interface TLDDocument extends CMDocument {
-
-	String CM_KIND = "Content Model Kind"; //$NON-NLS-1$
-	String JSP_TLD = "JSP Tag Library Descriptor"; //$NON-NLS-1$
-
-	/**
-	 * @since JSP 2.0
-	 * 
-	 * @return
-	 */
-	String getBaseLocation();
-	
-	/**
-	 * @return String - The contents of the "description" element of a JSP 1.2 tag library descriptor; a simple string describing the "use" of this taglib, should be user discernable.
-	 * @since JSP 1.2
-	 */
-	String getDescription();
-
-	/**
-	 * @return String - The contents of the "display-name" element of a JSP 1.2 tag library descriptor; it is a short name that is intended to be displayed by tools
-	 * @since JSP 1.2
-	 */
-	String getDisplayName();
-
-	/**
-	 * @return List - A list of extension elements describing the tag library
-	 * @since JSP 2.0
-	 */
-	List getExtensions();
-	
-	/**
-	 * @return List - A list of TLDFunctions describing the declared functions
-	 * @since JSP 2.0
-	 */
-	List getFunctions();
-	
-	/**
-	 * @return String - The contents of the "info" element of a JSP 1.1 tag library descriptor; a simple string describing the "use" of this taglib, should be user discernable.
-	 * @since JSP 1.1
-	 */
-	String getInfo();
-
-	/**
-	 * @return String - The version of JSP the tag library depends upon
-	 * @since JSP 1.1
-	 */
-	String getJspversion();
-
-	/**
-	 * @return String - The contents of the "large-icon" element of a JSP 1.2 tag library descriptor; optional large-icon that can be used by tools
-	 * @since JSP 1.2
-	 */
-	String getLargeIcon();
-
-	/**
-	 * @since JSP 1.2
-	 * @return List - a List of TLDListeners
-	 */
-	List getListeners();
-
-	/**
-	 * @return String - A simple default short name that could be used by a JSP authoring tool to create names with a mnemonic value; for example, it may be used as the preferred prefix value in taglib directives
-	 * @since JSP 1.1
-	 */
-	String getShortname();
-
-	/**
-	 * @return String - The contents of the "small-icon" element of a JSP 1.2 tag library descriptor; optional small-icon that can be used by tools
-	 * @since JSP 1.2
-	 */
-	String getSmallIcon();
-
-	/**
-	 * @return String - The version of the tag library (it's implementation)
-	 * @since JSP 1.1
-	 */
-	String getTlibversion();
-
-	/**
-	 * @return String - the URI declared within the descriptor
-	 * @since JSP 1.1
-	 */
-	String getUri();
-
-	/**
-	 * @since JSP 1.2
-	 */
-	TLDValidator getValidator();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDElementDeclaration.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDElementDeclaration.java
deleted file mode 100644
index f62ed23..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDElementDeclaration.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-
-public interface TLDElementDeclaration extends CMElementDeclaration {
-
-	/**
-	 * The body content type
-	 * 
-	 * @since JSP 1.1
-	 */
-	String getBodycontent();
-
-	/**
-	 * Optional tag-specific information
-	 * 
-	 * @since JSP 1.2
-	 */
-	String getDescription();
-
-	/**
-	 * A short name that is intended to be displayed by tools
-	 * 
-	 * @since JSP 1.2
-	 */
-	String getDisplayName();
-
-	/**
-	 * Optional informal description of an example of a use of this tag
-	 * 
-	 * @since JSP 2.0
-	 */
-	String getExample();
-
-	/**
-	 * Zero or more extensions that provide extra information about this tag,
-	 * for tool consumption
-	 * 
-	 * @since JSP 2.0
-	 */
-	List getExtensions();
-
-	/**
-	 * Optional tag-specific information
-	 * 
-	 * @since JSP 1.1
-	 */
-	String getInfo();
-
-	/**
-	 * Name of an optional large icon that can be used by tools
-	 * 
-	 * @since JSP 1.2
-	 */
-	String getLargeIcon();
-
-	CMDocument getOwnerDocument();
-
-	/**
-	 * Where to find the .tag file implementing this action, relative to the
-	 * root of the web application or the root of the JAR file for a tag
-	 * library packaged in a JAR. This must begin with /WEB-INF/tags if the
-	 * .tag file resides in the WAR, or /META-INF/tags if the .tag file
-	 * resides in a JAR.
-	 * 
-	 * 
-	 * @return the path to the .tag(x) file as defined in the .tld file, null
-	 *         if internal to the .tld
-	 * @since JSP 2.0
-	 */
-	String getPath();
-
-	/**
-	 * Name of an optional small icon that can be used by tools
-	 * 
-	 * @since JSP 1.2
-	 */
-	String getSmallIcon();
-
-	/**
-	 * The name of the tag handler class implementing
-	 * javax.servlet.jsp.tagext.Tag
-	 * 
-	 * @since JSP 1.1
-	 */
-	String getTagclass();
-
-	/**
-	 * The name of an optional subclass of
-	 * javax.servlet.jsp.tagext.TagExtraInfo
-	 * 
-	 * @since JSP 1.1
-	 */
-	String getTeiclass();
-
-	/**
-	 * @since JSP 1.2
-	 * @return List of TLDVariables
-	 */
-	List getVariables();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDFunction.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDFunction.java
deleted file mode 100644
index 8f2b50a..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDFunction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-
-public interface TLDFunction {
-
-	String getClassName();
-	
-	String getDescription();
-
-	String getDisplayName();
-
-	String getExample();
-
-	List getExtensions();
-
-	String getIcon();
-
-	String getName();
-
-	CMDocument getOwnerDocument();
-
-	String getSignature();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDInitParam.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDInitParam.java
deleted file mode 100644
index e4d5c50..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDInitParam.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-
-/**
- * A name/value pair as an initialization param along with a description
- * @since JSP 1.2
- */
-public interface TLDInitParam {
-	String getDescription();
-
-	/**
-	 * The param-name element contains the name of a parameter.
-	 */
-	String getName();
-
-	/**
-	 * The param-value element contains the name of a parameter.
-	 */
-	String getValue();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDListener.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDListener.java
deleted file mode 100644
index aa9116c..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDListener.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-
-/**
- * Defines an optional event listener object to be instantiated and registered automatically
- * @since JSP 1.2
- */
-public interface TLDListener {
-	String getListenerClass();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDValidator.java
deleted file mode 100644
index ae6e044..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDValidator.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-import java.util.List;
-
-
-/**
- * Defines an optional validator that can be used to validate the conformance of a JSP page to using this tag library
- * @since JSP 1.2
- */
-public interface TLDValidator {
-	/**
-	 * @return List - a List of TLDInitParams
-	 */
-	List getInitParams();
-
-	String getValidatorClass();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDVariable.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDVariable.java
deleted file mode 100644
index 1a01b08..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDVariable.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contentmodel.tld.provisional;
-
-/**
- * Information on the scripting variables defined by this tag.
- * @since JSP 1.2
- */
-public interface TLDVariable {
-
-	/**
-	 * Whether the variable is declared or not, true is the default.
-	 */
-	boolean getDeclare();
-
-	String getDescription();
-
-	/**
-	 * The name of an attribute whose (translation time) value will give the name of the variable.
-	 */
-	String getNameFromAttribute();
-
-	/**
-	 * The variable name given as a constant
-	 */
-	String getNameGiven();
-	
-	/**
-	 * The scope of the scripting variable defined.
-	 */
-	String getScope();
-
-	/**
-	 * Name of the class of the variable, java.lang.String if null
-	 */
-	String getVariableClass();
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ContentDescriberForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ContentDescriberForJSP.java
deleted file mode 100644
index 3706254..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ContentDescriberForJSP.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contenttype;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescriber;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.ITextContentDescriber;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.IContentDescriptionForJSP;
-import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.internal.encoding.IContentDescriptionExtended;
-import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector;
-
-public final class ContentDescriberForJSP implements ITextContentDescriber {
-	private final static QualifiedName[] SUPPORTED_OPTIONS = {IContentDescription.CHARSET, IContentDescription.BYTE_ORDER_MARK, IContentDescriptionExtended.DETECTED_CHARSET, IContentDescriptionExtended.UNSUPPORTED_CHARSET, IContentDescriptionExtended.APPROPRIATE_DEFAULT, IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE, IContentDescriptionForJSP.LANGUAGE_ATTRIBUTE};
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.content.IContentDescriber#describe(java.io.InputStream,
-	 *      org.eclipse.core.runtime.content.IContentDescription)
-	 */
-	public int describe(InputStream contents, IContentDescription description) throws IOException {
-		int result = IContentDescriber.INDETERMINATE;
-
-		calculateSupportedOptions(contents, description);
-
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.content.ITextContentDescriber#describe(java.io.Reader,
-	 *      org.eclipse.core.runtime.content.IContentDescription)
-	 */
-	public int describe(Reader contents, IContentDescription description) throws IOException {
-		int result = IContentDescriber.INDETERMINATE;
-
-		calculateSupportedOptions(contents, description);
-
-		return result;
-	}
-
-	public QualifiedName[] getSupportedOptions() {
-		return SUPPORTED_OPTIONS;
-	}
-
-	private void calculateSupportedOptions(InputStream contents, IContentDescription description) throws IOException {
-		if (isRelevent(description)) {
-			IResourceCharsetDetector detector = getDetector();
-			detector.set(contents);
-			handleCalculations(description, detector);
-		}
-	}
-
-	/**
-	 * @param contents
-	 * @param description
-	 * @throws IOException
-	 */
-	private void calculateSupportedOptions(Reader contents, IContentDescription description) throws IOException {
-		if (isRelevent(description)) {
-			IResourceCharsetDetector detector = getDetector();
-			detector.set(contents);
-			handleCalculations(description, detector);
-		}
-	}
-
-	private IResourceCharsetDetector getDetector() {
-		return new JSPResourceEncodingDetector();
-	}
-
-	private void handleCalculations(IContentDescription description, IResourceCharsetDetector detector) throws IOException {
-		// handle standard ones first, to be sure detector processes
-		handleStandardCalculations(description, detector);
-		// now do those specific for JSPs
-		// note: detector should always be of correct instance, but we'll
-		// check, for now.
-		if (detector instanceof JSPResourceEncodingDetector) {
-			JSPResourceEncodingDetector jspDetector = (JSPResourceEncodingDetector) detector;
-			String language = jspDetector.getLanguage();
-			if (language != null && language.length() > 0) {
-				description.setProperty(IContentDescriptionForJSP.LANGUAGE_ATTRIBUTE, language);
-			}
-			String contentTypeAttribute = jspDetector.getContentType();
-			if (contentTypeAttribute != null && contentTypeAttribute.length() > 0) {
-				description.setProperty(IContentDescriptionForJSP.CONTENT_TYPE_ATTRIBUTE, contentTypeAttribute);
-			}
-		}
-	}
-
-	private void handleDetectedSpecialCase(IContentDescription description, Object detectedCharset, Object javaCharset) {
-		// since equal, we don't need to add, but if our detected version is
-		// different than
-		// javaCharset, then we should add it. This will happen, for example,
-		// if there's
-		// differences in case, or differences due to override properties
-		if (detectedCharset != null) {
-			// if (!detectedCharset.equals(javaCharset)) {
-			// description.setProperty(IContentDescriptionExtended.DETECTED_CHARSET,
-			// detectedCharset);
-			// }
-
-			// Once we detected a charset, we should set the property even
-			// though it's the same as javaCharset
-			// because there are clients that rely on this property to
-			// determine if the charset is actually detected in file or not.
-			description.setProperty(IContentDescriptionExtended.DETECTED_CHARSET, detectedCharset);
-		}
-	}
-
-	/**
-	 * @param description
-	 * @param detector
-	 * @throws IOException
-	 */
-	private void handleStandardCalculations(IContentDescription description, IResourceCharsetDetector detector) throws IOException {
-		// note: if we're asked for one, we set them all. I need to be sure if
-		// called
-		// mulitiple times (one for each, say) that we don't waste time
-		// processing same
-		// content again.
-		EncodingMemento encodingMemento = detector.getEncodingMemento();
-		// TODO: I need to verify to see if this BOM work is always done
-		// by text type.
-		Object detectedByteOrderMark = encodingMemento.getUnicodeBOM();
-		if (detectedByteOrderMark != null) {
-			Object existingByteOrderMark = description.getProperty(IContentDescription.BYTE_ORDER_MARK);
-			// not sure why would ever be different, so if is different, may
-			// need to "push" up into base.
-			if (!detectedByteOrderMark.equals(existingByteOrderMark))
-				description.setProperty(IContentDescription.BYTE_ORDER_MARK, detectedByteOrderMark);
-		}
-
-
-		if (!encodingMemento.isValid()) {
-			// note: after setting here, its the mere presence of
-			// IContentDescriptionExtended.UNSUPPORTED_CHARSET
-			// in the resource's description that can be used to determine if
-			// invalid
-			// in those cases, the "detected" property contains an
-			// "appropriate default" to use.
-			description.setProperty(IContentDescriptionExtended.UNSUPPORTED_CHARSET, encodingMemento.getInvalidEncoding());
-			description.setProperty(IContentDescriptionExtended.APPROPRIATE_DEFAULT, encodingMemento.getAppropriateDefault());
-		}
-
-		Object detectedCharset = encodingMemento.getDetectedCharsetName();
-		Object javaCharset = encodingMemento.getJavaCharsetName();
-
-		// we always include detected, if its different than java
-		handleDetectedSpecialCase(description, detectedCharset, javaCharset);
-
-		if (javaCharset != null) {
-			Object existingCharset = description.getProperty(IContentDescription.CHARSET);
-			if (javaCharset.equals(existingCharset)) {
-				handleDetectedSpecialCase(description, detectedCharset, javaCharset);
-			}
-			else {
-				// we may need to add what we found, but only need to add
-				// if different from default.the
-				Object defaultCharset = getDetector().getSpecDefaultEncoding();
-				if (defaultCharset != null) {
-					if (!defaultCharset.equals(javaCharset)) {
-						description.setProperty(IContentDescription.CHARSET, javaCharset);
-					}
-				}
-				else {
-					// assuming if there is no spec default, we always need to
-					// add, I'm assuming
-					description.setProperty(IContentDescription.CHARSET, javaCharset);
-				}
-			}
-		}
-
-		// avoid adding anything if not absolutly needed, since always
-		// "cached" per session
-		// description.setProperty(IContentDescriptionExtended.ENCODING_MEMENTO,
-		// encodingMemento);
-	}
-
-	/**
-	 * @param description
-	 * @return
-	 */
-	private boolean isRelevent(IContentDescription description) {
-		boolean result = false;
-		if (description == null)
-			result = false;
-		else if (description.isRequested(IContentDescription.BYTE_ORDER_MARK))
-			result = true;
-		else if (description.isRequested(IContentDescription.CHARSET))
-			result = true;
-		else if (description.isRequested(IContentDescriptionExtended.APPROPRIATE_DEFAULT))
-			result = true;
-		else if (description.isRequested(IContentDescriptionExtended.DETECTED_CHARSET))
-			result = true;
-		else if (description.isRequested(IContentDescriptionExtended.UNSUPPORTED_CHARSET))
-			result = true;
-		return result;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/HeadParserToken.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/HeadParserToken.java
deleted file mode 100644
index 5a93e08..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/HeadParserToken.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.core.internal.contenttype;
-
-public class HeadParserToken {
-	private int fStart;
-
-	private String fText;
-	private String fType;
-
-	protected HeadParserToken() {
-		super();
-	}
-
-	public HeadParserToken(String type, int start, String text) {
-		this();
-		fType = type;
-		fStart = start;
-		fText = text;
-
-	}
-
-	public String getText() {
-		return fText;
-	}
-
-	public String getType() {
-		return fType;
-	}
-
-	public String toString() {
-		return ("text: " + fText + " offset: " + fStart + " type: " + fType); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/IntStack.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/IntStack.java
deleted file mode 100644
index e04d0a2..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/IntStack.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.core.internal.contenttype;
-
-/*
- * 
- * A non-resizable class implementing the behavior of java.util.Stack, but
- * directly for the <code> integer </code> primitive.
- */
-import java.util.EmptyStackException;
-
-public class IntStack {
-	private int[] list = null;
-
-	private int size = 0;
-
-	public IntStack() {
-		this(100);
-	}
-
-	public IntStack(int maxdepth) {
-		super();
-		list = new int[maxdepth];
-		initialize();
-	}
-
-	public void clear() {
-		initialize();
-	}
-
-	public boolean empty() {
-		return size == 0;
-	}
-
-	public int get(int slot) {
-		return list[slot];
-	}
-
-	private void initialize() {
-		for (int i = 0; i < list.length; i++)
-			list[i] = -1;
-	}
-
-	/**
-	 * Returns the int at the top of the stack without removing it
-	 * 
-	 * @return int at the top of this stack.
-	 * @exception EmptyStackException
-	 *                when empty.
-	 */
-	public int peek() {
-		if (size == 0)
-			throw new EmptyStackException();
-		return list[size - 1];
-	}
-
-	/**
-	 * Removes and returns the int at the top of the stack
-	 * 
-	 * @return int at the top of this stack.
-	 * @exception EmptyStackException
-	 *                when empty.
-	 */
-	public int pop() {
-		int value = peek();
-		list[size - 1] = -1;
-		size--;
-		return value;
-	}
-
-	/**
-	 * Pushes an item onto the top of this stack.
-	 * 
-	 * @param newValue -
-	 *            the int to be pushed onto this stack.
-	 * @return the <code>newValue</code> argument.
-	 */
-	public int push(int newValue) {
-		if (size == list.length) {
-			throw new StackOverflowError();
-		}
-		list[size++] = newValue;
-		return newValue;
-	}
-
-	public int size() {
-		return list.length;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizer.java
deleted file mode 100644
index c0b35c8..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizer.java
+++ /dev/null
@@ -1,1323 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 9/7/04 8:12 AM */
-
-/*nlsXXX*/
-package org.eclipse.jst.jsp.core.internal.contenttype;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
-import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
-
-
-
-
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 9/7/04 8:12 AM from the specification file
- * <tt>file:/D:/DevTimeSupport/HeadParsers/JSPHeadTokenizer/JSPHeadTokenizer.jflex</tt>
- */
-public class JSPHeadTokenizer {
-
-  /** this character denotes the end of file */
-  final public static int YYEOF = -1;
-
-  /** lexical states */
-  final public static int YYINITIAL = 0;
-  final public static int UnDelimitedString = 12;
-  final public static int DQ_STRING = 8;
-  final public static int SQ_STRING = 10;
-  final public static int ST_XMLDecl = 2;
-  final public static int ST_PAGE_DIRECTIVE = 4;
-  final public static int QuotedAttributeValue = 6;
-
-  /**
-   * YY_LEXSTATE[l] is the state in the DFA for the lexical state l
-   * YY_LEXSTATE[l+1] is the state in the DFA for the lexical state l
-   *                  at the beginning of a line
-   * l is of the form l = 2*k, k a non negative integer
-   */
-  private final static int YY_LEXSTATE[] = { 
-     0,  1,  2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7, 7
-  };
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static String yycmap_packed = 
-    "\11\0\1\6\1\7\2\0\1\11\22\0\1\6\1\0\1\45\2\0"+
-    "\1\17\1\0\1\46\6\0\1\36\1\44\12\0\1\27\1\0\1\12"+
-    "\1\10\1\41\1\13\1\20\1\22\1\0\1\33\1\30\1\24\1\0"+
-    "\1\23\1\0\1\31\1\25\1\0\1\16\1\15\1\37\1\40\1\21"+
-    "\1\0\1\32\1\26\1\34\1\42\1\35\1\0\1\14\1\43\7\0"+
-    "\1\22\1\0\1\33\1\30\1\24\1\0\1\23\1\0\1\31\1\25"+
-    "\1\0\1\16\1\15\1\37\1\40\1\21\1\0\1\32\1\26\1\34"+
-    "\1\42\1\35\1\0\1\14\1\43\101\0\1\4\3\0\1\5\17\0"+
-    "\1\3\16\0\1\1\20\0\1\3\16\0\1\1\1\2\170\0\1\2"+
-    "\ufe87\0";
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static char [] yycmap = yy_unpack_cmap(yycmap_packed);
-
-
-  /* error codes */
-  final private static int YY_UNKNOWN_ERROR = 0;
-  final private static int YY_ILLEGAL_STATE = 1;
-  final private static int YY_NO_MATCH = 2;
-  final private static int YY_PUSHBACK_2BIG = 3;
-
-  /* error messages for the codes above */
-  final private static String YY_ERROR_MSG[] = {
-    "Unkown internal scanner error",
-    "Internal error: unknown state",
-    "Error: could not match input",
-    "Error: pushback value was too large"
-  };
-
-  /** the input device */
-  private java.io.Reader yy_reader;
-
-  /** the current state of the DFA */
-  private int yy_state;
-
-  /** the current lexical state */
-  private int yy_lexical_state = YYINITIAL;
-
-  /** this buffer contains the current text to be matched and is
-      the source of the yytext() string */
-  private char yy_buffer[] = new char[16384];
-
-  /** the textposition at the last accepting state */
-  private int yy_markedPos;
-
-  /** the textposition at the last state to be included in yytext */
-  private int yy_pushbackPos;
-
-  /** the current text position in the buffer */
-  private int yy_currentPos;
-
-  /** startRead marks the beginning of the yytext() string in the buffer */
-  private int yy_startRead;
-
-  /** endRead marks the last character in the buffer, that has been read
-      from input */
-  private int yy_endRead;
-
-  /** number of newlines encountered up to the start of the matched text */
-// trivial hand edit to remove unused variable  private int yyline;
-
-  /** the number of characters up to the start of the matched text */
-  private int yychar;
-
-  /**
-   * the number of characters from the last newline up to the start of the 
-   * matched text
-   */
-//trivial hand edit to remove unused variable  private int yycolumn; 
-
-  /** 
-   * yy_atBOL == true <=> the scanner is currently at the beginning of a line
-   */
-  private boolean yy_atBOL;
-
-  /** yy_atEOF == true <=> the scanner has returned a value for EOF */
-  private boolean yy_atEOF;
-
-  /** denotes if the user-EOF-code has already been executed */
-  private boolean yy_eof_done;
-
-  /* user code: */
-
-
-
-	private boolean hasMore = true;
-	private final static int MAX_TO_SCAN = 8000;
-	StringBuffer string = new StringBuffer();
-	// state stack for easier state handling
-	private IntStack fStateStack = new IntStack();
-	private String valueText = null;
-
-
-	public JSPHeadTokenizer() {
-		super();
-	}
-
-	  public void reset (Reader in) {
-	  	/* the input device */
-	  	yy_reader = in;
-
-  		/* the current state of the DFA */
-  		yy_state = 0;
-
-  		/* the current lexical state */
-  		yy_lexical_state = YYINITIAL;
-
-  		/* this buffer contains the current text to be matched and is
-  		 the source of the yytext() string */
-  		java.util.Arrays.fill(yy_buffer, (char)0);
-
-  		/* the textposition at the last accepting state */
-  		yy_markedPos = 0;
-
-  		/* the textposition at the last state to be included in yytext */
-  		yy_pushbackPos = 0;
-
-  		/* the current text position in the buffer */
-  		yy_currentPos = 0;
-
-  		/* startRead marks the beginning of the yytext() string in the buffer */
-  		yy_startRead = 0;
-
-  		/**
-  		 * endRead marks the last character in the buffer, that has been read
-  		 * from input
-  		 */
-  		yy_endRead = 0;
-
-  		/* number of newlines encountered up to the start of the matched text */
-//  	 trivial hand edit to remove unused variable  yyline = 0;
-
-  		/* the number of characters up to the start of the matched text */
-  		yychar = 0;
-
-  		/**
-  		 * the number of characters from the last newline up to the start
-  		 * of the matched text
-  		 */
-//  	 trivial hand edit to remove unused variable    		yycolumn = 0;
-
-  		/**
-  		 * yy_atBOL == true <=> the scanner is currently at the beginning
-  		 * of a line
-  		 */
-  		yy_atBOL = false;
-
-  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-  		yy_atEOF = false;
-
-  		/* denotes if the user-EOF-code has already been executed */
-  		yy_eof_done = false;
-
-
-  		fStateStack.clear();
-
-  		hasMore = true;
-
-		// its a little wasteful to "throw away" first char array generated
-		// by class init (via auto generated code), but we really do want
-		// a small buffer for our head parsers.
-		if (yy_buffer.length != MAX_TO_SCAN) {
-			yy_buffer = new char[MAX_TO_SCAN];
-		}
-
-
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}
-
-
-
-
-  /**
-   * Creates a new scanner
-   * There is also a java.io.InputStream version of this constructor.
-   *
-   * @param   in  the java.io.Reader to read input from.
-   */
-  public JSPHeadTokenizer(java.io.Reader in) {
-    this.yy_reader = in;
-  }
-
-  /**
-   * Creates a new scanner.
-   * There is also java.io.Reader version of this constructor.
-   *
-   * @param   in  the java.io.Inputstream to read input from.
-   */
-  public JSPHeadTokenizer(java.io.InputStream in) {
-    this(new java.io.InputStreamReader(in));
-  }
-
-  /** 
-   * Unpacks the compressed character translation table.
-   *
-   * @param packed   the packed character translation table
-   * @return         the unpacked character translation table
-   */
-  private static char [] yy_unpack_cmap(String packed) {
-    char [] map = new char[0x10000];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
-    while (i < 182) {
-      int  count = packed.charAt(i++);
-      char value = packed.charAt(i++);
-      do map[j++] = value; while (--count > 0);
-    }
-    return map;
-  }
-
-
-  /**
-   * Gets the next input character.
-   *
-   * @return      the next character of the input stream, EOF if the
-   *              end of the stream is reached.
-   * @exception   IOException  if any I/O-Error occurs
-   */
-  private int yy_advance() throws java.io.IOException {
-
-    /* standard case */
-    if (yy_currentPos < yy_endRead) return yy_buffer[yy_currentPos++];
-
-    /* if the eof is reached, we don't need to work hard */ 
-    if (yy_atEOF) return YYEOF;
-
-    /* otherwise: need to refill the buffer */
-
-    /* first: make room (if you can) */
-    if (yy_startRead > 0) {
-      System.arraycopy(yy_buffer, yy_startRead, 
-                       yy_buffer, 0, 
-                       yy_endRead-yy_startRead);
-
-      /* translate stored positions */
-      yy_endRead-= yy_startRead;
-      yy_currentPos-= yy_startRead;
-      yy_markedPos-= yy_startRead;
-      yy_pushbackPos-= yy_startRead;
-      yy_startRead = 0;
-    }
-
-    /* is the buffer big enough? */
-    if (yy_currentPos >= yy_buffer.length) {
-      /* if not: blow it up */
-      char newBuffer[] = new char[yy_currentPos*2];
-      System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
-      yy_buffer = newBuffer;
-    }
-
-    /* finally: fill the buffer with new input */
-    int numRead = yy_reader.read(yy_buffer, yy_endRead, 
-                                            yy_buffer.length-yy_endRead);
-
-    if ( numRead == -1 ) return YYEOF;
-
-    yy_endRead+= numRead;
-
-    return yy_buffer[yy_currentPos++];
-  }
-
-
-  /**
-   * Closes the input stream.
-   */
-  final public void yyclose() throws java.io.IOException {
-    yy_atEOF = true;            /* indicate end of file */
-    yy_endRead = yy_startRead;  /* invalidate buffer    */
-    yy_reader.close();
-  }
-
-
-  /**
-   * Returns the current lexical state.
-   */
-  final public int yystate() {
-    return yy_lexical_state;
-  }
-
-  /**
-   * Enters a new lexical state
-   *
-   * @param newState the new lexical state
-   */
-  final public void yybegin(int newState) {
-    yy_lexical_state = newState;
-  }
-
-
-  /**
-   * Returns the text matched by the current regular expression.
-   */
-  final public String yytext() {
-    return new String( yy_buffer, yy_startRead, yy_markedPos-yy_startRead );
-  }
-
-  /**
-   * Returns the length of the matched text region.
-   */
-  final public int yylength() {
-    return yy_markedPos-yy_startRead;
-  }
-
-
-  /**
-   * Reports an error that occured while scanning.
-   *
-   * @param   errorCode  the code of the errormessage to display
-   */
-  private void yy_ScanError(int errorCode) {
-    try {
-      System.out.println(YY_ERROR_MSG[errorCode]);
-    }
-    catch (ArrayIndexOutOfBoundsException e) {
-      System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
-    }
-
-    System.exit(1);
-  } 
-
-
-  /**
-   * Pushes the specified amount of characters back into the input stream.
-   *
-   * They will be read again by then next call of the scanning method
-   *
-   * @param number  the number of characters to be read again.
-   *                This number must not be greater than yylength()!
-   */
-  private void yypushback(int number) {
-    if ( number > yylength() )
-      yy_ScanError(YY_PUSHBACK_2BIG);
-
-    yy_markedPos -= number;
-  }
-
-
-  /**
-   * Contains user EOF-code, which will be executed exactly once,
-   * when the end of file is reached
-   */
-  private void yy_do_eof() {
-    if (!yy_eof_done) {
-      yy_eof_done = true;
-    	hasMore=false;
-
-    }
-  }
-
-
-  /**
-   * Resumes scanning until the next regular expression is matched,
-   * the end of input is encountered or an I/O-Error occurs.
-   *
-   * @return      the next token
-   * @exception   IOException  if any I/O-Error occurs
-   */
-  public String primGetNextToken() throws java.io.IOException {
-    int yy_input;
-    int yy_action;
-
-
-    while (true) {
-
-      yychar+= yylength();
-
-      yy_atBOL = yy_markedPos <= 0 || yy_buffer[yy_markedPos-1] == '\n';
-      if (!yy_atBOL && yy_buffer[yy_markedPos-1] == '\r') {
-        yy_atBOL = yy_advance() != '\n';
-        if (!yy_atEOF) yy_currentPos--;
-      }
-
-      yy_action = -1;
-
-      yy_currentPos = yy_startRead = yy_markedPos;
-
-      if (yy_atBOL)
-        yy_state = YY_LEXSTATE[yy_lexical_state+1];
-      else
-        yy_state = YY_LEXSTATE[yy_lexical_state];
-
-
-      yy_forAction: {
-        while (true) {
-
-          yy_input = yy_advance();
-
-          if ( yy_input == YYEOF ) break yy_forAction;
-
-          yy_input = yycmap[yy_input];
-
-          boolean yy_isFinal = false;
-          boolean yy_noLookAhead = false;
-
-          yy_forNext: { switch (yy_state) {
-            case 0:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 9; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 12; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 1:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_state = 9; break yy_forNext;
-                case 2: yy_isFinal = true; yy_state = 10; break yy_forNext;
-                case 3: yy_isFinal = true; yy_state = 11; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 13; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 14; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 2:
-              switch (yy_input) {
-                case 11: yy_isFinal = true; yy_state = 15; break yy_forNext;
-                case 20: yy_isFinal = true; yy_state = 16; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 3:
-              switch (yy_input) {
-                case 14: yy_isFinal = true; yy_state = 17; break yy_forNext;
-                case 15: yy_isFinal = true; yy_state = 18; break yy_forNext;
-                case 17: yy_isFinal = true; yy_state = 19; break yy_forNext;
-                case 27: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                case 36: yy_isFinal = true; yy_state = 21; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
-              }
-
-            case 4:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 23; break yy_forNext;
-                case 7: yy_isFinal = true; yy_state = 24; break yy_forNext;
-                case 37: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-                case 38: yy_isFinal = true; yy_noLookAhead = true; yy_state = 26; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
-              }
-
-            case 5:
-              switch (yy_input) {
-                case 7: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                case 11: yy_isFinal = true; yy_state = 29; break yy_forNext;
-                case 15: yy_isFinal = true; yy_state = 30; break yy_forNext;
-                case 37: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
-                case 38: yy_isFinal = true; yy_state = 32; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-              }
-
-            case 6:
-              switch (yy_input) {
-                case 7: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                case 15: yy_isFinal = true; yy_state = 30; break yy_forNext;
-                case 38: yy_isFinal = true; yy_state = 33; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-              }
-
-            case 7:
-              switch (yy_input) {
-                case 11: 
-                case 15: yy_isFinal = true; yy_state = 30; break yy_forNext;
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 34; break yy_forNext;
-                case 37: yy_isFinal = true; yy_noLookAhead = true; yy_state = 35; break yy_forNext;
-                case 38: yy_isFinal = true; yy_state = 36; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-              }
-
-            case 9:
-              switch (yy_input) {
-                case 2: yy_isFinal = true; yy_noLookAhead = true; yy_state = 37; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 10:
-              switch (yy_input) {
-                case 1: yy_isFinal = true; yy_noLookAhead = true; yy_state = 38; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 11:
-              switch (yy_input) {
-                case 4: yy_state = 39; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 12:
-              switch (yy_input) {
-                case 15: yy_state = 40; break yy_forNext;
-                case 21: yy_state = 41; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 13:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 42; break yy_forNext;
-                case 10: yy_state = 43; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 14:
-              switch (yy_input) {
-                case 15: yy_state = 40; break yy_forNext;
-                case 21: yy_state = 41; break yy_forNext;
-                case 11: yy_state = 44; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 15:
-              switch (yy_input) {
-                case 33: yy_isFinal = true; yy_noLookAhead = true; yy_state = 45; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 16:
-              switch (yy_input) {
-                case 31: yy_state = 46; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 17:
-              switch (yy_input) {
-                case 18: yy_state = 47; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 18:
-              switch (yy_input) {
-                case 33: yy_isFinal = true; yy_noLookAhead = true; yy_state = 48; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 19:
-              switch (yy_input) {
-                case 18: yy_state = 49; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 20:
-              switch (yy_input) {
-                case 32: yy_state = 50; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 21:
-              switch (yy_input) {
-                case 33: yy_isFinal = true; yy_noLookAhead = true; yy_state = 51; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 23:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 23; break yy_forNext;
-                case 7: yy_state = 52; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
-              }
-
-            case 24:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 23; break yy_forNext;
-                case 7: yy_state = 52; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
-              }
-
-            case 29:
-              switch (yy_input) {
-                case 33: yy_isFinal = true; yy_noLookAhead = true; yy_state = 53; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 30:
-              switch (yy_input) {
-                case 33: yy_isFinal = true; yy_noLookAhead = true; yy_state = 54; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 32:
-              switch (yy_input) {
-                case 10: yy_state = 55; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 33:
-              switch (yy_input) {
-                case 10: yy_state = 55; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 36:
-              switch (yy_input) {
-                case 10: yy_state = 55; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 39:
-              switch (yy_input) {
-                case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 56; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 40:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 40; break yy_forNext;
-                case 16: yy_state = 57; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 41:
-              switch (yy_input) {
-                case 22: yy_state = 58; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 42:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 42; break yy_forNext;
-                case 10: yy_state = 43; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 43:
-              switch (yy_input) {
-                case 11: yy_state = 44; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 44:
-              switch (yy_input) {
-                case 12: yy_state = 59; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 46:
-              switch (yy_input) {
-                case 27: yy_state = 60; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 47:
-              switch (yy_input) {
-                case 31: yy_state = 61; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 49:
-              switch (yy_input) {
-                case 19: yy_state = 62; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 50:
-              switch (yy_input) {
-                case 31: yy_state = 63; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 52:
-              switch (yy_input) {
-                case 6: 
-                case 9: yy_isFinal = true; yy_state = 23; break yy_forNext;
-                case 7: yy_state = 52; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
-              }
-
-            case 55:
-              switch (yy_input) {
-                case 38: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 57:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 57; break yy_forNext;
-                case 17: yy_state = 64; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 58:
-              switch (yy_input) {
-                case 17: yy_state = 65; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 59:
-              switch (yy_input) {
-                case 13: yy_state = 66; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 60:
-              switch (yy_input) {
-                case 32: yy_state = 67; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 61:
-              switch (yy_input) {
-                case 19: yy_state = 68; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 62:
-              switch (yy_input) {
-                case 20: yy_state = 69; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 63:
-              switch (yy_input) {
-                case 28: yy_state = 70; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 64:
-              switch (yy_input) {
-                case 18: yy_state = 71; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 65:
-              switch (yy_input) {
-                case 23: yy_state = 72; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 66:
-              switch (yy_input) {
-                case 14: yy_state = 73; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 67:
-              switch (yy_input) {
-                case 24: yy_state = 74; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 68:
-              switch (yy_input) {
-                case 34: yy_state = 75; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 69:
-              switch (yy_input) {
-                case 20: yy_state = 76; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 70:
-              switch (yy_input) {
-                case 20: yy_state = 77; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 71:
-              switch (yy_input) {
-                case 19: yy_state = 78; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 72:
-              switch (yy_input) {
-                case 24: yy_state = 79; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 73:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 80; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 74:
-              switch (yy_input) {
-                case 25: yy_state = 81; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 75:
-              switch (yy_input) {
-                case 18: yy_state = 82; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 76:
-              switch (yy_input) {
-                case 31: yy_state = 83; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 77:
-              switch (yy_input) {
-                case 31: yy_state = 84; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 78:
-              switch (yy_input) {
-                case 20: yy_state = 85; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 79:
-              switch (yy_input) {
-                case 25: yy_state = 86; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 80:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 80; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 81:
-              switch (yy_input) {
-                case 31: yy_state = 87; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 82:
-              switch (yy_input) {
-                case 19: yy_state = 88; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 83:
-              switch (yy_input) {
-                case 27: yy_state = 89; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 84:
-              switch (yy_input) {
-                case 28: yy_state = 90; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 85:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 91; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 86:
-              switch (yy_input) {
-                case 26: yy_state = 92; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 87:
-              switch (yy_input) {
-                case 19: yy_state = 93; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 88:
-              switch (yy_input) {
-                case 20: yy_state = 94; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 89:
-              switch (yy_input) {
-                case 32: yy_state = 95; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 90:
-              switch (yy_input) {
-                case 28: yy_state = 96; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 91:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 91; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 92:
-              switch (yy_input) {
-                case 20: yy_state = 97; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 93:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 93; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 98; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 94:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 94; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 99; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 95:
-              switch (yy_input) {
-                case 24: yy_state = 100; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 96:
-              switch (yy_input) {
-                case 35: yy_state = 101; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 97:
-              switch (yy_input) {
-                case 27: yy_state = 102; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 98:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 98; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 99:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 99; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 100:
-              switch (yy_input) {
-                case 25: yy_state = 103; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 101:
-              switch (yy_input) {
-                case 17: yy_state = 104; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 102:
-              switch (yy_input) {
-                case 28: yy_state = 105; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 103:
-              switch (yy_input) {
-                case 31: yy_state = 106; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 104:
-              switch (yy_input) {
-                case 20: yy_state = 107; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 105:
-              switch (yy_input) {
-                case 25: yy_state = 108; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 106:
-              switch (yy_input) {
-                case 19: yy_state = 109; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 107:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 107; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 110; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 108:
-              switch (yy_input) {
-                case 29: yy_state = 111; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 109:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_state = 109; break yy_forNext;
-                case 8: yy_isFinal = true; yy_state = 112; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 110:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 110; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 111:
-              switch (yy_input) {
-                case 20: yy_state = 113; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 112:
-              switch (yy_input) {
-                case 6: 
-                case 7: 
-                case 9: yy_isFinal = true; yy_state = 112; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 113:
-              switch (yy_input) {
-                case 30: yy_state = 114; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 114:
-              switch (yy_input) {
-                case 17: yy_state = 64; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            default:
-              yy_ScanError(YY_ILLEGAL_STATE);
-              break;
-          } }
-
-          if ( yy_isFinal ) {
-            yy_action = yy_state; 
-            yy_markedPos = yy_currentPos; 
-            if ( yy_noLookAhead ) break yy_forAction;
-          }
-
-        }
-      }
-
-
-      switch (yy_action) {    
-
-        case 33: 
-          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }
-        case 116: break;
-        case 28: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 117: break;
-        case 22: 
-        case 23: 
-          {  yypushback(1); yybegin(UnDelimitedString); string.setLength(0); }
-        case 118: break;
-        case 35: 
-        case 36: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; }
-        case 119: break;
-        case 48: 
-          {  yybegin(YYINITIAL);  return JSPHeadTokenizerConstants.PageDirectiveEnd; }
-        case 120: break;
-        case 51: 
-          {  yybegin(YYINITIAL); return JSPHeadTokenizerConstants.PageDirectiveEnd; }
-        case 121: break;
-        case 53: 
-          {  yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 122: break;
-        case 54: 
-          {  yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 123: break;
-        case 80: 
-          { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;} }
-        case 124: break;
-        case 8: 
-        case 9: 
-        case 10: 
-        case 11: 
-        case 12: 
-        case 13: 
-        case 14: 
-        case 15: 
-        case 16: 
-        case 17: 
-        case 18: 
-        case 19: 
-        case 20: 
-        case 21: 
-        case 24: 
-          { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} }
-        case 125: break;
-        case 91: 
-          { yybegin(ST_PAGE_DIRECTIVE); return JSPHeadTokenizerConstants.PageDirectiveStart; }
-        case 126: break;
-        case 45: 
-          { yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd; }
-        case 127: break;
-        case 112: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageEncoding; }
-        case 128: break;
-        case 110: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageContentType; }
-        case 129: break;
-        case 99: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageLanguage; }
-        case 130: break;
-        case 98: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; }
-        case 131: break;
-        case 56: 
-          { hasMore = false; return EncodingParserConstants.UTF83ByteBOM; }
-        case 132: break;
-        case 37: 
-          { hasMore = false; return EncodingParserConstants.UTF16BE; }
-        case 133: break;
-        case 38: 
-          { hasMore = false; return EncodingParserConstants.UTF16LE; }
-        case 134: break;
-        case 31: 
-          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;  }
-        case 135: break;
-        case 27: 
-        case 29: 
-        case 30: 
-        case 32: 
-          {  string.append( yytext() );  }
-        case 136: break;
-        case 26: 
-          {  yybegin(SQ_STRING); string.setLength(0);  }
-        case 137: break;
-        case 25: 
-          {  yybegin(DQ_STRING); string.setLength(0);  }
-        case 138: break;
-        case 34: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
-        case 139: break;
-        default: 
-          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-            yy_atEOF = true;
-            yy_do_eof();
-              { hasMore = false; return EncodingParserConstants.EOF; }
-          } 
-          else {
-            yy_ScanError(YY_NO_MATCH);
-          }
-      }
-    }
-  }    
-
-  /**
-   * Runs the scanner on input files.
-   *
-   * This main method is the debugging routine for the scanner.
-   * It prints each returned token to System.out until the end of
-   * file is reached, or an error occured.
-   *
-   * @param argv   the command line, contains the filenames to run
-   *               the scanner on.
-   */
-  public static void main(String argv[]) {
-    for (int i = 0; i < argv.length; i++) {
-      JSPHeadTokenizer scanner = null;
-      try {
-        scanner = new JSPHeadTokenizer( new java.io.FileReader(argv[i]) );
-      }
-      catch (java.io.FileNotFoundException e) {
-        System.out.println("File not found : \""+argv[i]+"\"");
-//        System.exit(1);
-      }
-//      catch (java.io.IOException e) {
-//        System.out.println("Error opening file \""+argv[i]+"\"");
-//        System.exit(1);
-//      }
-      catch (ArrayIndexOutOfBoundsException e) {
-        System.out.println("Usage : java JSPHeadTokenizer <inputfile>");
-       //System.exit(1);
-      }
-
-      try {
-        do {
-          System.out.println(scanner.primGetNextToken());
-        } while (!scanner.yy_atEOF);
-
-      }
-      catch (java.io.IOException e) {
-        System.out.println("An I/O error occured while scanning :");
-        System.out.println(e);
-        //System.exit(1);
-      }
-      catch (Exception e) {
-        e.printStackTrace();
-        //System.exit(1);
-      }
-    }
-  }
-
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizerConstants.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizerConstants.java
deleted file mode 100644
index 08fa5b9..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizerConstants.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contenttype;
-
-import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
-
-public interface JSPHeadTokenizerConstants extends XMLHeadTokenizerConstants {
-	String PageDirectiveStart = "PageDirectiveStart"; //$NON-NLS-1$
-	String PageDirectiveEnd = "PageDirectiveEnd"; //$NON-NLS-1$
-	String PageLanguage = "PageLanguage"; //$NON-NLS-1$
-	String PageEncoding = "PageEncoding"; //$NON-NLS-1$
-	String PageContentType = "PageContentType"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPResourceEncodingDetector.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPResourceEncodingDetector.java
deleted file mode 100644
index 133b892..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPResourceEncodingDetector.java
+++ /dev/null
@@ -1,473 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.contenttype;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.nio.charset.Charset;
-import java.nio.charset.IllegalCharsetNameException;
-import java.nio.charset.UnsupportedCharsetException;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.sse.core.internal.encoding.CodedIO;
-import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector;
-import org.eclipse.wst.sse.core.internal.encoding.NonContentBasedEncodingRules;
-import org.eclipse.wst.sse.core.internal.encoding.util.ByteReader;
-import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
-import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
-
-public class JSPResourceEncodingDetector implements IResourceCharsetDetector {
-
-	private String fCharset;
-
-	private String fContentType;
-
-	private String fContentTypeValue;
-
-	private String fLanguage;
-
-	private String fPageEncodingValue;
-
-	private JSPHeadTokenizer fTokenizer;
-
-	private String fXMLDecEncodingName;
-
-	private boolean unicodeCase;
-
-	private EncodingMemento fEncodingMemento;
-
-	private boolean fHeaderParsed;
-
-	private Reader fReader;
-
-
-	/**
-	 * No Arg constructor.
-	 */
-	public JSPResourceEncodingDetector() {
-		super();
-	}
-
-	class NullMemento extends EncodingMemento {
-		/**
-		 * 
-		 */
-		public NullMemento() {
-			super();
-			String defaultCharset = NonContentBasedEncodingRules.useDefaultNameRules(null);
-			setJavaCharsetName(defaultCharset);
-			setAppropriateDefault(defaultCharset);
-			setDetectedCharsetName(null);
-		}
-
-	}
-
-	/**
-	 * @return Returns the contentType.
-	 */
-	public String getContentType() throws IOException {
-		ensureInputSet();
-		if (!fHeaderParsed) {
-			parseInput();
-			// we keep track of if header's already been parse, so can make
-			// multiple 'get' calls, without causing reparsing.
-			fHeaderParsed = true;
-			// Note: there is a "hidden assumption" here that an empty
-			// string in content should be treated same as not present.
-		}
-		return fContentType;
-	}
-
-	public String getEncoding() throws IOException {
-		return getEncodingMemento().getDetectedCharsetName();
-	}
-
-	// to ensure consist overall rules used, we'll mark as
-	// final,
-	// and require subclasses to provide certain pieces of
-	// the
-	// implementation
-	public EncodingMemento getEncodingMemento() throws IOException {
-		ensureInputSet();
-		if (!fHeaderParsed) {
-			parseInput();
-			// we keep track of if header's already been
-			// parse, so can make
-			// multiple 'get' calls, without causing
-			// reparsing.
-			fHeaderParsed = true;
-			// Note: there is a "hidden assumption" here
-			// that an empty
-			// string in content should be treated same as
-			// not present.
-		}
-		if (fEncodingMemento == null) {
-			handleSpecDefault();
-		}
-		if (fEncodingMemento == null) {
-			// safty net
-			fEncodingMemento = new NullMemento();
-		}
-		return fEncodingMemento;
-	}
-
-	public String getLanguage() throws IOException {
-		ensureInputSet();
-		if (!fHeaderParsed) {
-			parseInput();
-			fHeaderParsed = true;
-		}
-		return fLanguage;
-	}
-
-	public String getSpecDefaultEncoding() {
-		// by JSP Spec
-		final String enc = "ISO-8859-1"; //$NON-NLS-1$
-		return enc;
-	}
-
-	public EncodingMemento getSpecDefaultEncodingMemento() {
-		resetAll();
-		EncodingMemento result = null;
-		String enc = getSpecDefaultEncoding();
-		if (enc != null) {
-			createEncodingMemento(enc, EncodingMemento.DEFAULTS_ASSUMED_FOR_EMPTY_INPUT);
-			fEncodingMemento.setAppropriateDefault(enc);
-			result = fEncodingMemento;
-		}
-		return result;
-	}
-
-	/**
-	 * 
-	 */
-	public void set(InputStream inputStream) {
-		resetAll();
-		fReader = new ByteReader(inputStream);
-		try {
-			fReader.mark(CodedIO.MAX_MARK_SIZE);
-		}
-		catch (IOException e) {
-			// impossible, since we know ByteReader
-			// supports marking
-			throw new Error(e);
-		}
-	}
-
-	/**
-	 * 
-	 */
-	public void set(IStorage iStorage) throws CoreException {
-		resetAll();
-		InputStream inputStream = iStorage.getContents();
-		InputStream resettableStream = new BufferedInputStream(inputStream, CodedIO.MAX_BUF_SIZE);
-		resettableStream.mark(CodedIO.MAX_MARK_SIZE);
-		set(resettableStream);
-		// TODO we'll need to "remember" IFile, or
-		// get its (or its project's) settings, in case
-		// those are needed to handle cases when the
-		// encoding is not in the file stream.
-	}
-
-	/**
-	 * Note: this is not part of interface to help avoid confusion ... it
-	 * expected this Reader is a well formed character reader ... that is, its
-	 * all ready been determined to not be a unicode marked input stream. And,
-	 * its assumed to be in the correct position, at position zero, ready to
-	 * read first character.
-	 */
-	public void set(Reader reader) {
-		resetAll();
-		fReader = reader;
-		if (!fReader.markSupported()) {
-			fReader = new BufferedReader(fReader);
-		}
-		try {
-			fReader.mark(CodedIO.MAX_MARK_SIZE);
-		}
-		catch (IOException e) {
-			// impossble, since we just checked if markable
-			throw new Error(e);
-		}
-	}
-
-	private boolean canHandleAsUnicodeStream(String tokenType) {
-		boolean canHandleAsUnicode = false;
-		if (tokenType == EncodingParserConstants.UTF83ByteBOM) {
-			canHandleAsUnicode = true;
-			String enc = "UTF-8"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-			fEncodingMemento.setUTF83ByteBOMUsed(true);
-		}
-		else if (tokenType == EncodingParserConstants.UTF16BE) {
-			canHandleAsUnicode = true;
-			String enc = "UTF-16BE"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-		}
-		else if (tokenType == EncodingParserConstants.UTF16LE) {
-			canHandleAsUnicode = true;
-			String enc = "UTF-16"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-		}
-		return canHandleAsUnicode;
-	}
-
-	/**
-	 * Note: once this instance is created, trace info still needs to be
-	 * appended by caller, depending on the context its created.
-	 */
-	private void createEncodingMemento(String detectedCharsetName) {
-		fEncodingMemento = new EncodingMemento();
-		fEncodingMemento.setJavaCharsetName(getAppropriateJavaCharset(detectedCharsetName));
-		fEncodingMemento.setDetectedCharsetName(detectedCharsetName);
-		// TODO: if detectedCharset and spec default is
-		// null, need to use "work
-		// bench based" defaults.
-		fEncodingMemento.setAppropriateDefault(getSpecDefaultEncoding());
-	}
-
-	/**
-	 * There can sometimes be mulitple 'encodings' specified in a file. This
-	 * is an attempt to centralize the rules for deciding between them.
-	 * Returns encoding according to priority: 1. XML Declaration 2. page
-	 * directive pageEncoding name 3. page directive contentType charset name
-	 */
-	private String getAppropriateEncoding() {
-		String result = null;
-		if (fXMLDecEncodingName != null)
-			result = fXMLDecEncodingName;
-		else if (fPageEncodingValue != null)
-			result = fPageEncodingValue;
-		else if (fCharset != null)
-			result = fCharset;
-		return result;
-	}
-
-	/**
-	 * This method can return null, if invalid charset name (in which case
-	 * "appropriateDefault" should be used, if a name is really need for some
-	 * "save anyway" cases).
-	 * 
-	 * @param detectedCharsetName
-	 * @return
-	 */
-	private String getAppropriateJavaCharset(String detectedCharsetName) {
-		String result = null;
-		// 1. Check explicit mapping overrides from
-		// property file -- its here we pick up "rules" for cases
-		// that are not even in Java
-		result = CodedIO.checkMappingOverrides(detectedCharsetName);
-		// 2. Use the "canonical" name from JRE mappings
-		// Note: see Charset JavaDoc, the name you get one
-		// with can be alias,
-		// the name you get back is "standard" name.
-		Charset javaCharset = null;
-		try {
-			javaCharset = Charset.forName(detectedCharsetName);
-		}
-		catch (UnsupportedCharsetException e) {
-			// only set invalid, if result is same as detected -- they won't
-			// be equal if
-			// overridden
-			if (result != null && result.equals(detectedCharsetName)) {
-				fEncodingMemento.setInvalidEncoding(detectedCharsetName);
-			}
-		}
-		catch (IllegalCharsetNameException e) {
-			// only set invalid, if result is same as detected -- they won't
-			// be equal if
-			// overridden
-			if (result != null && result.equals(detectedCharsetName)) {
-				fEncodingMemento.setInvalidEncoding(detectedCharsetName);
-			}
-		}
-		// give priority to java cononical name, if present
-		if (javaCharset != null) {
-			result = javaCharset.name();
-			// but still allow overrides
-			result = CodedIO.checkMappingOverrides(result);
-		}
-		return result;
-	}
-
-	private JSPHeadTokenizer getTokinizer() {
-		if (fTokenizer == null) {
-			fTokenizer = new JSPHeadTokenizer();
-		}
-		return fTokenizer;
-	}
-
-	private void handleSpecDefault() {
-		String encodingName;
-		encodingName = getSpecDefaultEncoding();
-		if (encodingName != null) {
-			// createEncodingMemento(encodingName,
-			// EncodingMemento.USED_CONTENT_TYPE_DEFAULT);
-			fEncodingMemento = new EncodingMemento();
-			fEncodingMemento.setJavaCharsetName(encodingName);
-			fEncodingMemento.setAppropriateDefault(encodingName);
-		}
-	}
-
-	private boolean isLegalString(String valueTokenType) {
-		boolean result = false;
-		if (valueTokenType != null) {
-			result = valueTokenType.equals(EncodingParserConstants.StringValue) || valueTokenType.equals(EncodingParserConstants.UnDelimitedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTerminatedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue);
-		}
-		return result;
-	}
-
-	private void parseContentTypeValue(String contentType) {
-		Pattern pattern = Pattern.compile(";\\s*charset\\s*=\\s*"); //$NON-NLS-1$
-		String[] parts = pattern.split(contentType);
-		if (parts.length > 0) {
-			// if only one item, it can still be charset instead of
-			// contentType
-			if (parts.length == 1) {
-				if (parts[0].length() > 6) {
-					String checkForCharset = parts[0].substring(0, 7);
-					if (checkForCharset.equalsIgnoreCase("charset")) { //$NON-NLS-1$
-						int eqpos = parts[0].indexOf('=');
-						eqpos = eqpos + 1;
-						if (eqpos < parts[0].length()) {
-							fCharset = parts[0].substring(eqpos);
-							fCharset = fCharset.trim();
-						}
-					}
-				}
-			}
-			else {
-				fContentType = parts[0];
-			}
-		}
-		if (parts.length > 1) {
-			fCharset = parts[1];
-		}
-	}
-
-	/**
-	 * Looks for what ever encoding properties the tokenizer returns. Its the
-	 * responsibility of the tokenizer to stop when appropriate and not go too
-	 * far.
-	 */
-	private void parseHeader(JSPHeadTokenizer tokenizer) throws IOException {
-		fPageEncodingValue = null;
-		fCharset = null;
-
-		HeadParserToken token = null;
-		do {
-			// don't use 'get' here (at least until reset issue fixed)
-			token = tokenizer.getNextToken();
-			String tokenType = token.getType();
-			if (canHandleAsUnicodeStream(tokenType))
-				unicodeCase = true;
-			else {
-
-				if (tokenType == XMLHeadTokenizerConstants.XMLDelEncoding) {
-					if (tokenizer.hasMoreTokens()) {
-						HeadParserToken valueToken = tokenizer.getNextToken();
-						String valueTokenType = valueToken.getType();
-						if (isLegalString(valueTokenType)) {
-							fXMLDecEncodingName = valueToken.getText();
-						}
-					}
-				}
-				else if (tokenType == JSPHeadTokenizerConstants.PageEncoding) {
-					if (tokenizer.hasMoreTokens()) {
-						HeadParserToken valueToken = tokenizer.getNextToken();
-						String valueTokenType = valueToken.getType();
-						if (isLegalString(valueTokenType)) {
-							fPageEncodingValue = valueToken.getText();
-						}
-					}
-				}
-				else if (tokenType == JSPHeadTokenizerConstants.PageContentType) {
-					if (tokenizer.hasMoreTokens()) {
-						HeadParserToken valueToken = tokenizer.getNextToken();
-						String valueTokenType = valueToken.getType();
-						if (isLegalString(valueTokenType)) {
-							fContentTypeValue = valueToken.getText();
-						}
-					}
-				}
-				else if (tokenType == JSPHeadTokenizerConstants.PageLanguage) {
-					if (tokenizer.hasMoreTokens()) {
-						HeadParserToken valueToken = tokenizer.getNextToken();
-						String valueTokenType = valueToken.getType();
-						if (isLegalString(valueTokenType)) {
-							fLanguage = valueToken.getText();
-						}
-					}
-				}
-			}
-		}
-		while (tokenizer.hasMoreTokens());
-		if (fContentTypeValue != null) {
-			parseContentTypeValue(fContentTypeValue);
-		}
-
-	}
-
-	private void parseInput() throws IOException {
-		JSPHeadTokenizer tokenizer = getTokinizer();
-		fReader.reset();
-		tokenizer.reset(fReader);
-		parseHeader(tokenizer);
-		// unicode stream cases are created directly in parseHeader
-		if (!unicodeCase) {
-			String enc = getAppropriateEncoding();
-			if (enc != null && enc.length() > 0) {
-				createEncodingMemento(enc, EncodingMemento.FOUND_ENCODING_IN_CONTENT);
-			}
-		}
-	}
-
-	/**
-	 * 
-	 */
-	private void resetAll() {
-		fReader = null;
-		fHeaderParsed = false;
-		fEncodingMemento = null;
-		fCharset = null;
-		fContentTypeValue = null;
-		fPageEncodingValue = null;
-		fXMLDecEncodingName = null;
-		unicodeCase = false;
-	}
-
-
-
-	/**
-	 * convience method all subclasses can use (but not override)
-	 * 
-	 * @param detectedCharsetName
-	 * @param reason
-	 */
-	private void createEncodingMemento(String detectedCharsetName, String reason) {
-		createEncodingMemento(detectedCharsetName);
-	}
-
-	/**
-	 * convience method all subclasses can use (but not override)
-	 */
-	private void ensureInputSet() {
-		if (fReader == null) {
-			throw new IllegalStateException("input must be set before use"); //$NON-NLS-1$
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/DocumentFactoryForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/DocumentFactoryForJSP.java
deleted file mode 100644
index d0050e2..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/DocumentFactoryForJSP.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.document;
-
-import org.eclipse.core.filebuffers.IDocumentFactory;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-import org.eclipse.wst.sse.core.internal.ltk.parser.TagMarker;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-
-
-public class DocumentFactoryForJSP implements IDocumentFactory {
-
-	public DocumentFactoryForJSP() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.filebuffers.IDocumentFactory#createDocument()
-	 */
-	public IDocument createDocument() {
-		IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(new JSPSourceParser());
-		return structuredDocument;
-	}
-
-	public RegionParser getParser() {
-		// remember, the Loader
-		// will need to finish initialization of parser
-		// based on "embedded content"
-		JSPSourceParser parser = new JSPSourceParser();
-		// add default nestable tag list
-		addNestablePrefix(parser, JSP11Namespace.JSP_TAG_PREFIX);
-		return parser;
-	}
-
-	private void addNestablePrefix(JSPSourceParser parser, String tagName) {
-		TagMarker bm = new TagMarker(tagName);
-		parser.addNestablePrefix(bm);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapter.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapter.java
deleted file mode 100644
index d787f9e..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapter.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.document;
-
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.ui.internal.provisional.contentproperties.IContentSettingsListener;
-
-/**
- * Classes which implement this interface have two responsibilities. 
- * One is to provide
- * and embedded factory registry for JSP Aware INodeAdapter Factories
- * to use. The other is to monitor page directives and if 
- * a change in embedded type is is made, it will signal 
- * the structuredModel that it needs to reinitialize itself.
- */
-public interface PageDirectiveAdapter extends INodeAdapter, IContentSettingsListener {
-
-	public String getContentType();
-
-	public String getLanguage();
-
-	/**
-	 * This setter method should be called once, shortly after
-	 * initialization.
-	 */
-	void setEmbeddedType(EmbeddedTypeHandler handler);
-
-	EmbeddedTypeHandler getEmbeddedType();
-
-	/**
-	 * This method is to give this adapter a chance to use
-	 * the AdapterFactores from the EmbeddedTypeHandler
-	 * to adapt the node. Its to be used by JSPAwareAdapterFactories
-	 * to (potentially) adapt nodes from the embedded content type.
-	 */
-	INodeAdapter adapt(INodeNotifier notifier, Object type);
-
-	void addEmbeddedFactory(INodeAdapterFactory factory);
-
-	/**
-	 * Method setLanguage.
-	 * @param language
-	 */
-	void setLanguage(String language);
-
-	INodeNotifier getTarget();
-
-	public void release(Object key);
-
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterFactory.java
deleted file mode 100644
index 61a13f1..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterFactory.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.document;
-
-import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.ui.internal.provisional.contentproperties.ContentSettingsChangeSubject;
-import org.eclipse.wst.sse.ui.internal.util.Assert;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Node;
-
-/**
- * This class adapts document 
- * with the an instance of PageDirectiveAdapter
- */
-public class PageDirectiveAdapterFactory extends AbstractAdapterFactory implements INodeAdapterFactory {
-
-
-	private PageDirectiveAdapter pageDirectiveAdapterInstance = null;
-
-	/**
-	 * Constructor for PageDirectiveAdapterFactory.
-	 * Note: its important not to be a singleton, since
-	 * this factory needs to track its adapter(s) and release
-	 * them when they are released.
-	 * 
-	 * @param adapterKey
-	 * @param registerAdapters
-	 */
-	protected PageDirectiveAdapterFactory(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	/**
-	 * The no argument constructor assumes its a 
-	 * Factory for PageDirectiveAdapter
-	 */
-	public PageDirectiveAdapterFactory() {
-		this(PageDirectiveAdapter.class, true);
-	}
-
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		PageDirectiveAdapter result = null;
-		if (target instanceof IDOMNode) {
-			IDOMNode node = (IDOMNode) target;
-			if (node.getNodeType() == Node.DOCUMENT_NODE) {
-				result = getAdapterInstance(target);
-				ContentSettingsChangeSubject.getSubject().addListener(result);
-
-			}
-
-		}
-		return result;
-	}
-
-	public void release() {
-		if (pageDirectiveAdapterInstance != null) {
-			ContentSettingsChangeSubject.getSubject().removeListener(pageDirectiveAdapterInstance);
-		}
-	}
-
-	/**
-	 * We assume this is only called for 'document' target
-	 */
-	protected PageDirectiveAdapter getAdapterInstance(INodeNotifier target) {
-		// if our instance already exists with a different
-		// target, then, somehow, the document node must 
-		// have changed for a model, so we should release 
-		// old adapter and create new one for new document 
-		// node. This is probably a programming error.
-		if (pageDirectiveAdapterInstance != null) {
-			if (target != pageDirectiveAdapterInstance.getTarget()) {
-				release();
-				pageDirectiveAdapterInstance = new PageDirectiveAdapterImpl(target);
-			}
-			// else return the one we have
-		}
-		else {
-			// if is equal to null, create a new one
-			pageDirectiveAdapterInstance = new PageDirectiveAdapterImpl(target);
-		}
-		Assert.isNotNull(pageDirectiveAdapterInstance);
-		return pageDirectiveAdapterInstance;
-	}
-
-	public INodeAdapterFactory copy() {
-
-		return new PageDirectiveAdapterFactory(this.adapterKey, this.shouldRegisterAdapter);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterImpl.java
deleted file mode 100644
index aa4f1ed..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterImpl.java
+++ /dev/null
@@ -1,612 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.document;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-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.Path;
-import org.eclipse.jface.text.IDocumentExtension3;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jst.jsp.core.internal.modelhandler.EmbeddedTypeStateData;
-import org.eclipse.jst.jsp.core.internal.text.StructuredTextPartitionerForJSP;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.internal.modelhandler.EmbeddedTypeRegistry;
-import org.eclipse.wst.sse.core.internal.modelhandler.EmbeddedTypeRegistryImpl;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-/**
- * This class has the responsibility to provide 
- * an embedded factory registry for JSP Aware INodeAdapter Factories
- * to use. 
- * 
- * Typically, the embedded type is to be considered a feature of 
- * the document, so JSP Aware AdpaterFactories should call
- * getAdapter(PageDirectiveAdapter.class) directoy on the document
- * (or owning document) node.
- */
-public class PageDirectiveAdapterImpl implements PageDirectiveAdapter {
-
-	protected static final String STR_CHARSET = "charset"; //$NON-NLS-1$
-	private final static Object adapterType = PageDirectiveAdapter.class;
-	private IStructuredModel model;
-	protected final String[] JAVASCRIPT_LANGUAGE_KEYS = new String[]{"javascript", "javascript1.0", "javascript1.1_3", "javascript1.2", "javascript1.3", "javascript1.4", "javascript1.5", "javascript1.6", "jscript", "sashscript"}; //$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$
-	protected final String[] JAVA_LANGUAGE_KEYS = new String[]{"java"}; //$NON-NLS-1$
-
-	/**
-	 * Constructor for PageDirectiveAdapterImpl.
-	 */
-	public PageDirectiveAdapterImpl(INodeNotifier target) {
-		super();
-		notifierAtCreation = target;
-		// we need to remember our instance of model, 
-		// in case we need to "signal" a re-init needed.
-		if (target instanceof IDOMNode) {
-			IDOMNode node = (IDOMNode) target;
-			model = node.getModel();
-		}
-
-	}
-
-	/**
-	 * parses the full contentType value into its two parts
-	 * the contentType, and the charset, if present. Note: this 
-	 * method is a lightly modified version of a method in AbstractHeadParser.
-	 * There, we're mostly interested in the charset part of contentTypeValue. 
-	 * Here, we're mostly interested in the mimeType part.
-	 */
-	private String getMimeTypeFromContentTypeValue(String contentTypeValue) {
-		if (contentTypeValue == null)
-			return null;
-		String cleanContentTypeValue = StringUtils.stripNonLetterDigits(contentTypeValue);
-		StringTokenizer tokenizer = new StringTokenizer(cleanContentTypeValue, ";= \t\n\r\f"); //$NON-NLS-1$
-		int tLen = tokenizer.countTokens();
-		// if contains encoding should have three tokens, the mimetype, the word 'charset', and the encoding value
-		String[] tokens = new String[tLen];
-		int j = 0;
-		while (tokenizer.hasMoreTokens()) {
-			tokens[j] = tokenizer.nextToken();
-			j++;
-		}
-		// 
-		// Following is the common form for target expression		
-		// <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-		// But apparrently is also valid without the content type there, 
-		// just the charset, as follows:
-		// <META http-equiv="Content-Type" content="charset=UTF-8">
-		// So we'll loop through tokens and key off of 'charset'
-
-		int charsetPos = -1;
-		for (int i = 0; i < tokens.length; i++) {
-			if (tokens[i].equalsIgnoreCase(STR_CHARSET)) {
-				charsetPos = i;
-				break;
-			}
-		}
-		//String charset = null;
-		String contentType = null;
-		if (charsetPos > -1) {
-			// case where charset was present
-			//			int charsetValuePos = charsetPos + 1;
-			//			if (charsetValuePos < tokens.length) {
-			//				charset = tokens[charsetValuePos];
-			//			}
-			int contentTypeValuePos = charsetPos - 1;
-			if (contentTypeValuePos > -1) {
-				contentType = tokens[contentTypeValuePos];
-			}
-		}
-		else {
-			// charset was not present, so if there's 
-			// a value, we assume its the contentType value
-			if (tokens.length > 0) {
-				contentType = tokens[0];
-			}
-		}
-		return contentType;
-	}
-
-	private EmbeddedTypeHandler embeddedTypeHandler;
-	private List embeddedFactoryRegistry = new ArrayList();
-	private String cachedLanguage;
-	private String cachedContentType;
-	private INodeNotifier notifierAtCreation;
-
-	private int firstLanguagePosition = -1;
-	private int firstContentTypePosition = -1;
-
-	private boolean reinitializing;
-
-	/*
-	 * @see INodeAdapter#isAdapterForType(Object)
-	 */
-	public boolean isAdapterForType(Object type) {
-		return (type == adapterType);
-	}
-
-	/*
-	 * @see INodeAdapter#notifyChanged(INodeNotifier, int, Object, Object, Object, int)
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	public void setEmbeddedType(EmbeddedTypeHandler handler) {
-		// if really the same handler, no need for further processing
-		if (embeddedTypeHandler == handler) {
-			return;
-		}
-		// then one exists, and the new one is truely different, so we need to 
-		// release and remove current factories
-		if (embeddedTypeHandler != null) {
-			Iterator list = embeddedFactoryRegistry.iterator();
-			while (list.hasNext()) {
-				INodeAdapterFactory factory = (INodeAdapterFactory) list.next();
-				factory.release();
-			}
-
-			embeddedFactoryRegistry.clear();
-		}
-
-		embeddedTypeHandler = handler;
-		// when the handler is set, "transfer" its factories to our own list.
-		// note: our own list may also be added to else where, such as on
-		// "editor side".
-		if (embeddedTypeHandler != null) {
-			Iterator iterator = embeddedTypeHandler.getAdapterFactories().iterator();
-			while (iterator.hasNext()) {
-				INodeAdapterFactory factory = (INodeAdapterFactory) iterator.next();
-				embeddedFactoryRegistry.add(factory);
-			}
-		}
-	}
-
-	/**
-	 * @see PageDirectiveAdapter#adapt(INodeNotifier, Object)
-	 */
-	public INodeAdapter adapt(INodeNotifier notifier, Object type) {
-		INodeAdapter result = null;
-		// if embeddedContentType hasn't been set, 
-		// then we can not adapt it.
-		if (embeddedTypeHandler != null) {
-			if (embeddedFactoryRegistry != null) {
-				Iterator iterator = embeddedFactoryRegistry.iterator();
-				INodeAdapterFactory factory = null;
-				while (iterator.hasNext()) {
-					factory = (INodeAdapterFactory) iterator.next();
-					if (factory.isFactoryForType(type)) {
-						result = factory.adapt(notifier);
-						break;
-					}
-				}
-			}
-		}
-		return result;
-
-	}
-
-	/**
-	 * @see PageDirectiveAdapter#getEmbeddedType()
-	 */
-	public EmbeddedTypeHandler getEmbeddedType() {
-		if (embeddedTypeHandler == null) {
-			embeddedTypeHandler = getDefaultEmbeddedType();
-		}
-		return embeddedTypeHandler;
-	}
-
-	public void addEmbeddedFactory(INodeAdapterFactory factory) {
-		// should we check if already exists in list?
-		embeddedFactoryRegistry.add(factory);
-	}
-
-	//	/**
-	//	 * Used by PageDirectiveWatchers to signal that some important attribute has changed, and 
-	//	 * any cached values should be re-calcuated
-	//	 */
-	//	void changed() {
-	//		// we won't actually check if change is needed, if the model state is already changing.
-	//		if (!model.isReinitializationNeeded()) {
-	//			// go through our list of page watcher adapters, and updates the attributes 
-	//			// we're interested in, if and only if they are the earliest occurance in the resource
-	//			String potentialContentType = null;
-	//			String potentialLanguage = null;
-	//			int contentTypePosition = -1;
-	//			int languagePosition = -1;
-	//			Iterator iterator = pageDirectiveWatchers.iterator();
-	//			while (iterator.hasNext()) {
-	//				PageDirectiveWatcher pdWatcher = (PageDirectiveWatcher) iterator.next();
-	//				String contentType = pdWatcher.getContentType();
-	//				String language = pdWatcher.getLanguage();
-	//				int offset = pdWatcher.getOffset();
-	//				if (potentialContentType == null || (hasValue(contentType) && (offset < contentTypePosition))) {
-	//					potentialContentType = contentType;
-	//					contentTypePosition = offset;
-	//				}
-	//			}
-	//			// now we have the best candiates for cached values, let's see if they've really changed from 
-	//			// what we had. If so, note we go through the setters so side effects can take place there.
-	//			potentialContentType = getMimeTypeFromContentTypeValue(potentialContentType);
-	//			if (potentialContentType == null || potentialContentType.length() == 0) {
-	//				//potentialContentType = getDefaultContentType();
-	//			} else {
-	//				setCachedContentType(potentialContentType);
-	//			}
-	//
-	//			if (potentialLanguage != null && hasValue(potentialLanguage)) {
-	//				setCachedLanguage(potentialLanguage);
-	//			}
-	//		}
-	//	}
-	void changedContentType(int elementOffset, String newValue) {
-		// only need to process if this new value is 
-		// earlier in the file than our current value
-		if (firstContentTypePosition == -1 || elementOffset <= firstContentTypePosition) {
-			// dw_TODO: update embedded partitioner in JSP document partitioner
-			// nsd_TODO: update embedded partitioner in JSP document partitioner
-
-			// no need to change current value, if we're told some 
-			// earlier value is null or blank (sounds like an error, anyway)
-			if (hasValue(newValue)) {
-				firstContentTypePosition = elementOffset;
-				String potentialContentType = getMimeTypeFromContentTypeValue(newValue);
-				// only do the set processing if different
-				// from what it already is
-				//	if (!potentialContentType.equalsIgnoreCase(cachedLanguage)) {
-				setCachedContentType(potentialContentType);
-				//	}
-			}
-		}
-	}
-
-	/**
-	 * Used by PageDirectiveWatchers to signal that some important attribute has changed, and 
-	 * any cached values should be re-calcuated
-	 */
-	void changedLanguage(int elementOffset, String newValue) {
-		// only need to process if this new value is 
-		// earlier in the file than our current value
-		// has to be less than or equal to, in case our previous earliest one, 
-		// is itself changing!
-		if (firstLanguagePosition == -1 || elementOffset <= firstLanguagePosition) {
-
-			// no need to change current value, if we're told some 
-			// earlier value is null or blank (sounds like an error, anyway)
-			if (hasValue(newValue)) {
-				firstLanguagePosition = elementOffset;
-				// only do the set processing if different
-				// from what it already is
-				if (!newValue.equalsIgnoreCase(cachedLanguage)) {
-					setCachedLanguage(newValue);
-				}
-			}
-
-			// dw_TODO: set language in document partitioner
-			// nsd_TODO: set language in document partitioner
-		}
-	}
-
-	/**
-	 * Used by PageDirectiveWatchers to signal that some important attribute has changed, and 
-	 * any cached values should be re-calcuated
-	 */
-	void changedPageEncoding(int elementOffset, String newValue) {
-
-		// we don't currently track active value, since
-		// just need during read and write (where its 
-		// calculated. We will need in future, to 
-		// acurately clone a model and to display 
-		// "current encoding" to user in status bar.
-	}
-
-	/**
-	 * Method hasValue.
-	 * @param contentType
-	 * @return boolean
-	 */
-	private boolean hasValue(String value) {
-		if (value != null && value.length() > 0)
-			return true;
-		else
-			return false;
-	}
-
-	/**
-	 * Returns the cachedContentType.
-	 * @return String
-	 */
-	public String getContentType() {
-		if (cachedContentType == null) {
-			cachedContentType = getDefaultContentType();
-		}
-		return cachedContentType;
-	}
-
-	/**
-	 * Method getDefaultContentType.
-	 * @return String
-	 */
-	private String getDefaultContentType() {
-		return "text/html"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the cachedLanguage.
-	 * @return String
-	 */
-	public String getLanguage() {
-		if (cachedLanguage == null)
-			cachedLanguage = getDefaultLanguage();
-		return cachedLanguage;
-	}
-
-	/**
-	 * Method getDefaultLanguage.
-	 * @return String
-	 */
-	private String getDefaultLanguage() {
-		return "java"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Sets the cachedContentType.
-	 * @param cachedContentType The cachedContentType to set
-	 */
-	public void setCachedContentType(String newContentType) {
-		// if the passed in value is the same as existing, there's nothing to do.
-		// if its different, then we need to change the contentHandler as well
-		// and, more to the point, signal a re-initializtation is needed.
-		// Note: if the value we're getting set to does not have a handler in the registry, 
-		// we'll actually not set it to null or anything, we'll just continue on with the one
-		// we have. This is pretty important to avoid re-initializing on every key stroke if someone 
-		// is typing in a new content type, but haven't yet finished the whole "word".
-		// However, if an contentType is not recognized, the registry returns the one 
-		// for XML.
-		//		if (this.cachedContentType != null && this.cachedContentType.equalsIgnoreCase(newContentType)) { // then do nothing
-		//		} else {
-		this.cachedContentType = newContentType;
-		// see if we can update embedded handler
-		//		if (this.cachedContentType == null || this.cachedContentType.length() == 0) { // do nothing, don't can't get a new handler, so we'll keep what we have
-		//		} else {
-
-		// getHandler should always return something (never null), based 
-		// on the rules in the factory. 
-		EmbeddedTypeHandler handler = getHandlerFor(this.cachedContentType);
-		// we do this check for re-init here, instead of in setEmbeddedType, 
-		// since setEmbeddedType is called during the normal initializtion 
-		// process, when re-init is not needed (since there is no content)
-		if (embeddedTypeHandler != null && handler != null && embeddedTypeHandler != handler) {
-			// changing this embedded handler here may 
-			// be in the middle of anotify loop, not sure
-			// if that'll cause problems.
-			
-			// be sure to hold oldHandler in temp var
-			// or else setEmbeddedType will "reset" it
-			// before modelReinitNeeded(oldHandler, handler) is called
-		    EmbeddedTypeHandler oldHandler = embeddedTypeHandler;
-			setEmbeddedType(handler);
-			modelReinitNeeded(oldHandler, handler);
-		}
-		//		}
-
-		//		}
-
-	}
-
-	/**
-	 * This method is used to re-init based on embeddedTypeHandler
-	 * changing. It is given priority over the language change, since
-	 * there its more important to have old and new handlers's in the 
-	 * stateData field.
-	 */
-	private void modelReinitNeeded(EmbeddedTypeHandler oldHandler, EmbeddedTypeHandler newHandler) {
-		if (model.isReinitializationNeeded()) {
-			System.out.println("already being initialized"); //$NON-NLS-1$
-		}
-
-		try {
-			model.aboutToChangeModel();
-			model.setReinitializeStateData(new EmbeddedTypeStateData(oldHandler, newHandler));
-			model.setReinitializeNeeded(true);
-		}
-		finally {
-			model.changedModel();
-		}
-	}
-
-	/**
-	 * Method modelReinitNeeded.
-	 */
-	private void modelReinitNeeded(String oldlanguage, String newLanguage) {
-		// bit of a short cut for now .... we dont' need language at the moment, 
-		// but should set the state data
-		if (model.isReinitializationNeeded()) {
-			if (Debug.displayWarnings) {
-				System.out.println("already being initialized"); //$NON-NLS-1$
-			}
-		}
-		else {
-			try {
-				// if already being re-initialized, we don't want to 
-				// reset the data in the stateData field.
-				model.aboutToChangeModel();
-				model.setReinitializeStateData(newLanguage);
-				model.setReinitializeNeeded(true);
-			}
-			finally {
-				model.changedModel();
-			}
-		}
-	}
-
-	public void setCachedLanguage(String newLanguage) {
-		if (cachedLanguage != null && languageStateChanged(cachedLanguage, newLanguage)) { // a complete re-init overkill in current system, since really just need for 
-			// the line style providers, 
-			// BUT, a change in language could effect other things, 
-			// and we don't expect to happen often so a little overkill isn't too bad.
-			// The deep problem is that there is no way to get at the "edit side" adpapters
-			// specifically here in model class.
-			// we have to do the model changed sequence to get the 
-			// screen to update.
-			// do not signal again, if signaled once (the reinit state data will be wrong.
-			// (this needs to be improved in future)
-			if (!model.isReinitializationNeeded()) {
-				modelReinitNeeded(cachedLanguage, newLanguage);
-			}
-		}
-		setLanguage(newLanguage);
-	}
-
-	/**
-	 * This is public access method, used especially
-	 * from loader, for JSP Fragment support. 
-	 */
-	public void setLanguage(String newLanguage) {
-		this.cachedLanguage = newLanguage;
-		IDocumentPartitioner partitioner = ((IDocumentExtension3) model.getStructuredDocument()).getDocumentPartitioner(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
-		if (partitioner instanceof StructuredTextPartitionerForJSP) {
-			((StructuredTextPartitionerForJSP) partitioner).setLanguage(newLanguage);
-		}
-	}
-
-	/**
-	 * Method languageStateChange.
-	 * @param cachedLanguage
-	 * @param newLanguage
-	 * @return boolean
-	 */
-	private boolean languageStateChanged(String cachedLanguage, String newLanguage) {
-		boolean result = false; // languages are equal, then no change in state
-		if (!cachedLanguage.equalsIgnoreCase(newLanguage)) {
-			boolean oldLanguageKnown = languageKnown(cachedLanguage);
-			boolean newLanguageKnown = languageKnown(newLanguage);
-			result = newLanguageKnown || (!newLanguageKnown && oldLanguageKnown);
-		}
-		return result;
-	}
-
-	/**
-	 * Method languageKnown.
-	 * @param cachedLanguage
-	 * @return boolean
-	 */
-	private boolean languageKnown(String language) {
-		return (StringUtils.contains(JAVA_LANGUAGE_KEYS, language, false) || StringUtils.contains(JAVASCRIPT_LANGUAGE_KEYS, language, false));
-	}
-
-	private IFile getFile(IStructuredModel model) {
-		String location = model.getBaseLocation();
-		IPath path = new Path(location);
-		if (!path.toFile().exists() && path.segmentCount() > 1) {
-			return ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-		}
-		return null;
-	}
-
-	private EmbeddedTypeHandler getHandlerFor(String contentType) {
-		EmbeddedTypeRegistry reg = getEmbeddedContentTypeRegistry();
-		EmbeddedTypeHandler handler = null;
-		if (reg != null)
-			handler = reg.getTypeFor(contentType);
-		return handler;
-	}
-
-	/**
-	 * Gets the embeddedContentTypeRegistry.
-	 * @return Returns a EmbeddedContentTypeRegistry
-	 */
-	private EmbeddedTypeRegistry getEmbeddedContentTypeRegistry() {
-		return EmbeddedTypeRegistryImpl.getInstance();
-	}
-
-	/**
-	 * For JSP files, text/html is the default 
-	 * content type. This may want this different 
-	 * for types like jsv (jsp for voice xml)
-	 * For now, hard code to new instance.
-	 * In future, should get instance from registry.
-	 * 
-	 * Specification cites HTML as the default contentType.
-	 */
-	protected EmbeddedTypeHandler getDefaultEmbeddedType() {
-		return getHandlerFor(getDefaultContentType());
-	}
-
-	public void contentSettingsChanged(IResource resource) {
-		// Note: we currently get notified multiple times, 
-		// I assume since there's mulitple fields in the properties.
-		// For now, I'll assume that once we get notified, all the 
-		// fields are accurate, so if we're reinitializing, don't 
-		// check any further. To NOT do this causes concurrent modification
-		// exceptions. To do it, may cause us to miss when user changes
-		// two fields at once. Will need to test. 
-		if (reinitializing)
-			return;
-		if (resource == null)
-			return;
-		IFile file = getFile(model);
-		if (file == null)
-			return;
-		//        String filename = null;
-		//        if (resource.FILE == resource.getType()) {
-		//        	filename = resource.getLocation().toString();
-		//        }
-		IProject project = file.getProject();
-		if (project == null)
-			return;
-		if (!project.equals(resource.getProject()))
-			return;
-		// Note: these change notifications appear to be coming 
-		// in based on any change in project. I'm not sure how
-		// to tell if they are for my particular file, or 
-		// if there's some other error I'm making in listeners.
-		// the setters below should be smart enough 
-		// to know if a meaningful change occurred, or 
-		// not. Note: we seem to get called a lot (for resources other than our own?)
-		// with lots of 'null' values. The logic below may prevent the correct unsetting
-		// of a property (such as changing from a language setting back to 'none'). 
-		// We may need a 'none' id, or something, to help detect that case, since we can't 
-		// always assume the 'null' is accurate.
-	}
-
-	public INodeNotifier getTarget() {
-		return notifierAtCreation;
-	}
-
-	public void release(Object type) {
-		if (embeddedTypeHandler != null) {
-			if (embeddedFactoryRegistry != null) {
-				Iterator iterator = embeddedFactoryRegistry.iterator();
-				INodeAdapterFactory factory = null;
-				while (iterator.hasNext()) {
-					factory = (INodeAdapterFactory) iterator.next();
-					if (factory.isFactoryForType(type)) {
-						factory.release();
-					}
-				}
-			}
-		}
-
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcher.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcher.java
deleted file mode 100644
index 6037021..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcher.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.document;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-
-interface PageDirectiveWatcher extends INodeAdapter {
-
-	String getContentType();
-
-	String getLanguage();
-
-	int getOffset();
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherFactory.java
deleted file mode 100644
index 8c4f7c1..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherFactory.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.document;
-
-import org.eclipse.wst.sse.core.internal.PropagatingAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.propagate.PropagatingAdapterFactoryImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Node;
-
-public class PageDirectiveWatcherFactory extends PropagatingAdapterFactoryImpl implements PropagatingAdapterFactory {
-
-	/**
-	 * Constructor for PageDirectiveWatcherFactory.
-	 */
-	public PageDirectiveWatcherFactory() {
-		this(PageDirectiveWatcher.class, true);
-	}
-
-	/**
-	 * Constructor for PageDirectiveWatcherFactory.
-	 * @param adapterKey
-	 * @param registerAdapters
-	 */
-	public PageDirectiveWatcherFactory(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		PageDirectiveWatcher result = null;
-		if (target instanceof IDOMElement) {
-			IDOMElement xmlElement = (IDOMElement) target;
-			if (xmlElement.getNodeType() == Node.ELEMENT_NODE) {
-				//                if (xmlElement.getNodeName() == JSP12Namespace.ElementName.DIRECTIVE_PAGE) {   // not sure why identity to  JSP11Namespace.ElementName.DIRECTIVE_PAGE doesn't work
-				String nodeName = xmlElement.getNodeName();
-				if (nodeName.equals("jsp:directive.page")) { //$NON-NLS-1$
-					result = new PageDirectiveWatcherImpl(xmlElement);
-				}
-
-			}
-		}
-		return result;
-
-	}
-
-	public INodeAdapterFactory copy() {
-		return new PageDirectiveWatcherFactory(this.adapterKey, this.shouldRegisterAdapter);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherImpl.java
deleted file mode 100644
index 2fc219a..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherImpl.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.document;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.xml.core.internal.document.AttrImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-
-
-/** 
- * The responsibility of this class is to monitor page directives and if 
- * a change in embedded type is is made, it will signal 
- * the structuredModel that it needs to reinitialize itself.
- */
-class PageDirectiveWatcherImpl implements PageDirectiveWatcher {
-
-	private static Object adapterType = PageDirectiveWatcher.class;
-	IDOMElement targetElement;
-
-	/**
-	 * Constructor for PageDirectiveWatcherImpl.
-	 */
-	public PageDirectiveWatcherImpl(IDOMElement target) {
-		super();
-		targetElement = target;
-		String contentTypeValue = target.getAttribute("contentType"); //$NON-NLS-1$
-		if (contentTypeValue != null) {
-			// using concrete class below, since "changed" is something of an internal method
-			PageDirectiveAdapterImpl pageDirectiveAdapter = (PageDirectiveAdapterImpl) ((IDOMDocument) targetElement.getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class);
-			pageDirectiveAdapter.changedContentType(((IndexedRegion) targetElement).getStartOffset(), contentTypeValue);
-		}
-		String languageValue = target.getAttribute("language"); //$NON-NLS-1$
-		if (languageValue != null) {
-			// using concrete class below, since "changed" is something of an internal method
-			PageDirectiveAdapterImpl pageDirectiveAdapter = (PageDirectiveAdapterImpl) ((IDOMDocument) targetElement.getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class);
-			pageDirectiveAdapter.changedLanguage(((IndexedRegion) targetElement).getStartOffset(), languageValue);
-		}
-
-
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return (type == adapterType);
-	}
-
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		// we should only be added to page directives, so if we see a page directive
-		// change, we need to check its attributes, and notify the PageDirectiveAdapter when 
-		// certain ones chane, so it can make its "centralized" decisions.
-		if (notifier instanceof IDOMNode) {
-
-			switch (eventType) {
-				case INodeNotifier.CHANGE :
-					if (changedFeature instanceof AttrImpl) {
-						AttrImpl attribute = (AttrImpl) changedFeature;
-						String name = attribute.getName();
-						if (name.equals("contentType")) { //$NON-NLS-1$
-							// using concrete class below, since "changed" is something of an internal method
-							PageDirectiveAdapterImpl pageDirectiveAdapter = (PageDirectiveAdapterImpl) ((IDOMDocument) targetElement.getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class);
-							pageDirectiveAdapter.changedContentType(((IndexedRegion) targetElement).getStartOffset(), (String) newValue);
-						}
-						if (name.equals("language")) { //$NON-NLS-1$ //$NON-NLS-2$
-							// using concrete class below, since "changed" is something of an internal method
-							PageDirectiveAdapterImpl pageDirectiveAdapter = (PageDirectiveAdapterImpl) ((IDOMDocument) targetElement.getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class);
-							pageDirectiveAdapter.changedLanguage(((IndexedRegion) targetElement).getStartOffset(), (String) newValue);
-						}
-					}
-
-					break;
-				case INodeNotifier.REMOVE :
-					//System.out.println("removed"+new Date().toString());
-					break;
-
-
-				default :
-					break;
-			}
-		}
-
-	}
-
-	public String getContentType() {
-		String contentTypeValue = targetElement.getAttribute("contentType"); //$NON-NLS-1$
-		return contentTypeValue;
-	}
-
-	public String getLanguage() {
-		String languageValue = targetElement.getAttribute("language"); //$NON-NLS-1$
-		return languageValue;
-	}
-
-	public int getOffset() {
-		return targetElement.getStartOffset();
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/SetupParticipantForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/SetupParticipantForJSP.java
deleted file mode 100644
index 4525ae7..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/SetupParticipantForJSP.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.document;
-
-import org.eclipse.core.filebuffers.IDocumentSetupParticipant;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jst.jsp.core.internal.text.StructuredTextPartitionerForJSP;
-
-/**
- * @deprecated - not used and will be removed in WTP 1.0M4
- */
-
-public class SetupParticipantForJSP implements IDocumentSetupParticipant {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.filebuffers.IDocumentSetupParticipant#setup(org.eclipse.jface.text.IDocument)
-	 */
-	public void setup(IDocument document) {
-		if (document != null) {
-			IDocumentPartitioner partitioner = new StructuredTextPartitionerForJSP();
-			document.setDocumentPartitioner(partitioner);
-			partitioner.connect(document);
-			
-			// setup empty model here? coordinated via model manager?
-			
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/AttrImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/AttrImplForJSP.java
deleted file mode 100644
index 5bcc664..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/AttrImplForJSP.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.AttrImpl;
-import org.w3c.dom.Document;
-
-public class AttrImplForJSP extends AttrImpl {
-
-	protected boolean isNestedLanguageOpening(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN || regionType == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN || regionType == DOMJSPRegionContexts.JSP_DECLARATION_OPEN || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN;
-		return result;
-	}
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-	protected void setName(String name) {
-		super.setName(name);
-	}
-	protected void setNamespaceURI(String namespaceURI) {
-		super.setNamespaceURI(namespaceURI);
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/CommentImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/CommentImplForJSP.java
deleted file mode 100644
index ef6ea04..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/CommentImplForJSP.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.CommentImpl;
-import org.w3c.dom.Document;
-
-public class CommentImplForJSP extends CommentImpl {
-	protected boolean isNestedCommentClose(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_COMMENT_CLOSE;
-		return result;
-	}
-
-	protected boolean isNestedCommentOpenClose(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_COMMENT_OPEN || regionType == DOMJSPRegionContexts.JSP_COMMENT_CLOSE;
-		return result;
-	}
-
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMDocumentForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMDocumentForJSP.java
deleted file mode 100644
index 6584c04..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMDocumentForJSP.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.wst.html.core.internal.document.DocumentStyleImpl;
-import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Comment;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-public class DOMDocumentForJSP extends DocumentStyleImpl {
-
-	/**
-	 * 
-	 */
-	public DOMDocumentForJSP() {
-		super();
-	}
-
-	/**
-	 * Default behavior for getting an adapter.
-	 * Overridden in case embedded type provides a different adapter
-	 * we don't want to use a cached one.
-	 */
-	public INodeAdapter getAdapterFor(Object type) {
-
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=85484
-
-		// just always create a new one for JSP
-		// need to investigate if this is a performance hit...
-		// seems to make HTML Validator (even) slower
-		
-		INodeAdapter oldAdapter = getExistingAdapter(type);
-		if(oldAdapter != null) {
-			if(oldAdapter instanceof IReleasable) {
-				((IReleasable)oldAdapter).release();
-				removeAdapter(oldAdapter);
-			}
-		}
-		
-		INodeAdapter result = null;
-		
-		// if we didn't find one in our list already,
-		// let's create it
-		FactoryRegistry reg = getFactoryRegistry();
-		if (reg != null) {
-			INodeAdapterFactory factory = reg.getFactoryFor(type);
-			if (factory != null) {
-				INodeAdapter newAdapter = factory.adapt(this);
-				result = newAdapter;
-			}
-		}
-		// We won't prevent null from being returned, but it would be
-		// unusual.
-		// It might be because Factory is not working correctly, or
-		// not installed, so we'll allow warning message.
-		if ((result == null) && (org.eclipse.wst.sse.core.internal.util.Debug.displayWarnings)) {
-			System.out.println("Warning: no adapter was found or created for " + type); //$NON-NLS-1$
-		}
-		return result;
-	}
-	
-	/**
-	 * @param that
-	 */
-	protected DOMDocumentForJSP(DocumentImpl that) {
-		super(that);
-	}
-	/**
-	 * cloneNode method
-	 * @return org.w3c.dom.Node
-	 * @param deep boolean
-	 */
-	public Node cloneNode(boolean deep) {
-		DOMDocumentForJSP cloned = new DOMDocumentForJSP(this);
-		if (deep)
-			cloned.importChildNodes(this, true);
-		return cloned;
-	}
-	/**
-	 * createElement method
-	 * 
-	 * @return org.w3c.dom.Element
-	 * @param tagName
-	 *            java.lang.String
-	 */
-	public Element createElement(String tagName) throws DOMException {
-		checkTagNameValidity(tagName);
-
-		ElementImplForJSP element = new ElementImplForJSP();
-		element.setOwnerDocument(this);
-		element.setTagName(tagName);
-		return element;
-	}
-	/**
-	 * createComment method
-	 * 
-	 * @return org.w3c.dom.Comment
-	 * @param data
-	 *            java.lang.String
-	 */
-	public Comment createComment(String data) {
-		CommentImplForJSP comment = new CommentImplForJSP();
-		comment.setOwnerDocument(this);
-		if (data != null)
-			comment.setData(data);
-		return comment;
-	}
-
-	/**
-	 * createAttribute method
-	 * 
-	 * @return org.w3c.dom.Attr
-	 * @param name
-	 *            java.lang.String
-	 */
-	public Attr createAttribute(String name) throws DOMException {
-		AttrImplForJSP attr = new AttrImplForJSP();
-		attr.setOwnerDocument(this);
-		attr.setName(name);
-		return attr;
-	}
-
-	/**
-	 */
-	public Attr createAttributeNS(String uri, String name) throws DOMException {
-		AttrImplForJSP attr = new AttrImplForJSP();
-		attr.setOwnerDocument(this);
-		attr.setName(name);
-		attr.setNamespaceURI(uri);
-		return attr;
-	}
-	/**
-	 * createTextNode method
-	 * 
-	 * @return org.w3c.dom.Text
-	 * @param data
-	 *            java.lang.String
-	 */
-	public Text createTextNode(String data) {
-		TextImplForJSP text = new TextImplForJSP();
-		text.setOwnerDocument(this);
-		text.setData(data);
-		return text;
-	}
-	protected void setModel(IDOMModel model) {
-		super.setModel(model);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMModelForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMModelForJSP.java
deleted file mode 100644
index 413627f..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/DOMModelForJSP.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.wst.html.core.internal.document.DOMStyleModelImpl;
-import org.eclipse.wst.xml.core.internal.document.XMLModelParser;
-import org.eclipse.wst.xml.core.internal.document.XMLModelUpdater;
-import org.w3c.dom.Document;
-
-public class DOMModelForJSP extends DOMStyleModelImpl {
-
-	/**
-	 * 
-	 */
-	public DOMModelForJSP() {
-		super();
-		// remember, the document is created in super constructor, 
-		// via internalCreateDocument
-	}
-	/**
-	 * createDocument method
-	 * @return org.w3c.dom.Document
-	 */
-	protected Document internalCreateDocument() {
-		DOMDocumentForJSP document = new DOMDocumentForJSP();
-		document.setModel(this);
-		return document;
-	}
-	protected XMLModelParser createModelParser() {
-		return new NestedDOMModelParser(this);
-	}
-	protected XMLModelUpdater createModelUpdater() {
-		return new NestDOMModelUpdater(this);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/ElementImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/ElementImplForJSP.java
deleted file mode 100644
index 9f6bcda..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/ElementImplForJSP.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.html.core.internal.document.ElementStyleImpl;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-public class ElementImplForJSP extends ElementStyleImpl {
-	/**
-	 * 
-	 */
-	public ElementImplForJSP() {
-		super();
-	}
-
-	/**
-	 * @param that
-	 */
-	public ElementImplForJSP(ElementImpl that) {
-		super(that);
-	}
-
-	protected boolean isNestedEndTag(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME;
-		return result;
-	}
-
-	protected boolean isNestedClosed(String regionType) {
-		boolean result = (regionType == DOMJSPRegionContexts.JSP_CLOSE || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE);
-		return result;
-	}
-
-	protected boolean isNestedClosedComment(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_COMMENT_CLOSE;
-		return result;
-	}
-
-	protected boolean isClosedNestedDirective(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE;
-		return result;
-	}
-
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-
-	protected void setTagName(String tagName) {
-		super.setTagName(tagName);
-	}
-	public Node cloneNode(boolean deep) {
-		ElementImpl cloned = new ElementImplForJSP(this);
-		if (deep)
-			cloneChildNodes(cloned, deep);
-		return cloned;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestDOMModelUpdater.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestDOMModelUpdater.java
deleted file mode 100644
index 26b71c4..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestDOMModelUpdater.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.DOMModelImpl;
-import org.eclipse.wst.xml.core.internal.document.XMLModelUpdater;
-
-
-public class NestDOMModelUpdater extends XMLModelUpdater {
-
-	/**
-	 * @param model
-	 */
-	public NestDOMModelUpdater(DOMModelImpl model) {
-		super(model);
-	}
-
-	protected boolean isNestedTagClose(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_CLOSE || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE;
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestedDOMModelParser.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestedDOMModelParser.java
deleted file mode 100644
index 6b7eb82..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/NestedDOMModelParser.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.document.DOMModelImpl;
-import org.eclipse.wst.xml.core.internal.document.JSPTag;
-import org.eclipse.wst.xml.core.internal.document.XMLModelParser;
-
-public class NestedDOMModelParser extends XMLModelParser {
-
-	/**
-	 * @param model
-	 */
-	public NestedDOMModelParser(DOMModelImpl model) {
-		super(model);
-	}
-
-	protected boolean isNestedCommentOpen(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_COMMENT_OPEN;
-		return result;
-	}
-
-	protected boolean isNestedCommentText(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_COMMENT_TEXT;
-		return result;
-	}
-
-	protected boolean isNestedContent(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_CONTENT;
-		return result;
-	}
-
-	protected boolean isNestedTag(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN || regionType == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN || regionType == DOMJSPRegionContexts.JSP_DECLARATION_OPEN || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN || regionType == DOMJSPRegionContexts.JSP_CLOSE;
-		return result;
-	}
-
-	protected boolean isNestedTagName(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME;
-		return result;
-	}
-	protected boolean isNestedTagOpen(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN || regionType == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN || regionType == DOMJSPRegionContexts.JSP_DECLARATION_OPEN || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN;
-		return result;
-	}
-	protected String computeNestedTag(String regionType, String tagName, IStructuredDocumentRegion structuredDocumentRegion, ITextRegion region) {
-		String resultTagName = tagName;
-		if (regionType == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN) {
-			resultTagName = JSPTag.JSP_SCRIPTLET;
-		}
-		else if (regionType == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN) {
-			resultTagName = JSPTag.JSP_EXPRESSION;
-		}
-		else if (regionType == DOMJSPRegionContexts.JSP_DECLARATION_OPEN) {
-			resultTagName = JSPTag.JSP_DECLARATION;
-		}
-		else if (regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN) {
-			resultTagName = JSPTag.JSP_DIRECTIVE;
-		}
-		else if (regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-			resultTagName += '.';
-			resultTagName += structuredDocumentRegion.getText(region);
-		}
-		return resultTagName;
-	}
-
-	protected boolean isNestedTagClose(String regionType) {
-		boolean result = regionType == DOMJSPRegionContexts.JSP_CLOSE || regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE;
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/TextImplForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/TextImplForJSP.java
deleted file mode 100644
index da91a23..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/domdocument/TextImplForJSP.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.domdocument;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.xml.core.internal.document.TextImpl;
-import org.w3c.dom.Document;
-
-public class TextImplForJSP extends TextImpl {
-	protected boolean isNotNestedContent(String regionType) {
-		boolean result = regionType != DOMJSPRegionContexts.JSP_CONTENT;
-		return result;
-	}
-	protected void setOwnerDocument(Document ownerDocument) {
-		super.setOwnerDocument(ownerDocument);
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/IJSPHeadContentDetector.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/IJSPHeadContentDetector.java
deleted file mode 100644
index 02b8453..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/IJSPHeadContentDetector.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.encoding;
-
-import java.io.IOException;
-
-import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector;
-
-public interface IJSPHeadContentDetector extends IDocumentCharsetDetector {
-	String getContentType() throws IOException;
-
-	String getLanguage() throws IOException;
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentHeadContentDetector.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentHeadContentDetector.java
deleted file mode 100644
index 5679036..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentHeadContentDetector.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.encoding;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.core.internal.contenttype.JSPResourceEncodingDetector;
-import org.eclipse.wst.sse.core.internal.document.DocumentReader;
-
-/**
- * This class parses beginning portion of JSP file to get attributes in page
- * directiive
- *  
- */
-public class JSPDocumentHeadContentDetector extends JSPResourceEncodingDetector implements IJSPHeadContentDetector {
-
-	public JSPDocumentHeadContentDetector() {
-		super();
-	}
-
-	public void set(IDocument document) {
-		set(new DocumentReader(document, 0));
-
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentLoader.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentLoader.java
deleted file mode 100644
index 3bbbe78..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentLoader.java
+++ /dev/null
@@ -1,558 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.encoding;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jst.jsp.core.internal.Assert;
-import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
-import org.eclipse.jst.jsp.core.internal.document.PageDirectiveAdapter;
-import org.eclipse.jst.jsp.core.internal.document.PageDirectiveWatcherFactory;
-import org.eclipse.jst.jsp.core.internal.parser.JSPReParser;
-import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.core.internal.text.StructuredTextPartitionerForJSP;
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-import org.eclipse.wst.sse.core.internal.document.AbstractDocumentLoader;
-import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.internal.document.IDocumentLoader;
-import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.internal.encoding.CodedIO;
-import org.eclipse.wst.sse.core.internal.encoding.CodedReaderCreator;
-import org.eclipse.wst.sse.core.internal.encoding.ContentTypeEncodingPreferences;
-import org.eclipse.wst.sse.core.internal.encoding.util.BufferedLimitedReader;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
-import org.eclipse.wst.sse.core.internal.ltk.parser.JSPCapableParser;
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-import org.eclipse.wst.sse.core.internal.ltk.parser.TagMarker;
-import org.eclipse.wst.sse.core.internal.modelhandler.EmbeddedTypeRegistry;
-import org.eclipse.wst.sse.core.internal.modelhandler.EmbeddedTypeRegistryImpl;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.document.IEncodedDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.w3c.dom.Document;
-
-public class JSPDocumentLoader extends AbstractDocumentLoader {
-	private final static String DEFAULT_LANGUAGE = "java"; //$NON-NLS-1$
-	private final static String DEFAULT_MIME_TYPE = "text/html"; //$NON-NLS-1$
-	private final static String SPEC_DEFAULT_ENCODING = "ISO-8859-1"; //$NON-NLS-1$
-
-	protected static IFile getFileFor(IStructuredModel model) {
-		if (model == null)
-			return null;
-		String path = model.getBaseLocation();
-		if (path == null || path.length() == 0) {
-			Object id = model.getId();
-			if (id == null)
-				return null;
-			path = id.toString();
-		}
-		// TODO needs rework for linked resources
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IFile file = root.getFileForLocation(new Path(path));
-		return file;
-	}
-
-	private EmbeddedTypeRegistry fEmbeddedContentTypeRegistry;
-
-	public JSPDocumentLoader() {
-		super();
-	}
-
-	private void addNestablePrefix(JSPSourceParser parser, String tagName) {
-		TagMarker bm = new TagMarker(tagName);
-		parser.addNestablePrefix(bm);
-	}
-
-	synchronized public IEncodedDocument createNewStructuredDocument(IFile iFile) throws IOException, CoreException {
-		IStructuredDocument structuredDocument = null;
-		try {
-			structuredDocument = createCodedDocument(iFile);
-
-			EmbeddedTypeHandler embeddedType = getEmbeddedType(iFile);
-			if (embeddedType != null)
-				embeddedType.initializeParser((JSPCapableParser) structuredDocument.getParser());
-
-			fFullPreparedReader.reset();
-			setDocumentContentsFromReader(structuredDocument, fFullPreparedReader);
-
-		}
-		finally {
-			if (fFullPreparedReader != null) {
-				fFullPreparedReader.close();
-			}
-		}
-		return structuredDocument;
-	}
-
-	private IStructuredDocument createCodedDocument(IFile iFile) throws CoreException, UnsupportedEncodingException, IOException {
-		IStructuredDocument structuredDocument = (IStructuredDocument) createNewStructuredDocument();
-
-		getCodedReaderCreator().set(iFile);
-
-		fFullPreparedReader = getCodedReaderCreator().getCodedReader();
-		fEncodingMemento = getCodedReaderCreator().getEncodingMemento();
-
-		structuredDocument.setEncodingMemento(getCodedReaderCreator().getEncodingMemento());
-
-		return structuredDocument;
-	}
-
-	public IEncodedDocument createNewStructuredDocument(String filename, InputStream inputStream) throws UnsupportedEncodingException, IOException {
-		if (filename == null && inputStream == null) {
-			throw new IllegalArgumentException("can not have both null filename and inputstream"); //$NON-NLS-1$
-		}
-		IEncodedDocument structuredDocument = createNewStructuredDocument();
-		CodedReaderCreator codedReaderCreator = new CodedReaderCreator();
-		try {
-			codedReaderCreator.set(filename, inputStream);
-			fFullPreparedReader = codedReaderCreator.getCodedReader();
-			fEncodingMemento = codedReaderCreator.getEncodingMemento();
-			structuredDocument.setEncodingMemento(fEncodingMemento);
-			// the fact that file is null means this method/code path is no
-			// good for JSP fragments
-			EmbeddedTypeHandler embeddedType = getEmbeddedType((IFile) null);
-			fFullPreparedReader.reset();
-			if (embeddedType != null)
-				embeddedType.initializeParser((JSPCapableParser) ((IStructuredDocument) structuredDocument).getParser());
-			setDocumentContentsFromReader(structuredDocument, fFullPreparedReader);
-		}
-		catch (CoreException e) {
-			// impossible in this context
-			throw new Error(e);
-		}
-		finally {
-			if (fFullPreparedReader != null) {
-				fFullPreparedReader.close();
-			}
-		}
-		return structuredDocument;
-
-	}
-
-	/**
-	 * Method getDefaultDocumentPartitioner.
-	 * 
-	 * @return IDocumentPartitioner
-	 */
-	public IDocumentPartitioner getDefaultDocumentPartitioner() {
-		return new StructuredTextPartitionerForJSP();
-	}
-
-	/**
-	 * Method getDefaultMimeType.
-	 * 
-	 * @return String
-	 */
-	private String getDefaultMimeType() {
-		return DEFAULT_MIME_TYPE;
-	}
-
-
-	public IDocumentCharsetDetector getDocumentEncodingDetector() {
-		if (fDocumentEncodingDetector == null) {
-			fDocumentEncodingDetector = new JSPDocumentHeadContentDetector();
-		}
-		return fDocumentEncodingDetector;
-	}
-
-	/**
-	 * Gets the embeddedContentTypeRegistry.
-	 * 
-	 * @return Returns a EmbeddedContentTypeRegistry
-	 */
-	private EmbeddedTypeRegistry getEmbeddedContentTypeRegistry() {
-		if (fEmbeddedContentTypeRegistry == null) {
-			fEmbeddedContentTypeRegistry = EmbeddedTypeRegistryImpl.getInstance();
-		}
-		return fEmbeddedContentTypeRegistry;
-	}
-
-	private EmbeddedTypeHandler getEmbeddedType(IStructuredModel model) {
-		Document doc = ((IDOMModel) model).getDocument();
-		PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) ((INodeNotifier) doc).getAdapterFor(PageDirectiveAdapter.class);
-		EmbeddedTypeHandler embeddedHandler = pageDirectiveAdapter.getEmbeddedType();
-		return embeddedHandler;
-	}
-
-	/**
-	 * Determine the MIME content type specified in a page directive. This
-	 * should appear "as early as possible in the JSP page" according to the
-	 * JSP v1.2 specification.
-	 */
-	private EmbeddedTypeHandler getEmbeddedType(IFile file) throws UnsupportedEncodingException, CoreException, IOException {
-		EmbeddedTypeHandler handler = null;
-		if (fFullPreparedReader == null) {
-			handler = getJSPDefaultEmbeddedType();
-		}
-		else {
-			String mimeType = null;
-
-			IDocumentCharsetDetector jspProvider = getDocumentEncodingDetector();
-			Reader fullPreparedReader = getFullPreparedReader();
-			BufferedLimitedReader limitedReader = new BufferedLimitedReader(fullPreparedReader, CodedIO.MAX_BUF_SIZE);
-			jspProvider.set(limitedReader);
-			if (jspProvider instanceof IJSPHeadContentDetector) {
-				mimeType = ((IJSPHeadContentDetector) jspProvider).getContentType();
-				fullPreparedReader.reset();
-			}
-
-			EmbeddedTypeRegistry reg = getEmbeddedContentTypeRegistry();
-			if (mimeType == null || mimeType.length() == 0) {
-				handler = getJSPDefaultEmbeddedType();
-			}
-			else {
-				handler = reg.getTypeFor(mimeType);
-			}
-		}
-		return handler;
-	}
-
-	/**
-	 * For JSP files, text/html is the default content type. This may want
-	 * this different for types like jsv (jsp for voice xml) For now, hard
-	 * code to new instance. In future, should get instance from registry.
-	 * Specification cites HTML as the default contentType.
-	 */
-	private EmbeddedTypeHandler getJSPDefaultEmbeddedType() {
-		EmbeddedTypeRegistry reg = getEmbeddedContentTypeRegistry();
-		return reg.getTypeFor(getDefaultMimeType());
-	}
-
-	/**
-	 * Method getLanguage.
-	 * 
-	 * @param model
-	 * @return String
-	 */
-	private String getLanguage(IStructuredModel model) throws IOException {
-		String result = null;
-		// first check the model (document itself) to see if contains
-		result = getLanguageFromStructuredDocument(model.getStructuredDocument());
-		// Note: if model contains an unsupported
-		// language, we'll even return it,
-		// since who knows what future holds.
-
-		// always return something
-		if (result == null) {
-			result = DEFAULT_LANGUAGE;
-		}
-		return result;
-	}
-
-	/**
-	 * Method getLanguageFromStructuredDocument.
-	 * 
-	 * @param structuredDocument
-	 * @return String
-	 */
-	private String getLanguageFromStructuredDocument(IDocument document) throws IOException {
-		if (document == null)
-			return null;
-		String result = null;
-		// bascially same algorithm as get encoding or
-		// get content type from structuredDocument.
-		IJSPHeadContentDetector localHeadParser = (IJSPHeadContentDetector) getDocumentEncodingDetector();
-		// we can be assured that its already been
-		// parsed. If not call parseHeaderForPageDirective()
-		// before calling getLanguage;
-		localHeadParser.set(document);
-		result = localHeadParser.getLanguage();
-		return result;
-	}
-
-	public RegionParser getParser() {
-		// remember, the Loader
-		// will need to finish initialization of parser
-		// based on "embedded content"
-		JSPSourceParser parser = new JSPSourceParser();
-		// add default nestable tag list
-		addNestablePrefix(parser, JSP11Namespace.JSP_TAG_PREFIX);
-		return parser;
-	}
-
-	protected String getPreferredNewLineDelimiter() {
-		return ContentTypeEncodingPreferences.getPreferredNewLineDelimiter(ContentTypeIdForJSP.ContentTypeID_JSP);
-	}
-
-	/**
-	 * Specification cites ISO-8859-1/Latin-1 as the default charset.
-	 */
-	protected String getSpecDefaultEncoding() {
-		return SPEC_DEFAULT_ENCODING;
-	}
-
-	/**
-	 * This is "reinitialize" since there should always be at least the
-	 * default one assigned, before we start checking the stream
-	 */
-	private void initCloneOfEmbeddedType(IStructuredModel model, EmbeddedTypeHandler oldEmbeddedContentType, EmbeddedTypeHandler newEmbeddedContentType) throws IOException {
-		// check program logic
-		Assert.isNotNull(oldEmbeddedContentType, "Program error: invalid call during model initialization"); //$NON-NLS-1$
-		// once we know the embedded content type, we need to set it in the
-		// PageDirectiveAdapter ... the order of initialization is
-		// critical here, the doc must have been created, but its contents not
-		// set
-		// yet,
-		// and all factories must have been set up also.
-		IDOMModel domModel = (IDOMModel) model;
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		IDOMDocument document = domModel.getDocument();
-		PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) document.getAdapterFor(PageDirectiveAdapter.class);
-		// ==> // PropagatingAdapter propagatingAdapter = (PropagatingAdapter)
-		// ((INodeNotifier) document).getAdapterFor(PropagatingAdapter.class);
-		// ==> // ModelQueryAdapter modelQueryAdapter = (ModelQueryAdapter)
-		// ((INodeNotifier) document).getAdapterFor(ModelQueryAdapter.class);
-		// because, even in the clone case, the model has been paritally
-		// intialized
-		// with
-		// the old embedded type (during createModel), we need to unitialize
-		// parts of it, based on the old (or default) ones
-		oldEmbeddedContentType.uninitializeFactoryRegistry(model.getFactoryRegistry());
-		oldEmbeddedContentType.uninitializeParser((JSPCapableParser) structuredDocument.getParser());
-		// remember, embedded type factories are automatically cleared when
-		// embededType changed
-		pageDirectiveAdapter.setEmbeddedType(newEmbeddedContentType);
-		if (newEmbeddedContentType != null) {
-			newEmbeddedContentType.initializeFactoryRegistry(model.getFactoryRegistry());
-			newEmbeddedContentType.initializeParser((JSPCapableParser) structuredDocument.getParser());
-		}
-		// adding language here, in this convienent central
-		// location, but some obvious renaming or refactoring
-		// wouldn't hurt, in future.
-		// I needed to add this language setting for JSP Fragment support
-		// Note: this is the one that counts, since at this point,
-		// the model has an ID, so we can look up IFile, etc.
-		String language = getLanguage(model);
-		if (language != null && language.length() > 0) {
-			pageDirectiveAdapter.setLanguage(language);
-		}
-	}
-
-	/**
-	 * Method initEmbeddedType.
-	 */
-	private void initEmbeddedType(IStructuredModel model) {
-		initializeEmbeddedTypeFromDefault(model);
-	}
-
-	/**
-	 * Method initEmbeddedType.
-	 */
-	private void initEmbeddedType(IStructuredModel oldModel, IStructuredModel newModel) throws IOException {
-		EmbeddedTypeHandler existingEmbeddedType = getEmbeddedType(oldModel);
-		EmbeddedTypeHandler newEmbeddedContentType = existingEmbeddedType.newInstance();
-		if (existingEmbeddedType == null) {
-			initEmbeddedType(newModel);
-		}
-		else {
-			// initEmbeddedType(newModel);
-			initCloneOfEmbeddedType(newModel, existingEmbeddedType, newEmbeddedContentType);
-		}
-		setLanguageInPageDirective(newModel);
-	}
-
-	/**
-	 * This is "initialize" since is always assumes it hasn't been initalized
-	 * yet.
-	 */
-	private void initializeEmbeddedType(IStructuredModel model, EmbeddedTypeHandler embeddedContentType) {
-		// check program logic
-		Assert.isNotNull(embeddedContentType, "Program error: invalid call during model initialization"); //$NON-NLS-1$
-		// once we know the embedded content type, we need to set it in the
-		// PageDirectiveAdapter ... the order of initialization is
-		// critical here, the doc must have been created, but its contents not
-		// set
-		// yet,
-		// and all factories must have been set up also.
-		IDOMModel domModel = (IDOMModel) model;
-		IDOMDocument document = domModel.getDocument();
-		PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) document.getAdapterFor(PageDirectiveAdapter.class);
-		pageDirectiveAdapter.setEmbeddedType(embeddedContentType);
-		embeddedContentType.initializeFactoryRegistry(model.getFactoryRegistry());
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		embeddedContentType.initializeParser((JSPCapableParser) structuredDocument.getParser());
-		// adding language here, in this convienent central
-		// location, but some obvious renaming or refactoring
-		// wouldn't hurt, in future.
-		// I needed to add this language setting for JSP Fragment support
-		// Note: I don't think this attempted init counts for much.
-		// I think its always executed when model is very first
-		// being initialized, and doesn't even have content
-		// or an ID yet. I thought I'd leave, since it wouldn't
-		// hurt, in case its called in other circumstances.
-		// String language = getLanguage(model);
-		// pageDirectiveAdapter.setLanguage(language);
-	}
-
-	/**
-	 * This init method is for the case where we are creating an empty model,
-	 * which we always do.
-	 */
-	private void initializeEmbeddedTypeFromDefault(IStructuredModel model) {
-		EmbeddedTypeHandler embeddedContentType = getJSPDefaultEmbeddedType();
-		initializeEmbeddedType(model, embeddedContentType);
-	}
-
-	/**
-	 * This method must return a new instance of IStructuredDocument, that has
-	 * been initialized with appropriate parser. For many loaders, the
-	 * (default) parser used is known for any input. For others, the correct
-	 * parser (and its initialization) is normall dependent on the content of
-	 * the file. This no-argument method should assume "empty input" and would
-	 * therefore return the default parser for the default contentType. If the
-	 * parser is to handle tag libraries, it must have a TaglibSupport object
-	 * with a valid URIResolver and this IStructuredDocument attached to it
-	 * before the contents are set on the IStructuredDocument.
-	 */
-	protected IEncodedDocument newEncodedDocument() {
-		IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(getParser());
-		((BasicStructuredDocument) structuredDocument).setReParser(new JSPReParser());
-		// structuredDocument.setDocumentPartitioner(new
-		// JSPJavaDocumentPartioner());
-		// even though this is an "empty model" ... we want it to have at
-		// least
-		// the
-		// default embeddeded content type handler
-		EmbeddedTypeHandler embeddedType = getJSPDefaultEmbeddedType();
-		embeddedType.initializeParser((JSPCapableParser) structuredDocument.getParser());
-		return structuredDocument;
-	}
-
-	public IDocumentLoader newInstance() {
-		return new JSPDocumentLoader();
-	}
-
-	protected void preLoadAdapt(IStructuredModel structuredModel) {
-		IDOMModel domModel = (IDOMModel) structuredModel;
-		//
-		// document must have already been set for this to
-		// work.
-		Document document = domModel.getDocument();
-		Assert.isNotNull(document, JSPCoreMessages.JSPDocumentLoader_1);
-		// if there is a model in the adapter, this will adapt it to
-		// first node. After that the PropagatingAdater spreads over the
-		// children being
-		// created. Each time that happends, a side effect is to
-		// also "spread" sprecific registered adapters,
-		// they two can propigate is needed.
-		// This 'get' causes first to be be attached.
-		PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) document).getAdapterFor(PropagatingAdapter.class);
-		// may make this easier to use in futue
-		propagatingAdapter.addAdaptOnCreateFactory(new PageDirectiveWatcherFactory());
-		// For JSPs, the ModelQueryAdapter must be "attached" to the document
-		// before content is set in the model, so taglib initization can
-		// take place.
-		((INodeNotifier) document).getAdapterFor(ModelQueryAdapter.class);
-		
-	}
-
-	/**
-	 * This is "reinitialize" since there should always be at least the
-	 * default one assigned, before we start checking the stream
-	 */
-	private void reInitializeEmbeddedType(IStructuredModel model, EmbeddedTypeHandler oldEmbeddedContentType, EmbeddedTypeHandler newEmbeddedContentType) throws IOException {
-		// check program logic
-		Assert.isNotNull(oldEmbeddedContentType, "Program error: invalid call during model initialization"); //$NON-NLS-1$
-		// once we know the embedded content type, we need to set it in the
-		// PageDirectiveAdapter ... the order of initialization is
-		// critical here, the doc must have been created, but its contents not
-		// set
-		// yet,
-		// and all factories must have been set up also.
-		IDOMModel domModel = (IDOMModel) model;
-		IStructuredDocument structuredDocument = model.getStructuredDocument();
-		IDOMDocument document = domModel.getDocument();
-		PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) document.getExistingAdapter(PageDirectiveAdapter.class);
-		// ==> // PropagatingAdapter propagatingAdapter = (PropagatingAdapter)
-		// ((INodeNotifier)
-		// document).getExistingAdapter(PropagatingAdapter.class);
-		// ==> // ModelQueryAdapter modelQueryAdapter = (ModelQueryAdapter)
-		// ((INodeNotifier)
-		// document).getExistingAdapter(ModelQueryAdapter.class);
-		oldEmbeddedContentType.uninitializeFactoryRegistry(model.getFactoryRegistry());
-		oldEmbeddedContentType.uninitializeParser((JSPCapableParser) structuredDocument.getParser());
-		// since 'document' is not recreated in this
-		// reinit path, we need to remove all adapters,
-		// except for the propagated adapters (including page
-		// directive adapter, and model query adapter).
-		// to accomplish this, we'll just remove all, then
-		// add back with a call to pre-load adapt.
-		// let clients decide to unload adapters from document
-		// Collection oldAdapters = document.getAdapters();
-		// Iterator oldAdaptersIterator = oldAdapters.iterator();
-		// while (oldAdaptersIterator.hasNext()) {
-		// INodeAdapter oldAdapter = (INodeAdapter)
-		// oldAdaptersIterator.next();
-		// if (oldAdapter != pageDirectiveAdapter && oldAdapter !=
-		// propagatingAdapter && oldAdapter != modelQueryAdapter) {
-		// // DO NOT remove directly!
-		// // can change contents while in notifity loop!
-		// //oldAdaptersIterator.remove();
-		// document.removeAdapter(oldAdapter);
-		// }
-		// }
-		// DMW: I believe something like the following is needed,
-		// since releases cached adapters
-		// if (document instanceof DocumentImpl) {
-		// ((DocumentImpl) document).releaseDocumentType();
-		// ((DocumentImpl) document).releaseStyleSheets();
-		// }
-		// remember, embedded type factories are automatically cleared when
-		// embededType changed
-		pageDirectiveAdapter.setEmbeddedType(newEmbeddedContentType);
-		// // but still need to clear the page directive watchers, and let
-		// them
-		// be
-		// rediscovered (with new, accurate node as target)
-		// pageDirectiveAdapter.clearPageWatchers();
-		if (newEmbeddedContentType != null) {
-			newEmbeddedContentType.initializeFactoryRegistry(model.getFactoryRegistry());
-			newEmbeddedContentType.initializeParser((JSPCapableParser) structuredDocument.getParser());
-		}
-		// adding language here, in this convienent central
-		// location, but some obvious renaming or refactoring
-		// wouldn't hurt, in future.
-		// I needed to add this language setting for JSP Fragment support
-		// Note: this is the one that counts, since at this point,
-		// the model has an ID, so we can look up IFile, etc.
-		String language = getLanguage(model);
-		if (language != null && language.length() > 0) {
-			pageDirectiveAdapter.setLanguage(language);
-		}
-	}
-
-	private void setLanguageInPageDirective(IStructuredModel newModel) throws IOException {
-		if (newModel instanceof IDOMModel) {
-			IDOMDocument document = ((IDOMModel) newModel).getDocument();
-			PageDirectiveAdapter pageDirectiveAdapter = (PageDirectiveAdapter) document.getAdapterFor(PageDirectiveAdapter.class);
-			String language = getLanguage(newModel);
-			pageDirectiveAdapter.setLanguage(language);
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/CompilationUnitHelper.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/CompilationUnitHelper.java
deleted file mode 100644
index 8df5524..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/CompilationUnitHelper.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.eclipse.jst.jsp.core.internal.java;
-
-import org.eclipse.jdt.core.WorkingCopyOwner;
-
-/**
- * To ensure there is only one instance of ProblemRequestor and WorkingCopyOwner
- * for JSP plugins.  These were removed from JSPTranslation to ensure that the
- * JSPTranslation was not held in memory by any type of JDT lists (caching
- * search results, etc...)
- * 
- * @author pavery
- */
-public class CompilationUnitHelper {
-
-    private JSPProblemRequestor fProblemRequestor = null;
-    private WorkingCopyOwner fWorkingCopyOwner = null;
-    private static CompilationUnitHelper instance;
-
-    private CompilationUnitHelper() {
-        // force use of instance
-    }
-
-    public synchronized static final CompilationUnitHelper getInstance() {
-
-        if (instance == null)
-            instance = new CompilationUnitHelper();
-        return instance;
-    }
-
-    public JSPProblemRequestor getProblemRequestor() {
-
-        if (fProblemRequestor == null)
-            fProblemRequestor = new JSPProblemRequestor();
-        return fProblemRequestor;
-    }
-
-    public WorkingCopyOwner getWorkingCopyOwner() {
-
-        if (fWorkingCopyOwner == null) {
-            fWorkingCopyOwner = new WorkingCopyOwner() {
-                public String toString() {
-                    return "JSP Working copy owner"; //$NON-NLS-1$
-                }
-            };
-        }
-        return fWorkingCopyOwner;
-    }
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/ELProblem.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/ELProblem.java
deleted file mode 100644
index 6cf5c9e..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/ELProblem.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.jst.jsp.core.internal.java;
-
-import org.eclipse.jface.text.Position;
-
-public class ELProblem {
-	private Position fPos;
-	private String fMessage;
-	
-	public ELProblem(Position pos, String message)	{
-		fPos = pos;
-		fMessage = message;
-	}
-	
-	public String getFMessage() {
-		return fMessage;
-	}
-	
-
-	public Position getFPos() {
-		return fPos;
-	}
-	
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/EscapedTextUtil.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/EscapedTextUtil.java
deleted file mode 100644
index 4370d9a..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/EscapedTextUtil.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.java;
-
-
-
-import java.util.Properties;
-import java.util.StringTokenizer;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-
-/**
- * class to handle chunks of text/regions
- * with escaped character data
- * @author pavery
- */
-public class EscapedTextUtil {
-
-	public static Properties fXMLtoJavaLookup = null;
-
-	/**
-	 * @return unescaped full text of that region, "" if there is no text
-	 */
-	public static String getUnescapedText(IStructuredDocumentRegion parent, ITextRegion r) {
-		String test = (parent != r) ? parent.getFullText(r) : parent.getFullText();
-		return getUnescapedText(test);
-	}
-
-	public static String getUnescapedText(String test) {
-		initLookup();
-		StringBuffer buffer = new StringBuffer();
-		if (test != null) {
-			StringTokenizer st = new StringTokenizer(test, "&;", true); //$NON-NLS-1$
-			String tok1, tok2, tok3, transString;
-			while (st.hasMoreTokens()) {
-				tok1 = tok2 = tok3 = transString = ""; //$NON-NLS-1$
-				tok1 = st.nextToken();
-				if (tok1.equals("&") && st.hasMoreTokens()) //$NON-NLS-1$
-				{
-					tok2 = st.nextToken();
-					if (st.hasMoreTokens()) {
-						tok3 = st.nextToken();
-					}
-				}
-				if (!(transString = fXMLtoJavaLookup.getProperty(tok1 + tok2 + tok3, "")).equals("")) //$NON-NLS-2$ //$NON-NLS-1$
-				{
-					buffer.append(transString);
-				}
-				else {
-					buffer.append(tok1 + tok2 + tok3);
-				}
-			}
-			return buffer.toString();
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * initialize lookup tables
-	 */
-	private static void initLookup() {
-		fXMLtoJavaLookup = new Properties();
-		fXMLtoJavaLookup.setProperty("&apos;", "'"); //$NON-NLS-2$ //$NON-NLS-1$
-		fXMLtoJavaLookup.setProperty("&quot;", "\""); //$NON-NLS-2$ //$NON-NLS-1$
-		fXMLtoJavaLookup.setProperty("&amp;", "&"); //$NON-NLS-2$ //$NON-NLS-1$
-		fXMLtoJavaLookup.setProperty("&lt;", "<"); //$NON-NLS-2$ //$NON-NLS-1$
-		fXMLtoJavaLookup.setProperty("&gt;", ">"); //$NON-NLS-2$ //$NON-NLS-1$
-		fXMLtoJavaLookup.setProperty("&nbsp;", " "); //$NON-NLS-2$ //$NON-NLS-1$
-	}
-
-	/**
-	 * Get the String representation of an entity reference.
-	 */
-	public static String translateEntityReference(String entity) {
-		return fXMLtoJavaLookup.getProperty(entity, entity);
-	}
-}
-
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/IJSPTranslation.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/IJSPTranslation.java
deleted file mode 100644
index cb79f3e..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/IJSPTranslation.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.java;
-
-import java.util.List;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-
-/**
- * An object that holds a translated JSP String along with
- * position mapping from Java to JSP, and JSP to Java.
- * 
- * @author pavery
- * 
- */
-public interface IJSPTranslation {
-
-	/**
-	 * The string contents of the translated document.
-	 * @return  the string contents of the translated document.
-	 */
-	public String getJavaText();
-
-	/**
-	 * The corresponding java offset in the translated document for a given jsp offset.
-	 * @param jspPosition
-	 * @return the java offset that maps to jspOffset, -1 if the position has no mapping.
-	 */
-	public int getJavaOffset(int jspOffset);
-
-	/**
-	 * The corresponding jsp offset in the source document for a given jsp offset in the translated document.
-	 * @param javaPosition
-	 * @return the jsp offset that maps to javaOffset, -1 if the position has no mapping.
-	 */
-	public int getJspOffset(int javaOffset);
-
-	/**
-	 * The corresponding CompilationUnit for the translated JSP document
-	 * @return an ICompilationUnit of the translation
-	 */
-	public ICompilationUnit getCompilationUnit();
-
-	/**
-	 * Returns the IJavaElements corresponding to the JSP range in the JSP StructuredDocument
-	 * 
-	 * @param jspStart staring offset in the JSP document
-	 * @param jspEnd ending offset in the JSP document
-	 * @return IJavaElements corresponding to the JSP selection
-	 */
-	public IJavaElement[] getElementsFromJspRange(int jspStart, int jspEnd);
-
-	/**
-	 * Must be set true in order for problems to be collected during reconcile.
-	 * If set false, problems will be ignored during reconcile.
-	 * @param collect
-	 */
-	public void setProblemCollectingActive(boolean collect);
-
-	/**
-	 * Reconciles the compilation unit for this JSPTranslation
-	 */
-	public void reconcileCompilationUnit();
-
-	/**
-	 * @return the List of problems collected during reconcile of the compilation unit
-	 */
-	public List getProblems();
-	
-	// add these API once finalized
-	// getJspEdits(TextEdit javaEdit)
-	// getJavaRanges()
-    // getJavaDocument()
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSP2ServletNameUtil.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSP2ServletNameUtil.java
deleted file mode 100644
index 43dfba4..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSP2ServletNameUtil.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.java;
-
-import java.io.File;
-
-/**
- * @author pavery
- */
-public class JSP2ServletNameUtil {
-	
-	/**
-	 * WAS mangles Tom&Jerry as: _Tom_26_Jerry; this takes in the mangled name
-	 * and returns the original name.
-	 * 
-	 * Unmangles the qualified type name.  If an underscore is found
-	 * it is assumed to be a mangled representation of a non-alpha, 
-	 * non-digit character of the form _NN_, where NN are hex digits
-	 * representing the encoded character.  This routine converts it
-	 * back to the original character.
-	 */
-	public final static String unmangle(String qualifiedTypeName) {
-		if(qualifiedTypeName.charAt(0) != '_')
-			return qualifiedTypeName;
-		
-		StringBuffer buf = new StringBuffer();
-		String possible = ""; //$NON-NLS-1$
-	
-		// remove the .java extension if there is one
-		if(qualifiedTypeName.endsWith(".java"))//$NON-NLS-1$
-			qualifiedTypeName = qualifiedTypeName.substring(0, qualifiedTypeName.length() - 5);
-		
-		for(int i = 1; i < qualifiedTypeName.length(); i++) {  // start at index 1 b/c 1st char is always '_'
-			char c = qualifiedTypeName.charAt(i);
-			if(c == '_') {
-				int endIndex = qualifiedTypeName.indexOf('_', i+1);
-				if(endIndex == -1)
-					buf.append(c);
-				else {
-					char unmangled;
-					try {
-						possible = qualifiedTypeName.substring(i+1, endIndex); 
-					    if(isValid(possible)) {
-							unmangled = (char)Integer.decode("0x" + possible).intValue();//$NON-NLS-1$
-							i = endIndex;
-					    }
-					    else { 
-					        unmangled = c;
-					    }
-						
-					} catch(NumberFormatException e) {
-						unmangled = c;
-					}
-					buf.append(unmangled);
-				}
-			} else {
-				buf.append(c);
-			}
-		}
-		return buf.toString();
-	}
-
-	/**
-	 * Determine if given string is a valid Hex representation of an ASCII character (eg. 2F -> /)
-	 * @param possible
-	 * @return
-	 */
-	private static boolean isValid(String possible) {
-	    boolean result = false;
-	    if(possible.length() == 2){	    
-	        char c1 = possible.charAt(0);
-	        char c2 = possible.charAt(1);
-	        // 1st character must be a digit
-	        if(Character.isDigit(c1)) {
-	            // 2nd character must be digit or upper case letter A-F
-	            if(Character.isDigit(c2)) {
-	                result = true;
-	            }
-	            else if(Character.isUpperCase(c2) && (c2 == 'A' || c2 == 'B' || c2 ==  'C'|| c2 ==  'D'|| c2 ==  'E'|| c2 == 'F')) {
-	                result = true;
-	            }
-	        }
-	    }
-        return result;
-	}
-	
-	/**
-	 * Mangle string to WAS-like specifications
-	 *
-	 */
-	public final static String mangle(String name) {	  
-	  StringBuffer modifiedName = new StringBuffer();
-	  
-	  // extension (.jsp, .jspf, .jspx, etc...) should already be encoded in name
-	  
-	  int length = name.length();
-	  // in case name is forbidden (a number, class, for, etc...)
-	  modifiedName.append('_');
-	
-	  // ensure rest of characters are valid	
-	  for (int i=0; i< length; i++) {
-		  char currentChar = name.charAt(i);
-		  if (Character.isJavaIdentifierPart(currentChar) == true  ) { 
-			  modifiedName.append(currentChar);
-		  } else {
-			  modifiedName.append(mangleChar(currentChar));
-		  }
-	  }
-	  return modifiedName.toString();
-	  
-	}
-
-	/**
-	 * take a character and return its hex equivalent
-	 */
-	private final static String mangleChar(char ch) {
-	  if ( ch == File.separatorChar ) {
-		  ch = '/';
-	  }
-	
-	  if ( Character.isLetterOrDigit(ch) == true ) {
-		  return "" + ch; //$NON-NLS-1$
-	  }
-	  return "_" + Integer.toHexString(ch).toUpperCase() + "_"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPIncludeRegionHelper.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPIncludeRegionHelper.java
deleted file mode 100644
index 5ef7219..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPIncludeRegionHelper.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.java;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-/**
- * Extension of XMLJSPRegionHelper inteded to parse entire included JSP files.
- * Basically it expands the rules for what tags are parsed as JSP.
- * 
- * @author pavery
- */
-class JSPIncludeRegionHelper extends XMLJSPRegionHelper {
-	/**
-	 * @param JSPTranslator
-	 */
-	public JSPIncludeRegionHelper(JSPTranslator translator) {
-		super(translator);
-	}
-
-	// these methods determine what content gets added to the local scriplet, expression, declaration buffers
-	/*
-	 * return true for elements whose contents we might want to add to the java file we are building
-	 */
-	protected boolean isJSPStartRegion(IStructuredDocumentRegion sdRegion) {
-		String type = sdRegion.getFirstRegion().getType();
-		return type == DOMRegionContext.XML_TAG_OPEN || type == DOMJSPRegionContexts.JSP_DECLARATION_OPEN || type == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN || type == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN || type == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN || type == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME;
-	}
-
-	protected boolean isDeclaration(String tagName) {
-		return tagName.equalsIgnoreCase("jsp:declaration") //$NON-NLS-1$		
-					|| tagName.equalsIgnoreCase("<%!"); //$NON-NLS-1$		
-	}
-
-	protected boolean isExpression(String tagName) {
-		return tagName.equalsIgnoreCase("jsp:expression") //$NON-NLS-1$		
-					|| tagName.equalsIgnoreCase("<%="); //$NON-NLS-1$
-	}
-
-	protected boolean isScriptlet(String tagName) {
-		return tagName.equalsIgnoreCase("jsp:scriptlet") //$NON-NLS-1$		
-					|| tagName.equalsIgnoreCase("<%"); //$NON-NLS-1$
-	}
-
-	protected boolean isIncludeDirective(String tagName) {
-		return tagName.equalsIgnoreCase("jsp:directive.include") || //$NON-NLS-1$
-					tagName.equalsIgnoreCase("include"); //$NON-NLS-1$
-	}
-
-	protected boolean isTaglibDirective(String tagName) {
-		return tagName.equalsIgnoreCase("jsp:directive.taglib") //$NON-NLS-1$
-					|| tagName.equalsIgnoreCase("taglib"); //$NON-NLS-1$
-	}
-
-	protected boolean isPageDirective(String tagName) {
-		return tagName.equalsIgnoreCase("jsp:directive.page") //$NON-NLS-1$
-					|| tagName.equalsIgnoreCase("page"); //$NON-NLS-1$
-	}
-
-	// different btwn XML-JSP and JSP tags		
-	protected String getRegionName(IStructuredDocumentRegion sdRegion) {
-		ITextRegion nameRegion = null;
-		String nameStr = ""; //$NON-NLS-1$
-		int size = sdRegion.getRegions().size();
-		if (size > 1) {
-			// presumably XML-JSP <jsp:scriptlet> | <jsp:expression> | <jsp:declaration>
-			nameRegion = sdRegion.getRegions().get(1);
-		}
-		else if (size == 1) {
-			// presumably JSP open <% | <%= | <%!
-			nameRegion = sdRegion.getRegions().get(0);
-		}
-		if (nameRegion != null)
-			nameStr = fTextToParse.substring(sdRegion.getStartOffset(nameRegion), sdRegion.getTextEndOffset(nameRegion));
-		return nameStr.trim();
-	}
-
-	protected void processOtherRegions(IStructuredDocumentRegion sdRegion) {
-		processIncludeDirective(sdRegion);
-		processPageDirective(sdRegion);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPProblemRequestor.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPProblemRequestor.java
deleted file mode 100644
index cf47682..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPProblemRequestor.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.eclipse.jst.jsp.core.internal.java;
-
-/**
- * @author pavery
- */
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jdt.core.IProblemRequestor;
-import org.eclipse.jdt.core.compiler.IProblem;
-
-class JSPProblemRequestor implements IProblemRequestor {
-
-    private boolean fIsActive = false;
-
-    private boolean fIsRunning = false;
-
-    private List fCollectedProblems;
-
-    public void beginReporting() {
-
-        fIsRunning = true;
-        fCollectedProblems = new ArrayList();
-    }
-
-    public void acceptProblem(IProblem problem) {
-
-        if (isActive())
-            fCollectedProblems.add(problem);
-    }
-
-    public void endReporting() {
-
-        fIsRunning = false;
-    }
-
-    public boolean isActive() {
-
-        return fIsActive && fCollectedProblems != null;
-    }
-
-    /**
-     * Sets the active state of this problem requestor.
-     * 
-     * @param isActive
-     *            the state of this problem requestor
-     */
-    public void setIsActive(boolean isActive) {
-
-        if (fIsActive != isActive) {
-            fIsActive = isActive;
-            if (fIsActive)
-                startCollectingProblems();
-            else
-                stopCollectingProblems();
-        }
-    }
-
-    /**
-     * Tells this annotation model to collect temporary problems from now on.
-     */
-    private void startCollectingProblems() {
-
-        fCollectedProblems = new ArrayList();
-    }
-
-    /**
-     * Tells this annotation model to no longer collect temporary problems.
-     */
-    private void stopCollectingProblems() {
-
-        // do nothing
-    }
-
-    /**
-     * @return the list of collected problems
-     */
-    public List getCollectedProblems() {
-
-        return fCollectedProblems;
-    }
-
-    public boolean isRunning() {
-
-        return fIsRunning;
-    }
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslation.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslation.java
deleted file mode 100644
index 05d71b7..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslation.java
+++ /dev/null
@@ -1,572 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.java;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IBuffer;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.WorkingCopyOwner;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jst.jsp.core.internal.Logger;
-
-
-/**
- * <p>
- * An implementation of IJSPTranslation.  
- * <br>
- * This object that holds the java translation of 
- * a JSP file as well as a mapping of ranges from the translated Java to the JSP source, 
- * and mapping from JSP source back to the translated Java.
- * </p>
- * 
- * <p>
- * You may also use JSPTranslation to do CompilationUnit-esque things such as:
- * <ul>
- * 	<li>code select (get java elements for jsp selection)</li>
- *  <li>reconcile</li>
- *  <li>get java regions for jsp selection</li>
- *  <li>get a JSP text edit based on a Java text edit</li>
- *  <li>determine if a java offset falls within a jsp:useBean range</li>
- *  <li>determine if a java offset falls within a jsp import statment</li>
- * </ul>
- * </p>
- * 
- * @author pavery
- */
-public class JSPTranslation implements IJSPTranslation {
-	
-	// for debugging
-	private static final boolean DEBUG;
-	static {
-		String value= Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jsptranslation"); //$NON-NLS-1$
-		DEBUG= value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-
-	/** the name of the class (w/out extension) **/
-	private String fClassname = ""; //$NON-NLS-1$
-	private IJavaProject fJavaProject = null;
-	private HashMap fJava2JspMap = null;
-	private HashMap fJsp2JavaMap = null;
-	private HashMap fJava2JspImportsMap = null;
-	private HashMap fJava2JspUseBeanMap = null;
-	private HashMap fJava2JspIndirectMap = null;
-	private List fELProblems = null;
-	
-	// don't want to hold onto model (via translator)
-	// all relevant info is extracted in the constructor.
-	//private JSPTranslator fTranslator = null;
-	private String fJavaText = ""; //$NON-NLS-1$
-	private String fJspText = ""; //$NON-NLS-1$
-	
-	private ICompilationUnit fCompilationUnit = null;
-	private IProgressMonitor fProgressMonitor = null;
-	/** lock to synchronize access to the compilation unit **/
-	private byte[] fLock = null;
-
-	public JSPTranslation(IJavaProject javaProj, JSPTranslator translator) {
-
-		fLock = new byte[0];
-		fJavaProject = javaProj;
-		//fTranslator = translator;
-		
-		// can be null if it's an empty document (w/ NullJSPTranslation)
-		if(translator != null) {
-		    fJavaText = translator.getTranslation().toString();
-		    fJspText = translator.getJspText();
-			fClassname = translator.getClassname();
-			fJava2JspMap = translator.getJava2JspRanges();
-			fJsp2JavaMap = translator.getJsp2JavaRanges();
-			fJava2JspImportsMap = translator.getJava2JspImportRanges();
-			fJava2JspUseBeanMap = translator.getJava2JspUseBeanRanges();
-			fJava2JspIndirectMap = translator.getJava2JspIndirectRanges();
-			fELProblems = translator.getELProblems();
-		}
-	}
-	
-	public IJavaProject getJavaProject() {
-		return fJavaProject;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsp.core.internal.java.IJSPTranslation#getJavaText()
-	 */
-	public String getJavaText() {
-		//return (fTranslator != null) ? fTranslator.getTranslation().toString() : "";  //$NON-NLS-1$ 
-		return fJavaText;
-	}
-	
-	public String getJspText() {
-		//return (fTranslator != null) ? fTranslator.getJspText() : "";  //$NON-NLS-1$
-		return fJspText;
-	}
-	
-	public String getJavaPath() {
-		// create if necessary
-		ICompilationUnit cu = getCompilationUnit();
-		return (cu != null) ? cu.getPath().toString() : ""; //$NON-NLS-1$
-	}
-	
-	/**
-	 * 
-	 * @return the corresponding Java offset for a give JSP offset
-	 */
-	public int getJavaOffset(int jspOffset) {
-		int result = -1;
-		int offsetInRange = 0;
-		Position jspPos, javaPos = null;
-
-		// iterate all mapped jsp ranges
-		Iterator it = fJsp2JavaMap.keySet().iterator();
-		while (it.hasNext()) {
-			jspPos = (Position) it.next();
-			// need to count the last position as included
-			if (!jspPos.includes(jspOffset) && !(jspPos.offset+jspPos.length == jspOffset))
-				continue;
-
-			offsetInRange = jspOffset - jspPos.offset;
-			javaPos = (Position) fJsp2JavaMap.get(jspPos);
-			if(javaPos != null)
-				result = javaPos.offset + offsetInRange;
-			else  {
-
-				Logger.log(Logger.ERROR, "JavaPosition was null!" + jspOffset); //$NON-NLS-1$
-			}
-			break;
-		}
-		return result;
-	}
-
-	/**
-	 * 
-	 * @return the corresponding JSP offset for a give Java offset
-	 */
-	public int getJspOffset(int javaOffset) {
-		int result = -1;
-		int offsetInRange = 0;
-		Position jspPos, javaPos = null;
-
-		// iterate all mapped java ranges
-		Iterator it = fJava2JspMap.keySet().iterator();
-		while (it.hasNext()) {
-			javaPos = (Position) it.next();
-			// need to count the last position as included
-			if (!javaPos.includes(javaOffset) && !(javaPos.offset+javaPos.length == javaOffset))
-				continue;
-
-			offsetInRange = javaOffset - javaPos.offset;
-			jspPos = (Position) fJava2JspMap.get(javaPos);
-			
-			if(jspPos != null)
-				result = jspPos.offset + offsetInRange;
-			else  {
-				Logger.log(Logger.ERROR, "jspPosition was null!" + javaOffset); //$NON-NLS-1$
-			}
-			break;
-		}
-
-		return result;
-	}
-
-	/**
-	 * 
-	 * @return a map of Positions in the Java document to corresponding Positions in the JSP document
-	 */
-	public HashMap getJava2JspMap() {
-		return fJava2JspMap;
-	}
-
-	/**
-	 * 
-	 * @return a map of Positions in the JSP document to corresponding Positions in the Java document
-	 */
-	public HashMap getJsp2JavaMap() {
-		return fJsp2JavaMap;
-	}
-
-	/**
-	 * Checks if the specified java range covers more than one partition in the JSP file.
-	 * 
-	 * <p>
-	 * ex.
-	 * <code>
-	 * <%
-	 * 	if(submit)
-	 *  {
-	 * %>
-	 *    <p> print this...</p>
-	 * 
-	 * <%
-	 *  }
-	 *  else
-	 *  {
-	 * %>
-	 * 	   <p> print that...</p>
-	 * <%
-	 *  }
-	 * %>
-	 * </code>
-	 * </p>
-	 * 
-	 * the if else statement above spans 3 JSP partitions, so it would return true.
-	 * @param offset
-	 * @param length
-	 * @return <code>true</code> if the java code spans multiple JSP partitions, otherwise false.
-	 */
-	public boolean javaSpansMultipleJspPartitions(int javaOffset, int javaLength) {
-		HashMap java2jsp = getJava2JspMap();
-		int count = 0;
-		Iterator it = java2jsp.keySet().iterator();
-		Position javaRange = null;
-		while(it.hasNext()) {
-			javaRange = (Position)it.next();
-			if(javaRange.overlapsWith(javaOffset, javaLength))
-				count++;
-			if(count > 1)
-				return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * Returns the Java positions for the given range in the Java document.
-	 * 
-	 * @param offset
-	 * @param length
-	 * @return
-	 */
-	public Position[] getJavaRanges(int offset, int length) {
-
-		List results = new ArrayList();
-		Iterator it = getJava2JspMap().keySet().iterator();
-		Position p = null;
-		while(it.hasNext()) {
-			p = (Position)it.next();
-			if(p.overlapsWith(offset, length))
-				results.add(p);
-		}
-		return (Position[])results.toArray(new Position[results.size()]);
-	}
-	
-	/**
-	 * Indicates if the java Offset falls within the user import ranges
-	 * @param javaOffset
-	 * @return true if the java Offset falls within the user import ranges, otherwise false
-	 */
-	public boolean isImport(int javaOffset) {
-		return isInRanges(javaOffset, fJava2JspImportsMap);
-	}
-
-	/**
-	 * Indicates if the java offset falls within the use bean ranges
-	 * @param javaOffset
-	 * @return true if the java offset falls within the user import ranges, otherwise false
-	 */
-	public boolean isUseBean(int javaOffset) {
-		return isInRanges(javaOffset, fJava2JspUseBeanMap);
-	}
-	
-	/**
-	 * @param javaPos
-	 * @return
-	 */
-	public boolean isIndirect(int javaOffset) {
-		return isInRanges(javaOffset, fJava2JspIndirectMap, false);
-	}
-	
-	private boolean isInRanges(int javaOffset, HashMap ranges) {
-		return isInRanges(javaOffset, ranges, true);
-	}
-	/**
-	 * Tells you if the given offset is included in any of the ranges (Positions) passed in.
-	 * includeEndOffset tells whether or not to include the end offset of each range in the test.
-	 * 
-	 * @param javaOffset
-	 * @param ranges
-	 * @param includeEndOffset
-	 * @return
-	 */
-	private boolean isInRanges(int javaOffset, HashMap ranges, boolean includeEndOffset) {
-		
-		Iterator it = ranges.keySet().iterator();
-		while(it.hasNext()) {
-			Position javaPos = (Position)it.next();
-			// also include the start and end offset (only if requested)
-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81687
-			if(javaPos.includes(javaOffset) || (includeEndOffset && javaPos.offset+javaPos.length == javaOffset)) 
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Return the Java CompilationUnit associated with this JSPTranslation (this particular model)
-	 * When using methods on the CU, it's reccomended to synchronize on the CU for reliable
-	 * results.
-	 * 
-	 * The method is synchronized to ensure that <code>createComplilationUnit</code> doesn't
-	 * get entered 2 or more times simultaneously.  A side effect of that is 2 compilation units
-	 * can be created in the JavaModelManager, but we only hold one reference to it in 
-	 * fCompilationUnit.  This would lead to a leak since only one instance of the CU is
-	 * discarded in the <code>release()</code> method.
-	 * 
-	 * @return a CompilationUnit representation of this JSPTranslation
-	 */
-	public ICompilationUnit getCompilationUnit() {
-		synchronized(fLock) {
-			try {
-				if (fCompilationUnit == null) {
-					fCompilationUnit = createCompilationUnit();
-				}
-			}
-			catch (JavaModelException jme) {
-				if(DEBUG)
-					Logger.logException("error creating JSP working copy... ", jme); //$NON-NLS-1$
-			}
-		}
-		return fCompilationUnit;
-	}
-	
-	/**
-	 * Originally from ReconcileStepForJava.  Creates an ICompilationUnit from the contents of the JSP document.
-	 * 
-	 * @return an ICompilationUnit from the contents of the JSP document
-	 */
-	private ICompilationUnit createCompilationUnit() throws JavaModelException {
-		
-		IPackageFragment packageFragment = null;
-		IJavaElement je = getJavaProject();
-
-		if (je == null || !je.exists())
-			return null;
-
-		switch (je.getElementType()) {
-			case IJavaElement.PACKAGE_FRAGMENT :
-				je = je.getParent();
-			// fall through
-
-			case IJavaElement.PACKAGE_FRAGMENT_ROOT :
-				IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) je;
-				packageFragment = packageFragmentRoot.getPackageFragment(IPackageFragmentRoot.DEFAULT_PACKAGEROOT_PATH);
-				break;
-
-			case IJavaElement.JAVA_PROJECT :
-				IJavaProject jProject = (IJavaProject) je;
-
-				if (!jProject.exists()) {
-					if(DEBUG) {
-						System.out.println("** Abort create working copy: cannot create working copy: JSP is not in a Java project"); //$NON-NLS-1$
-					}
-					return null;
-				}
-
-				packageFragmentRoot = null;
-				IPackageFragmentRoot[] packageFragmentRoots = jProject.getPackageFragmentRoots();
-				int i = 0;
-				while (i < packageFragmentRoots.length) {
-					if (!packageFragmentRoots[i].isArchive() && !packageFragmentRoots[i].isExternal()) {
-						packageFragmentRoot = packageFragmentRoots[i];
-						break;
-					}
-					i++;
-				}
-				if (packageFragmentRoot == null) {
-					if(DEBUG) {
-						System.out.println("** Abort create working copy: cannot create working copy: JSP is not in a Java project with source package fragment root"); //$NON-NLS-1$
-					}
-					return null;
-				}
-				packageFragment = packageFragmentRoot.getPackageFragment(IPackageFragmentRoot.DEFAULT_PACKAGEROOT_PATH);
-				break;
-
-			default :
-				return null;
-		}
-		
-		ICompilationUnit cu = packageFragment.getCompilationUnit(getClassname() + ".java").getWorkingCopy(getWorkingCopyOwner(), getProblemRequestor(), getProgressMonitor()); //$NON-NLS-1$
-		setContents(cu);
-
-		if(DEBUG) {
-			System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); //$NON-NLS-1$
-			System.out.println("(+) JSPTranslation ["+ this + "] finished creating CompilationUnit: " + cu); //$NON-NLS-1$ //$NON-NLS-2$
-			System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); //$NON-NLS-1$
-		}
-		
-		return cu;
-	}
-
-	/**
-	 * 
-	 * @return the problem requestor for the CompilationUnit in this JSPTranslation
-	 */
-	private JSPProblemRequestor getProblemRequestor() {
-	    return CompilationUnitHelper.getInstance().getProblemRequestor();
-	}
-
-	/**
-	 * 
-	 * @return the IWorkingCopyOwner for this CompilationUnit in this JSPTranslation
-	 */
-	public WorkingCopyOwner getWorkingCopyOwner() {
-	    return CompilationUnitHelper.getInstance().getWorkingCopyOwner();
-	}
-
-	/**
-	 * 
-	 * @return the progress monitor used in long operations (reconcile, creating the CompilationUnit...) in this JSPTranslation
-	 */
-	private IProgressMonitor getProgressMonitor() {
-		if (fProgressMonitor == null)
-			fProgressMonitor = new NullProgressMonitor();
-		return fProgressMonitor;
-	}
-
-	/**
-	 * 
-	 * @return the List of problems collected during reconcile of the compilation unit
-	 */
-	public List getProblems() {
-		List problems = getProblemRequestor().getCollectedProblems();
-		return problems != null ? problems : new ArrayList();
-	}
-	
-	/**
-	 * 
-	 * @return the List of problems collected during reconcile of the compilation unit
-	 */
-	public List getELProblems() {
-		return fELProblems != null ? fELProblems : new ArrayList();
-	}
-
-
-	/**
-	 * Must be set true in order for problems to be collected during reconcile.
-	 * If set false, problems will be ignored during reconcile.
-	 * @param collect
-	 */
-	public void setProblemCollectingActive(boolean collect) {
-		ICompilationUnit cu = getCompilationUnit();
-		if(cu != null) {	
-			getProblemRequestor().setIsActive(collect);
-		}
-	}
-
-	/**
-	 * Reconciles the compilation unit for this JSPTranslation
-	 */
-	public void reconcileCompilationUnit() {
-		ICompilationUnit cu = getCompilationUnit();
-		if (cu != null) {
-			try {
-				synchronized(cu) {
-					cu.makeConsistent(getProgressMonitor());
-					cu.reconcile(ICompilationUnit.NO_AST, true, getWorkingCopyOwner(), getProgressMonitor());
-				}
-			}
-			catch (JavaModelException e) {
-				Logger.logException(e);
-			}
-		}
-	}
-
-	/**
-	 * Set contents of the compilation unit to the translated jsp text.
-	 * @param the ICompilationUnit on which to set the buffer contents
-	 */
-	private void setContents(ICompilationUnit cu) {
-		if (cu == null)
-			return;
-		
-		synchronized (cu) {
-			IBuffer buffer;
-			try {
-				
-				buffer = cu.getBuffer();
-			}
-			catch (JavaModelException e) {
-				e.printStackTrace();
-				buffer = null;
-			}
-	
-			if (buffer != null)
-				buffer.setContents(getJavaText());
-		}
-	}
-
-	/**
-	 * Returns the IJavaElements corresponding to the JSP range in the JSP StructuredDocument
-	 * 
-	 * @param jspStart staring offset in the JSP document
-	 * @param jspEnd ending offset in the JSP document
-	 * @return IJavaElements corresponding to the JSP selection
-	 */
-	public IJavaElement[] getElementsFromJspRange(int jspStart, int jspEnd) {
-
-		int javaPositionStart = getJavaOffset(jspStart);
-		int javaPositionEnd = getJavaOffset(jspEnd);
-
-		IJavaElement[] EMTPY_RESULT_SET = new IJavaElement[0];
-		IJavaElement[] result = EMTPY_RESULT_SET;
-		try {
-			ICompilationUnit cu = getCompilationUnit();
-			if (cu != null && cu.getBuffer().getLength() > 0 && javaPositionStart > 0 && javaPositionEnd >= javaPositionStart) {
-				synchronized (cu) {
-					result = cu.codeSelect(javaPositionStart, javaPositionEnd - javaPositionStart);
-				}
-			}
-
-			if (result == null || result.length == 0)
-				return EMTPY_RESULT_SET;
-		}
-		catch (JavaModelException x) {
-			Logger.logException(x);
-		}
-
-		return result;
-	}
-
-	public String getClassname() {
-		return fClassname;
-	}
-
-	/**
-	 * Must discard compilation unit, or else they can leak in the JavaModelManager
-	 */
-	public void release() {
-		
-		synchronized(fLock) {
-			if(fCompilationUnit != null) {
-				try {
-					if(DEBUG) {
-						System.out.println("------------------------------------------------------------------"); //$NON-NLS-1$
-						System.out.println("(-) JSPTranslation [" + this +"] discarding CompilationUnit: " + fCompilationUnit); //$NON-NLS-1$ //$NON-NLS-2$
-						System.out.println("------------------------------------------------------------------"); //$NON-NLS-1$
-					}
-					fCompilationUnit.discardWorkingCopy();	
-				} 
-				catch (JavaModelException e) {
-					// we're done w/ it anyway
-				}
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapter.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapter.java
deleted file mode 100644
index 5ee8bb2..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapter.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.java;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-/**
- * An adapter for getting a JSPTranslation of the document.
- * 
- * @author pavery
- */
-public class JSPTranslationAdapter implements INodeAdapter, IDocumentListener {
-	
-	// for debugging
-	private static final boolean DEBUG;
-	static {
-		String value= Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jsptranslation"); //$NON-NLS-1$
-		DEBUG= value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-	
-	private IDocument fJspDocument = null;
-	private IDocument fJavaDocument = null;
-	private JSPTranslationExtension fJSPTranslation = null;
-	private boolean fDocumentIsDirty = true;
-	private IDOMModel fXMLModel;
-	private JSPTranslator fTranslator = null;
-	private NullProgressMonitor fTranslationMonitor = null;
-
-	public JSPTranslationAdapter(IDOMModel xmlModel) {
-		setXMLModel(xmlModel);
-		initializeJavaPlugins();
-	}
-
-	/**
-	 * Initialize the required Java Plugins
-	 */
-	protected void initializeJavaPlugins() {
-		JavaCore.getPlugin();
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return type.equals(IJSPTranslation.class);
-	}
-
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		// nothing to do
-	}
-
-	/**
-	 * Automatically set through the setXMLModel(XMLModel)
-	 * 
-	 * @param doc
-	 */
-	private void setDocument(IDocument doc) {
-		if (fJspDocument != null)
-			fJspDocument.removeDocumentListener(this);
-		if (doc != null) {
-			doc.addDocumentListener(this);
-			fJspDocument = doc;
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
-	 */
-	public void documentAboutToBeChanged(DocumentEvent event) {
-		// do nothing
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
-	 */
-	public void documentChanged(DocumentEvent event) {
-		// mark translation for rebuilding
-		fDocumentIsDirty = true;
-	}
-
-	public void release() {
-		
-		if(fJspDocument != null)
-			fJspDocument.removeDocumentListener(this);
-		
-		if(fTranslationMonitor != null)
-			fTranslationMonitor.setCanceled(true);
-		
-		if(fJSPTranslation != null) {
-			
-			if(DEBUG)
-				System.out.println("JSPTranslationAdapter releasing:" + fJSPTranslation); //$NON-NLS-1$
-			
-			fJSPTranslation.release();
-		}
-	}
-
-	/**
-	 * Returns the JSPTranslation for this adapter.
-	 * 
-	 * @return a JSPTranslationExtension
-	 */
-	public synchronized JSPTranslationExtension getJSPTranslation() {
-		
-		if (fJSPTranslation == null || fDocumentIsDirty) {
-			JSPTranslator translator = null;
-			if (getXMLModel() != null && getXMLModel().getIndexedRegion(0) != null) {
-				translator = getTranslator((IDOMNode) getXMLModel().getIndexedRegion(0));
-				translator.translate();
-				StringBuffer javaContents = translator.getTranslation();
-				fJavaDocument = new Document(javaContents.toString());
-				
-			}
-			else {
-				// empty document case
-				translator = new JSPTranslator();
-				StringBuffer emptyContents = translator.getEmptyTranslation();
-				fJavaDocument = new Document(emptyContents.toString());
-			}
-			// it's going to be rebuilt, so we release it here
-			if(fJSPTranslation != null) {
-				if(DEBUG)
-					System.out.println("JSPTranslationAdapter releasing:" + fJSPTranslation); //$NON-NLS-1$
-				fJSPTranslation.release();
-			}
-			fJSPTranslation = new JSPTranslationExtension(getXMLModel().getStructuredDocument(), fJavaDocument, getJavaProject(), translator);
-			fDocumentIsDirty = false;
-		}
-		return fJSPTranslation;
-	}
-
-	/**
-	 * Returns the JSPTranslator for this adapter. If it's null, a new
-	 * translator is created with the xmlNode. Otherwise the
-	 * translator.reset(xmlNode) is called to reset the current local
-	 * translator.
-	 * 
-	 * @param xmlNode
-	 *            the first node of the JSP document to be translated
-	 * @return the JSPTranslator for this adapter (creates if null)
-	 */
-	private JSPTranslator getTranslator(IDOMNode xmlNode) {
-		if (fTranslator == null) {
-			fTranslationMonitor = new NullProgressMonitor();
-			fTranslator = new JSPTranslator();
-			fTranslator.reset(xmlNode, fTranslationMonitor);
-		}
-		else
-			fTranslator.reset(xmlNode, fTranslationMonitor);
-		return fTranslator;
-	}
-
-	/**
-	 * set the XMLModel for this adapter. Must be called.
-	 * 
-	 * @param xmlModel
-	 */
-	public void setXMLModel(IDOMModel xmlModel) {
-		fXMLModel = xmlModel;
-		setDocument(fXMLModel.getStructuredDocument());
-	}
-
-	/**
-	 * @return the XMLModel for this adapter.
-	 */
-	public IDOMModel getXMLModel() {
-		return fXMLModel;
-	}
-
-	/**
-	 * Gets (or creates via JavaCore) a JavaProject based on the location of
-	 * this adapter's XMLModel.  Returns null for non IFile based models.
-	 * 
-	 * @return the java project where
-	 */
-	public IJavaProject getJavaProject() {
-
-		IJavaProject javaProject = null;
-		try {
-			String baseLocation = getXMLModel().getBaseLocation();
-			// 20041129 (pa) the base location changed for xml model 
-			// because of FileBuffers, so this code had to be updated
-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=79686
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-			IPath filePath = new Path(baseLocation);
-			IFile file = null;
-			IProject project = null;
-			if (filePath.segmentCount() > 1) {
-				file = root.getFile(filePath);
-			}
-			if (file != null) {
-				project = file.getProject();
-			}
-//			IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(baseLocation));
-//			for (int i = 0; project == null && i < files.length; i++) {
-//				if (files[i].getType() != IResource.PROJECT) {
-//					project = files[i].getProject();
-//					break;
-//				}
-//			}
-			if(project != null) {
-				javaProject = JavaCore.create(project);
-			}
-		}
-		catch (Exception ex) {
-			if (getXMLModel() != null)
-				Logger.logException("(JSPTranslationAdapter) problem getting java project from the XMLModel's baseLocation > " + getXMLModel().getBaseLocation(), ex); //$NON-NLS-1$
-			else
-				Logger.logException("(JSPTranslationAdapter) problem getting java project", ex); //$NON-NLS-1$
-		}
-		return javaProject;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapterFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapterFactory.java
deleted file mode 100644
index ab3a132..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapterFactory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.java;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-/**
- * Factory for JSPTranslationAdapters.
- * 
- * @author pavery
- *  
- */
-public class JSPTranslationAdapterFactory extends AbstractAdapterFactory {
-
-	private JSPTranslationAdapter fAdapter = null;
-
-	// for debugging
-	private static final boolean DEBUG;
-	static {
-		String value= Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jsptranslation"); //$NON-NLS-1$
-		DEBUG= value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-	
-	public JSPTranslationAdapterFactory() {
-		super();
-	}
-
-	public INodeAdapterFactory copy() {
-		return new JSPTranslationAdapterFactory();
-	}
-
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		if (target instanceof IDOMNode && fAdapter == null) {
-			fAdapter = new JSPTranslationAdapter(((IDOMNode) target).getModel());
-			if(DEBUG) {
-				System.out.println("(+) JSPTranslationAdapterFactory [" + this + "] created adapter: " + fAdapter); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		return fAdapter;
-	}
-
-
-	public boolean isFactoryForType(Object type) {
-		return type.equals(IJSPTranslation.class);
-	}
-
-	public void release() {
-		if (fAdapter != null) {
-			if(DEBUG) {
-				System.out.println("(-) JSPTranslationAdapterFactory [" + this + "] releasing adapter: " + fAdapter); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			fAdapter.release();
-		}
-		super.release();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java
deleted file mode 100644
index 007befe..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.java;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.text.edits.DeleteEdit;
-import org.eclipse.text.edits.InsertEdit;
-import org.eclipse.text.edits.MalformedTreeException;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.text.edits.ReplaceEdit;
-import org.eclipse.text.edits.TextEdit;
-
-
-/**
- * Adds the notion of IDocuments (jsp Document and java Document)
- * Used for TextEdit translation
- * @author pavery
- */
-public class JSPTranslationExtension extends JSPTranslation {
-	
-	// for debugging
-	private static final boolean DEBUG;
-	static {
-		String value= Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jsptranslation"); //$NON-NLS-1$
-		DEBUG= value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-	
-	// just a convenience data structure
-	// to keep track of java position deltas
-	private class PositionDelta {
-		
-		public boolean isDeleted = false;
-		public int preOffset = 0;
-		public int preLength = 0;
-		public int postOffset = 0;
-		public int postLength = 0;
-		
-		public PositionDelta(int preOffset, int preLength) {
-			this.preOffset = preOffset;
-			this.preLength = preLength;
-		}
-		public void setPostEditData(int postOffset, int postLength, boolean isDeleted) {
-			this.postOffset = postOffset;
-			this.postLength = postLength;
-			this.isDeleted = isDeleted;
-		}
-	}
-	
-	private IDocument fJspDocument = null;
-	private IDocument fJavaDocument = null;
-	
-	public JSPTranslationExtension(IDocument jspDocument, IDocument javaDocument, IJavaProject javaProj, JSPTranslator translator) {
-		super(javaProj, translator);
-		fJspDocument = jspDocument;
-		fJavaDocument = javaDocument;
-		
-		// make sure positions are added to Java and JSP documents
-		// this is necessary for text edits
-		addPositionsToDocuments();
-	}
-	
-	public IDocument getJspDocument() {
-		return fJspDocument;
-	}
-	
-	public IDocument getJavaDocument() {
-		return fJavaDocument;
-	}
-	
-	public String getJavaText() {
-		return getJavaDocument() != null ? getJavaDocument().get() : ""; //$NON-NLS-1$
-	}
-	
-	/**
-	 * Returns a corresponding TextEdit for the JSP file given a TextEdit for a Java file.
-	 * Note: This method actually applies the Java edit to the internal Java document.
-	 * 
-	 * @param javaEdit
-	 * @return the corresponding JSP edits (not applied to the document yet)
-	 */
-	public TextEdit getJspEdit(TextEdit javaEdit) {
-
-		if(javaEdit == null)
-			return null;
-		
-		List jspEdits = new ArrayList();
-
-		int offset = javaEdit.getOffset();
-		int length = javaEdit.getLength();
-		
-		if(javaEdit instanceof MultiTextEdit && javaEdit.getChildren().length > 0) {
-	
-			IRegion r = TextEdit.getCoverage(getAllEdits(javaEdit));
-			offset = r.getOffset();
-			length = r.getLength();
-		}
-		
-		// get java ranges that will be affected by the edit
-		Position[] javaPositions = getJavaRanges(offset, length);
-		
-		// record position data before the change
-		Position[] jspPositions = new Position[javaPositions.length];
-		PositionDelta[] deltas = new PositionDelta[javaPositions.length];
-		for(int i=0; i<javaPositions.length; i++) {
-			deltas[i] = new PositionDelta(javaPositions[i].offset, javaPositions[i].length);
-			// isIndirect means the position doesn't actually exist as exact text 
-			// mapping from java <-> jsp (eg. an import statement)
-			if(!isIndirect(javaPositions[i].offset))
-				jspPositions[i] = (Position)getJava2JspMap().get(javaPositions[i]);
-		}
-
-		if(DEBUG) {
-			System.out.println("================================================"); //$NON-NLS-1$
-			System.out.println("deltas:"); //$NON-NLS-1$
-			String javaText = getJavaText();
-			for(int i=0; i<deltas.length; i++) 
-				System.out.println("pos[" + deltas[i].preOffset + ":" + deltas[i].preLength + "]" + javaText.substring(deltas[i].preOffset, deltas[i].preOffset + deltas[i].preLength) ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			System.out.println("==============================================="); //$NON-NLS-1$
-		}
-		
-		// apply the edit to the java document
-		try {
-			javaEdit.apply(getJavaDocument());
-		} catch (MalformedTreeException e) {
-			Logger.logException(e);
-		} catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-		// now at this point Java positions are unreliable since they were updated after applying java edit.
-		
-		String newJavaText = getJavaDocument().get();
-		if(DEBUG) 
-			System.out.println("java post format text:\n" + newJavaText); //$NON-NLS-1$
-		
-		// record post edit data
-		for(int i=0; i<javaPositions.length; i++)
-			deltas[i].setPostEditData(javaPositions[i].offset, javaPositions[i].length, javaPositions[i].isDeleted);
-		
-		// create appropriate text edits for deltas
-		Position jspPos = null;
-		String replaceText = ""; //$NON-NLS-1$
-		for(int i=0; i<deltas.length; i++) {
-			jspPos = jspPositions[i];
-			// can be null if it's an indirect mapping position
-			// or if something was added into java that was not originally in JSP (like a new import...)
-
-			if(jspPos != null) {
-				if(deltas[i].isDeleted) {
-					jspEdits.add(new DeleteEdit(jspPos.offset, jspPos.length));
-				}
-				else {
-					replaceText = newJavaText.substring(deltas[i].postOffset, deltas[i].postOffset + deltas[i].postLength);
-					jspEdits.add(new ReplaceEdit(jspPos.offset, jspPos.length, replaceText));
-				}
-				if(DEBUG) 
-					debugReplace(deltas, jspPos, replaceText, i);
-			}
-			else {
-				// the new Java text has no corresponding JSP position
-				// possible new import?
-				if(isImport(javaPositions[i].getOffset()) && replaceText.lastIndexOf("import ") != -1) { //$NON-NLS-1$
-					replaceText = newJavaText.substring(deltas[i].postOffset, deltas[i].postOffset + deltas[i].postLength);
-					String importText = replaceText.substring(replaceText.lastIndexOf("import "), replaceText.indexOf(";")); //$NON-NLS-1$ //$NON-NLS-2$
-					// evenutally need to check if it's XML-JSP
-					importText = "<%@page import=\"" + importText + "\" %>\n"; //$NON-NLS-1$ //$NON-NLS-2$
-					jspEdits.add(new InsertEdit(0, importText));
-				}
-			}
-		}
-		return createMultiTextEdit((TextEdit[])jspEdits.toArray(new TextEdit[jspEdits.size()]));
-	}
-	
-
-	/**
-	 * Combines an array of edits into one MultiTextEdit (with the appropriate coverage region)
-	 * @param edits
-	 * @return
-	 */
-	private TextEdit createMultiTextEdit(TextEdit[] edits) {
-		
-		if(edits.length == 0)
-			return new MultiTextEdit();
-			
-		IRegion region = TextEdit.getCoverage(edits);
-		MultiTextEdit multiEdit = new MultiTextEdit(region.getOffset(), region.getLength());
-		for (int i = 0; i < edits.length; i++) {
-			addToMultiEdit(edits[i], multiEdit);
-		}
-		return multiEdit;
-	}
-	
-	
-	private void addToMultiEdit(TextEdit edit, MultiTextEdit multiEdit) {
-		
-		// check for overlap here
-		// discard overlapping edits..
-		// possible exponential performance hit... need a better way...
-		TextEdit[] children = multiEdit.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			if(children[i].covers(edit))
-				// don't add
-				return;
-		}
-		multiEdit.addChild(edit);
-	}
-	
-	
-	/**
-	 * @param translation
-	 */
-	private void addPositionsToDocuments() {
-		
-		// can be null if it's a NullJSPTranslation
-		if(getJavaDocument() != null && getJspDocument() != null) {
-
-			HashMap java2jsp = getJava2JspMap();
-			Iterator it = java2jsp.keySet().iterator();
-			Position javaPos = null;
-			while(it.hasNext()) {
-				javaPos =(Position)it.next();
-				try {
-					
-					fJavaDocument.addPosition(javaPos);
-					
-				} catch (BadLocationException e) {
-					if(DEBUG) {
-						System.out.println("tyring to add Java Position:[" + javaPos.offset + ":" + javaPos.length + "] to " + getJavaPath()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$					
-						//System.out.println("substring :[" + fJavaDocument.get().substring(javaPos.offset) + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-						Logger.logException(e);
-					}
-				}
-				
-				try {
-					
-					fJspDocument.addPosition((Position)java2jsp.get(javaPos));
-					
-				} catch (BadLocationException e) {
-					if(DEBUG) {
-						System.out.println("tyring to add JSP Position:[" + ((Position)java2jsp.get(javaPos)).offset + ":" +((Position)java2jsp.get(javaPos)).length + "] to " + getJavaPath()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						Logger.logException(e);
-					}
-				}
-			}
-		}
-	}
-	
-	/**
-	 * Recursively gets all child edits
-	 * @param javaEdit
-	 * @return all child edits
-	 */
-	private TextEdit[] getAllEdits(TextEdit javaEdit) {
-		
-		List result = new ArrayList();
-		if(javaEdit instanceof MultiTextEdit) {
-			TextEdit[] children = javaEdit.getChildren();
-			for (int i = 0; i < children.length; i++) 
-				result.addAll(Arrays.asList(getAllEdits(children[i])));
-		}
-		else 
-			result.add(javaEdit);
-		return (TextEdit[])result.toArray(new TextEdit[result.size()]);
-	}
-
-	/**
-	 * @param deltas
-	 * @param jspPos
-	 * @param replaceText
-	 * @param jspText
-	 * @param i
-	 */
-	private void debugReplace(PositionDelta[] deltas, Position jspPos, String replaceText, int i) {
-		String jspChunk;
-		jspChunk = getJspDocument().get().substring(jspPos.offset, jspPos.offset + jspPos.length);
-		if(!deltas[i].isDeleted) {
-			System.out.println("replacing:"); //$NON-NLS-1$
-			System.out.println("jsp:[" + jspChunk + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-			System.out.println("w/ :[" + replaceText + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-			System.out.println("--------------------------------"); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java
deleted file mode 100644
index 4bdb485..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.java;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.text.edits.CopySourceEdit;
-import org.eclipse.text.edits.CopyTargetEdit;
-import org.eclipse.text.edits.DeleteEdit;
-import org.eclipse.text.edits.InsertEdit;
-import org.eclipse.text.edits.MoveSourceEdit;
-import org.eclipse.text.edits.MoveTargetEdit;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.text.edits.ReplaceEdit;
-import org.eclipse.text.edits.TextEdit;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-public class JSPTranslationUtil {
-	protected IDocument fDocument = null;
-	protected JSPTranslationExtension fTranslation = null;
-
-	public JSPTranslationUtil(IDocument document) {
-		fDocument = document;
-	}
-
-	public TextEdit translateTextEdit(TextEdit textEdit) {
-		TextEdit translatedTextEdit = null;
-
-		int javaOffset = textEdit.getOffset();
-		int jspOffset = getTranslation().getJspOffset(textEdit.getOffset());
-		int length = textEdit.getLength();
-
-		if (textEdit instanceof MultiTextEdit) {
-			translatedTextEdit = new MultiTextEdit();
-			TextEdit[] children = ((MultiTextEdit) textEdit).getChildren();
-			for (int i = 0; i < children.length; i++) {
-				TextEdit translatedChildTextEdit = translateTextEdit(children[i]);
-				if (translatedChildTextEdit != null)
-					((MultiTextEdit) translatedTextEdit).addChild(translatedChildTextEdit);
-			}
-		} else if (textEdit instanceof ReplaceEdit) {
-			if (jspOffset == -1)
-				return null;
-
-			if (!getTranslation().javaSpansMultipleJspPartitions(javaOffset, length))
-				translatedTextEdit = new ReplaceEdit(jspOffset, length, ((ReplaceEdit) textEdit).getText());
-		} else if (textEdit instanceof InsertEdit) {
-			translatedTextEdit = new InsertEdit(jspOffset, ((InsertEdit) textEdit).getText());
-		} else if (textEdit instanceof DeleteEdit) {
-			translatedTextEdit = new DeleteEdit(jspOffset, length);
-			TextEdit[] children = ((DeleteEdit) textEdit).getChildren();
-			for (int i = 0; i < children.length; i++) {
-				TextEdit translatedChildTextEdit = translateTextEdit(children[i]);
-				if (translatedChildTextEdit != null)
-					((DeleteEdit) translatedTextEdit).addChild(translatedChildTextEdit);
-			}
-		} else if (textEdit instanceof CopySourceEdit) {
-			translatedTextEdit = new CopySourceEdit(jspOffset, length);
-			((CopySourceEdit) translatedTextEdit).setTargetEdit(((CopySourceEdit) textEdit).getTargetEdit());
-			((CopySourceEdit) translatedTextEdit).setSourceModifier(((CopySourceEdit) textEdit).getSourceModifier());
-		} else if (textEdit instanceof CopyTargetEdit) {
-			translatedTextEdit = new CopyTargetEdit(jspOffset);
-			((CopyTargetEdit) textEdit).getSourceEdit().setTargetEdit((CopyTargetEdit) translatedTextEdit);
-		} else if (textEdit instanceof MoveSourceEdit) {
-			translatedTextEdit = new MoveSourceEdit(jspOffset, length);
-			((MoveSourceEdit) translatedTextEdit).setTargetEdit(((MoveSourceEdit) textEdit).getTargetEdit());
-		} else if (textEdit instanceof MoveTargetEdit) {
-			translatedTextEdit = new MoveTargetEdit(jspOffset);
-			((MoveTargetEdit) textEdit).getSourceEdit().setTargetEdit((MoveTargetEdit) translatedTextEdit);
-		} else {
-			System.out.println("Need to translate " + textEdit); //$NON-NLS-1$
-		}
-
-		return translatedTextEdit;
-	}
-
-	public JSPTranslationExtension getTranslation() {
-		if (fTranslation == null) {
-			IDOMModel xmlModel = (IDOMModel) getModelManager().getExistingModelForRead(fDocument);
-			try {
-				IDOMDocument xmlDoc = xmlModel.getDocument();
-
-				JSPTranslationAdapter translationAdapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
-				if (translationAdapter != null)
-					fTranslation = translationAdapter.getJSPTranslation();
-			} finally {
-				xmlModel.releaseFromRead();
-			}
-		}
-
-		return fTranslation;
-	}
-
-	public ICompilationUnit getCompilationUnit() {
-		return getTranslation().getCompilationUnit();
-	}
-
-	protected IModelManager getModelManager() {
-		return StructuredModelManager.getModelManager();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
deleted file mode 100644
index daf2811..0000000
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
+++ /dev/null
@@ -1,2059 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.jst.jsp.core.internal.java;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Stack;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDVariable;
-import org.eclipse.jst.jsp.core.internal.java.jspel.ASTExpression;
-import org.eclipse.jst.jsp.core.internal.java.jspel.ELGenerator;
-import org.eclipse.jst.jsp.core.internal.java.jspel.JSPELParser;
-import org.eclipse.jst.jsp.core.internal.java.jspel.ParseException;
-import org.eclipse.jst.jsp.core.internal.java.jspel.Token;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-import org.eclipse.wst.sse.core.internal.util.URIResolver;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocumentTracker;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMNodeWrapper;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-/**
- * Translates a JSP document into a HttpServlet. Keeps two way mapping from
- * java translation to the original JSP source, which can be obtained through
- * getJava2JspRanges() and getJsp2JavaRanges().
- * 
- * @author pavery
- */
-public class JSPTranslator {
-	// for debugging
-	private static final boolean DEBUG;
-	static {
-		String value = Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspjavamapping"); //$NON-NLS-1$
-		DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-
-	public static final String ENDL = "\n"; //$NON-NLS-1$
-
-	private String fClassHeader = "public class _JSPServlet extends "; //$NON-NLS-1$
-	private String fClassname = "_JSPServlet"; //$NON-NLS-1$
-
-	private String fServiceHeader = "public void _jspService(javax.servlet.http.HttpServletRequest request," + //$NON-NLS-1$
-				" javax.servlet.http.HttpServletResponse response)" + ENDL + //$NON-NLS-1$
-				"\t\tthrows java.io.IOException, javax.servlet.ServletException {" + ENDL + //$NON-NLS-1$
-				"javax.servlet.jsp.PageContext pageContext = null;" + ENDL + //$NON-NLS-1$
-				"javax.servlet.http.HttpSession session = null;" + ENDL + //$NON-NLS-1$
-				"javax.servlet.ServletContext application = null;" + ENDL + //$NON-NLS-1$
-				"javax.servlet.ServletConfig config = null;" + ENDL + //$NON-NLS-1$ 
-				"javax.servlet.jsp.JspWriter out = null;" + ENDL + //$NON-NLS-1$
-				"Object page = null;" + ENDL; //$NON-NLS-1$
-
-	private String fFooter = "}}"; //$NON-NLS-1$
-	private String fException = "Throwable exception = null;"; //$NON-NLS-1$
-	public static final String EXPRESSION_PREFIX = "out.print(\"\"+"; //$NON-NLS-1$
-	public static final String EXPRESSION_SUFFIX = ");"; //$NON-NLS-1$
-	private String fSuperclass = "javax.servlet.http.HttpServlet"; //$NON-NLS-1$
-
-	private String fTryCatchStart = ENDL + "try {" + ENDL; //$NON-NLS-1$
-	private String fTryCatchEnd = " } catch (java.lang.Exception e) {} " + ENDL; //$NON-NLS-1$
-
-	/** fSourcePosition = position in JSP source */
-	private int fSourcePosition = -1;
-	/** fRelativeOffest = offset in the buffer there the cursor is */
-	private int fRelativeOffset = -1;
-	/** fCursorPosition = offset in the translated java document */
-	private int fCursorPosition = -1;
-	/** some page directive attributes */
-	private boolean fIsErrorPage, fCursorInExpression = false;
-
-	/** user java code in body of the service method */
-	private StringBuffer fUserCode = new StringBuffer();
-	/** user EL Expression */
-	private StringBuffer fUserELExpressions = new StringBuffer();
-	/** user defined vars declared in the beginning of the class */
-	private StringBuffer fUserDeclarations = new StringBuffer();
-
-	/** user defined imports */
-	private StringBuffer fUserImports = new StringBuffer();
-
-	private StringBuffer fResult; // the final traslated java document
-	// string buffer
-	private StringBuffer fCursorOwner = null; // the buffer where the cursor
-	// is
-
-	private IDOMModel fStructuredModel = null;
-	private IStructuredDocument fStructuredDocument = null;
-	private ModelQuery fModelQuery = null;
-	// private XMLNode fPositionNode; // position in the DOM
-	private IStructuredDocumentRegion fCurrentNode;
-	private boolean fInCodeRegion = false; // flag for if cursor is in the
-	// current region being translated
-
-	/**
-	 * these constants are to keep track of whether the code in question is
-	 * embedded (JSP as an attribute or within comment tags) or is just
-	 * standard JSP code, or identifies if it's an expression
-	 */
-	protected final static int STANDARD_JSP = 0;
-	protected final static int EMBEDDED_JSP = 1;
-	protected final static int DECLARATION = 2;
-	protected final static int EXPRESSION = 4;
-	protected final static int SCRIPTLET = 8;
-
-	/** used to avoid infinite looping include files */
-	private Stack fIncludes = null;
-	/** mostly for helper classes, so they parse correctly */
-	private ArrayList fBlockMarkers = null;
-	/** use only one inclue helper per file location */
-	private HashMap fJSPIncludeHelperMap = null;
-	/**
-	 * for keeping track of offset in user buffers while document is being
-	 * built
-	 */
-	private int fOffsetInUserImports = 0;
-	private int fOffsetInUserDeclarations = 0;
-	private int fOffsetInUserCode = 0;
-
-	/** correlates ranges (positions) in java to ranges in jsp */
-	private HashMap fJava2JspRanges = new HashMap();
-
-	/**
-	 * map of ranges in fUserImports (relative to the start of the buffer) to
-	 * ranges in source JSP buffer.
-	 */
-	private HashMap fImportRanges = new HashMap();
-	/**
-	 * map of ranges in fUserCode (relative to the start of the buffer) to
-	 * ranges in source JSP buffer.
-	 */
-	private HashMap fCodeRanges = new HashMap();
-	/**
-	 * map of ranges in fUserDeclarations (relative to the start of the
-	 * buffer) to ranges in source JSP buffer.
-	 */
-	private HashMap fDeclarationRanges = new HashMap();
-
-	private HashMap fUseBeanRanges = new HashMap();
-	
-	private HashMap fUserELRanges = new HashMap();
-	
-	/**
-	 * ranges that don't directly map from java code to JSP code (eg.
-	 * <%@include file="included.jsp"%>
-	 */
-	private HashMap fIndirectRanges = new HashMap();
-
-	private IProgressMonitor fProgressMonitor = null;
-
-	/**
-	 * save JSP document text for later use may just want to read this from
-	 * the file or strucdtured document depending what is available
-	 */
-	private StringBuffer fJspTextBuffer = new StringBuffer();
-	
-	/**
-	 * JSP Expression Language Parser.
-	 */
-	private JSPELParser elParser = null;
-
-	private ArrayList fELProblems = new ArrayList();
-
-	/**
-	 * configure using an XMLNode
-	 * 
-	 * @param node
-	 * @param monitor
-	 */
-	private void configure(IDOMNode node, IProgressMonitor monitor) {
-
-		fProgressMonitor = monitor;
-		fStructuredModel = node.getModel();
-		// fPositionNode = node;
-
-		fModelQuery = ModelQueryUtil.getModelQuery(node.getOwnerDocument());
-		fStructuredDocument = fStructuredModel.getStructuredDocument();
-
-		String className = createClassname(node);
-		if (className.length() > 0) {
-			setClassname(className);
-			fClassHeader = "public class " + className + " extends "; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * memory saving configure (no StructuredDocument in memory) currently
-	 * doesn't handle included files
-	 * 
-	 * @param jspFile
-	 * @param monitor
-	 */
-	private void configure(IFile jspFile, IProgressMonitor monitor) {
-		// when configured on a file
-		// fStructuredModel, fPositionNode, fModelQuery, fStructuredDocument
-		// are all null
-
-		fProgressMonitor = monitor;
-
-		String className = createClassname(jspFile);
-		if (className.length() > 0) {
-			setClassname(className);
-			fClassHeader = "public class " + className + " extends "; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * Set the jsp text from an IFile
-	 * 
-	 * @param jspFile
-	 */
-	private void setJspText(IFile jspFile) {
-		try {
-			BufferedInputStream in = new BufferedInputStream(jspFile.getContents());
-			BufferedReader reader = new BufferedReader(new InputStreamReader(in));
-			String line = null;
-			while ((line = reader.readLine()) != null) {
-				fJspTextBuffer.append(line);
-				fJspTextBuffer.append(ENDL);
-			}
-			reader.close();
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-		catch (IOException e) {
-			Logger.logException(e);
-		}
-	}
-
-	/**
-	 * @param node
-	 * @return
-	 */
-	private String createClassname(IDOMNode node) {
-
-		String classname = ""; //$NON-NLS-1$
-		if (node != null) {
-			String base = node.getModel().getBaseLocation();
-			classname = JSP2ServletNameUtil.mangle(base);
-		}
-		return classname;
-	}
-
-	/**
-	 * @param jspFile
-	 * @return
-	 */
-	private String createClassname(IFile jspFile) {
-
-		String classname = ""; //$NON-NLS-1$
-		if (jspFile != null) {
-			classname = JSP2ServletNameUtil.mangle(jspFile.getFullPath().toString());
-		}
-		return classname;
-	}
-
-	public void setClassname(String classname) {
-		this.fClassname = classname;
-	}
-
-	public String getClassname() {
-		return this.fClassname != null ? this.fClassname : "GenericJspServlet"; //$NON-NLS-1$
-	}
-
-	/**
-	 * So that the JSPTranslator can be reused.
-	 */
-	public void reset(IDOMNode node, IProgressMonitor progress) {
-
-		// initialize some things on node
-		configure(node, progress);
-		reset();
-		// set the jsp text buffer
-		fJspTextBuffer.append(fStructuredDocument.get());
-	}
-
-	/**
-	 * conservative version (no StructuredDocument/Model)
-	 * 
-	 * @param jspFile
-	 * @param progress
-	 */
-	public void reset(IFile jspFile, IProgressMonitor progress) {
-
-		// initialize some things on node
-		configure(jspFile, progress);
-		reset();
-		// set the jsp text buffer
-		setJspText(jspFile);
-	}
-
-	/**
-	 * Reinitialize some fields
-	 */
-	private void reset() {
-
-		// reset progress monitor
-		if (fProgressMonitor != null)
-			fProgressMonitor.setCanceled(false);
-
-		// reinit fields
-		fSourcePosition = -1;
-		fRelativeOffset = -1;
-		fCursorPosition = -1;
-
-		fIsErrorPage = fCursorInExpression = false;
-
-		fUserCode = new StringBuffer();
-		fUserDeclarations = new StringBuffer();
-		fUserImports = new StringBuffer();
-		fUserELExpressions = new StringBuffer();
-
-		fResult = null;
-		fCursorOwner = null; // the buffer where the cursor is
-
-		fCurrentNode = null;
-		fInCodeRegion = false; // flag for if cursor is in the current region
-		// being translated
-
-		if (fIncludes != null)
-			fIncludes.clear();
-
-		fBlockMarkers = null;
-
-		fJSPIncludeHelperMap = null;
-
-		fOffsetInUserImports = 0;
-		fOffsetInUserDeclarations = 0;
-		fOffsetInUserCode = 0;
-
-		fJava2JspRanges.clear();
-		fImportRanges.clear();
-		fCodeRanges.clear();
-		fUseBeanRanges.clear();
-		fDeclarationRanges.clear();
-		fUserELRanges.clear();
-		fIndirectRanges.clear();
-
-		fJspTextBuffer = new StringBuffer();
-		
-		fELProblems = new ArrayList();
-		
-	}
-
-	/**
-	 * @return just the "shell" of a servlet, nothing contributed from the JSP
-	 *         doc
-	 */
-	public final StringBuffer getEmptyTranslation() {
-		reset();
-		buildResult();
-		return getTranslation();
-	}
-
-	/**
-	 * put the final java document together
-	 */
-	private final void buildResult() {
-		// to build the java document this is the order:
-		// 
-		// + user imports
-		// + class header
-		// [+ error page]
-		// + user declarations
-		// + service method header
-		// + try/catch start
-		// + user code
-		// + try/catch end
-		// + service method footer
-		fResult = new StringBuffer(fUserImports.length() + fClassHeader.length() + fUserDeclarations.length() + fServiceHeader.length() + fTryCatchStart.length() // try/catch
-					// start
-					+ fUserCode.length() + fTryCatchEnd.length() // try/catch
-					// end
-					+ fFooter.length());
-		int javaOffset = 0;
-
-		// updateRanges(fIndirectImports, javaOffset);
-		// user imports
-		append(fUserImports);
-		javaOffset += fUserImports.length();
-		// updateRanges(fImportRanges, javaOffset);
-
-		// class header
-		fResult.append(fClassHeader); //$NON-NLS-1$
-		javaOffset += fClassHeader.length();
-		fResult.append(fSuperclass + "{" + ENDL); //$NON-NLS-1$
-		javaOffset += fSuperclass.length() + 2;
-
-		updateRanges(fDeclarationRanges, javaOffset);
-		// user declarations
-		append(fUserDeclarations);
-		javaOffset += fUserDeclarations.length();
-		
-		updateRanges(fUserELRanges, javaOffset);
-		append(fUserELExpressions);
-		javaOffset += fUserELExpressions.length();
-
-		fResult.append(fServiceHeader);
-		javaOffset += fServiceHeader.length();
-		// error page
-		if (fIsErrorPage) {
-			fResult.append(fException);
-			javaOffset += fException.length();
-		}
-
-
-		fResult.append(fTryCatchStart);
-		javaOffset += fTryCatchStart.length();
-
-		updateRanges(fCodeRanges, javaOffset);
-
-		// user code
-		append(fUserCode);
-		javaOffset += fUserCode.length();
-
-
-		fResult.append(fTryCatchEnd);
-		javaOffset += fTryCatchEnd.length();
-
-		// footer
-		fResult.append(fFooter);
-		javaOffset += fFooter.length();
-
-		fJava2JspRanges.putAll(fImportRanges);
-		fJava2JspRanges.putAll(fDeclarationRanges);
-		fJava2JspRanges.putAll(fCodeRanges);
-		fJava2JspRanges.putAll(fUserELRanges);
-		
-	}
-
-	/**
-	 * @param javaRanges
-	 * @param offsetInJava
-	 */
-	private void updateRanges(HashMap rangeMap, int offsetInJava) {
-		// just need to update java ranges w/ the offset we now know
-		Iterator it = rangeMap.keySet().iterator();
-		while (it.hasNext())
-			((Position) it.next()).offset += offsetInJava;
-	}
-
-	/**
-	 * map of ranges (positions) in java document to ranges in jsp document
-	 * 
-	 * @return a map of java positions to jsp positions.
-	 */
-	public HashMap getJava2JspRanges() {
-		return fJava2JspRanges;
-	}
-
-	/**
-	 * map of ranges in jsp document to ranges in java document.
-	 * 
-	 * @return a map of jsp positions to java positions, or null if no
-	 *         translation has occured yet (the map hasn't been built).
-	 */
-	public HashMap getJsp2JavaRanges() {
-		if (fJava2JspRanges == null)
-			return null;
-		HashMap flipFlopped = new HashMap();
-		Iterator keys = fJava2JspRanges.keySet().iterator();
-		Object range = null;
-		while (keys.hasNext()) {
-			range = keys.next();
-			flipFlopped.put(fJava2JspRanges.get(range), range);
-		}
-		return flipFlopped;
-	}
-
-	public HashMap getJava2JspImportRanges() {
-		return fImportRanges;
-	}
-
-	public HashMap getJava2JspUseBeanRanges() {
-		return fUseBeanRanges;
-	}
-
-	public HashMap getJava2JspIndirectRanges() {
-		return fIndirectRanges;
-	}
-
-	/**
-	 * Adds to the jsp<->java map by default
-	 * 
-	 * @param value
-	 *            a comma delimited list of imports
-	 */
-	protected void addImports(String value) {
-		addImports(value, true);
-	}
-
-	/**
-	 * Pass in a comma delimited list of import values, appends each to the
-	 * final result buffer
-	 * 
-	 * @param value
-	 *            a comma delimited list of imports
-	 */
-	protected void addImports(String value, boolean addToMap) {
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81687
-		// added the "addToMap" parameter to exclude imports originating
-		// from included JSP files to be added to the jsp<->java mapping
-		StringTokenizer st = new StringTokenizer(value, ",", false); //$NON-NLS-1$
-		String tok = ""; //$NON-NLS-1$
-		// String appendage = ""; //$NON-NLS-1$
-		while (st.hasMoreTokens()) {
-			tok = st.nextToken();
-			appendImportToBuffer(tok, fCurrentNode, addToMap);
-		}
-	}
-
-	/**
-	 * /* keep track of cursor position inside the buffer /* appends buffer to
-	 * the final result buffer
-	 */
-	protected void append(StringBuffer buf) {
-		if (getCursorOwner() == buf) {
-			fCursorPosition = fResult.length() + getRelativeOffset();
-		}
-		fResult.append(buf.toString());
-	}
-
-	/**
-	 * Only valid after a configure(...), translate(...) or
-	 * translateFromFile(...) call
-	 * 
-	 * @return the current result (java translation) buffer
-	 */
-	public final StringBuffer getTranslation() {
-
-		if (DEBUG) {
-			Iterator it = fJava2JspRanges.keySet().iterator();
-			while (it.hasNext()) {
-				System.out.println("--------------------------------------------------------------"); //$NON-NLS-1$
-				Position java = (Position) it.next();
-				System.out.println("Java range:[" + java.offset + ":" + java.length + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				System.out.println("[" + fResult.toString().substring(java.offset, java.offset + java.length) + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-				System.out.println("--------------------------------------------------------------"); //$NON-NLS-1$
-				System.out.println("|maps to...|"); //$NON-NLS-1$
-				System.out.println("=============================================================="); //$NON-NLS-1$
-				Position jsp = (Position) fJava2JspRanges.get(java);
-				System.out.println("JSP range:[" + jsp.offset + ":" + jsp.length + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				System.out.println("[" + fJspTextBuffer.toString().substring(jsp.offset, jsp.offset + jsp.length) + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-				System.out.println("=============================================================="); //$NON-NLS-1$
-				System.out.println(""); //$NON-NLS-1$
-				System.out.println(""); //$NON-NLS-1$
-			}
-		}
-
-		return fResult;
-	}
-
-	/**
-	 * Only valid after a configure(...), translate(...) or
-	 * translateFromFile(...) call
-	 * 
-	 * @return the text in the JSP file
-	 */
-	public final String getJspText() {
-		return fJspTextBuffer.toString();
-	}
-
-	/**
-	 * adds the variables for a tag in a taglib to the dummy java document
-	 * 
-	 * @param tagToAdd
-	 *            is the name of the tag whose variables we want to add
-	 */
-	protected void addTaglibVariables(String tagToAdd) {
-		if (fModelQuery != null) {
-			// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=5159
-			TLDCMDocumentManager docMgr = TaglibController.getTLDCMDocumentManager(fStructuredDocument);
-			if (docMgr == null)
-				return;
-			Iterator taglibs = docMgr.getCMDocumentTrackers(fCurrentNode.getStartOffset()).iterator();
-			CMDocument doc = null;
-			CMNamedNodeMap elements = null;
-			while (taglibs.hasNext()) {
-				doc = (CMDocument) taglibs.next();
-				CMNode node = null;	
-				if ((elements = doc.getElements()) != null && (node = elements.getNamedItem(tagToAdd)) != null && node.getNodeType() == CMNode.ELEMENT_DECLARATION) {
-					if (node instanceof CMNodeWrapper) {
-						node = ((CMNodeWrapper) node).getOriginNode();
-					}
-					// future_TODO
-					// FOR TAGLIB 1.1 STYLE, WE NEED TO INSTANTIATE THE
-					// TagExtraInfo class and get the variables that way
-					// use reflection to create class...
-					// VariableInfo[] getVariableInfo(TagData data)
-					// THIS IS ONLY FOR TAGLIB 1.2 STYLE .tld files
-					List list = ((TLDElementDeclaration) node).getVariables();
-					Iterator it = list.iterator();
-					while (it.hasNext()) {
-						TLDVariable var = (TLDVariable) it.next();
-						String varName = var.getNameGiven();
-						if (varName == null) {
-							varName = var.getNameFromAttribute();
-						}
-						if (varName != null) {
-							String varClass = "java.lang.String"; //$NON-NLS-1$ // the default class...
-							if (var.getVariableClass() != null) {
-								varClass = var.getVariableClass();
-							}
-							// add to declarations...
-							String newDeclaration = varClass + " " + varName + " = null;" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$
-							// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=5159
-							// not adding to map to avoid strange refactoring
-							// behavior
-							appendToBuffer(newDeclaration, fUserCode, false, fCurrentNode);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/*
-	 * used by inner helper class (XMLJSPRegionHelper, JSPIncludeRegionHelper)
-	 */
-	public List getBlockMarkers() {
-		if (fBlockMarkers == null)
-			fBlockMarkers = new ArrayList();
-		return fBlockMarkers;
-	}