This commit was manufactured by cvs2svn to create tag 'R1_5_4'.
diff --git a/features/org.eclipse.jem-feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.jem-feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..9b533a5
--- /dev/null
+++ b/features/org.eclipse.jem-feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Sun Apr 15 21:19:46 EDT 2007
+eclipse.preferences.version=1
+encoding/<project>=ISO-8859-1
diff --git a/features/org.eclipse.jem-feature/feature.xml b/features/org.eclipse.jem-feature/feature.xml
index 1e4e21a..6b5168d 100644
--- a/features/org.eclipse.jem-feature/feature.xml
+++ b/features/org.eclipse.jem-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jem"
       label="%featureName"
-      version="1.2.3.qualifier"
+      version="1.2.4.qualifier"
       provider-name="%providerName"
       image="eclipse_update_120.jpg">
 
diff --git a/plugins/org.eclipse.jem.beaninfo.ui/.project b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/.project
similarity index 80%
rename from plugins/org.eclipse.jem.beaninfo.ui/.project
rename to features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/.project
index 3898d56..c8f1a80 100644
--- a/plugins/org.eclipse.jem.beaninfo.ui/.project
+++ b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/.project
@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.jem.beaninfo.ui</name>
+	<name>org.eclipse.jem.sdk-feature</name>
 	<comment></comment>
 	<projects>
 	</projects>
 	<buildSpec>
-
 	</buildSpec>
 	<natures>
 	</natures>
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.xml b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.xml
index 5778c36..5e48d67 100644
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.xml
+++ b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk-feature/feature.xml
@@ -2,18 +2,18 @@
 <feature
       id="org.eclipse.jem.sdk"
       label="%featureName"
-      version="1.2.3.qualifier"
+      version="1.2.4.qualifier"
       provider-name="%providerName"
       image="eclipse_update_120.jpg">
 
    <description>
       %description
    </description>
-   
+
    <copyright>
       %copyright
    </copyright>
-   
+
    <license url="%licenseURL">
       %license
    </license>
diff --git a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/META-INF/MANIFEST.MF b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/META-INF/MANIFEST.MF
index 40fa8f4..ed89e9a 100644
--- a/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/META-INF/MANIFEST.MF
+++ b/features/org.eclipse.jem-feature/org.eclipse.jem.sdk/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jem.sdk
-Bundle-Version: 1.2.0.qualifier
+Bundle-Version: 1.2.4.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/features/org.eclipse.jst.enterprise_core.feature/feature.xml b/features/org.eclipse.jst.enterprise_core.feature/feature.xml
index 183f02a..1274492 100644
--- a/features/org.eclipse.jst.enterprise_core.feature/feature.xml
+++ b/features/org.eclipse.jst.enterprise_core.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.enterprise_core.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -21,6 +21,18 @@
       <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
    </url>
 
+   <requires>
+      <import feature="org.eclipse.platform" version="3.2" match="equivalent"/>
+      <import feature="org.eclipse.emf" version="2.2" match="equivalent"/>
+      <import feature="org.eclipse.jem" version="1.2" match="equivalent"/>
+      <import feature="org.eclipse.jst.web_core.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.jst.common_core.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.jst.server_core.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.wst.ws_core.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.uddi4j.feature" version="2.0.3" match="greaterOrEqual"/>
+      <import feature="org.eclipse.emf.ecore.sdo" version="2.2" match="equivalent"/>
+   </requires>
+
    <plugin
          id="org.eclipse.jst.j2ee.webservice"
          download-size="0"
@@ -41,19 +53,5 @@
          install-size="0"
          version="0.0.0"
          unpack="false"/>
-         
-   <plugin
-         id="org.eclipse.jst.jee"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-         
-   <plugin
-         id="org.eclipse.jst.jee.ejb"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
 
 </feature>
diff --git a/features/org.eclipse.jst.enterprise_core.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.jst.enterprise_core.feature/sourceTemplateFeature/feature.xml
index 403df7d..4c996bc 100644
--- a/features/org.eclipse.jst.enterprise_core.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.jst.enterprise_core.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.enterprise_core.feature.source"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.enterprise_sdk.feature/feature.xml b/features/org.eclipse.jst.enterprise_sdk.feature/feature.xml
index 46c65a5..c44e1ce 100644
--- a/features/org.eclipse.jst.enterprise_sdk.feature/feature.xml
+++ b/features/org.eclipse.jst.enterprise_sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.enterprise_sdk.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -22,9 +22,6 @@
    </url>
 
    <includes
-         id="org.eclipse.jst.enterprise_ui.feature"
-         version="0.0.0"/>
-   <includes
          id="org.eclipse.jst.enterprise_ui.feature.source"
          version="0.0.0"/>
 
diff --git a/features/org.eclipse.jst.enterprise_ui.feature/feature.xml b/features/org.eclipse.jst.enterprise_ui.feature/feature.xml
index afbb097..288db5a 100644
--- a/features/org.eclipse.jst.enterprise_ui.feature/feature.xml
+++ b/features/org.eclipse.jst.enterprise_ui.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.enterprise_ui.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -25,9 +25,22 @@
          id="org.eclipse.jst.enterprise_userdoc.feature"
          version="0.0.0"/>
 
-   <includes
-         id="org.eclipse.jst.enterprise_core.feature"
-         version="0.0.0"/>
+   <requires>
+      <import feature="org.eclipse.emf" version="2.2" match="equivalent"/>
+      <import feature="org.eclipse.jem" version="1.2" match="equivalent"/>
+      <import feature="org.eclipse.platform" version="3.2" match="equivalent"/>
+      <import feature="org.eclipse.jdt" version="3.2" match="equivalent"/>
+      <import feature="org.eclipse.wst.rdb_core.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.apache.axis.feature" version="1.2.1" match="greaterOrEqual"/>
+      <import feature="org.uddi4j.feature" version="2.0.3" match="greaterOrEqual"/>
+      <import feature="org.wsdl4j.feature" version="1.4.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.wst.common_ui.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.wst.rdb_ui.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.wst.server_ui.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.wst.web_ui.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.wst.ws_ui.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.jst.enterprise_core.feature" version="1.0.0" match="greaterOrEqual"/>
+   </requires>
 
    <plugin
          id="org.eclipse.jst.ws"
diff --git a/features/org.eclipse.jst.enterprise_ui.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.jst.enterprise_ui.feature/sourceTemplateFeature/feature.xml
index dec61d7..85c6ba4 100644
--- a/features/org.eclipse.jst.enterprise_ui.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.jst.enterprise_ui.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.enterprise_ui.feature.source"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.enterprise_userdoc.feature/feature.xml b/features/org.eclipse.jst.enterprise_userdoc.feature/feature.xml
index a8de9b6..9cd3fee 100644
--- a/features/org.eclipse.jst.enterprise_userdoc.feature/feature.xml
+++ b/features/org.eclipse.jst.enterprise_userdoc.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.enterprise_userdoc.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.3.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.web_core.feature.patch/.project b/features/org.eclipse.jst.web_core.feature.patch/.project
deleted file mode 100644
index 4c41cab..0000000
--- a/features/org.eclipse.jst.web_core.feature.patch/.project
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.web_core.feature.patch</name>
-</projectDescription>
diff --git a/features/org.eclipse.jst.web_core.feature.patch/description.txt b/features/org.eclipse.jst.web_core.feature.patch/description.txt
deleted file mode 100644
index a1fc6d0..0000000
--- a/features/org.eclipse.jst.web_core.feature.patch/description.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-The HEAD branch of this patch feature is intentionally empty, 
-to attempt to try and avoid confusion. 
-
-Please load the correct version from the branch of the related patch.
diff --git a/features/org.eclipse.jst.web_core.feature/feature.xml b/features/org.eclipse.jst.web_core.feature/feature.xml
index c54522c..4fba389 100644
--- a/features/org.eclipse.jst.web_core.feature/feature.xml
+++ b/features/org.eclipse.jst.web_core.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.web_core.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -21,6 +21,16 @@
       <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
    </url>
 
+   <requires>
+      <import feature="org.eclipse.platform" version="3.2" match="equivalent"/>
+      <import feature="org.eclipse.emf" version="2.2" match="equivalent"/>
+      <import feature="org.eclipse.jdt" version="3.2" match="equivalent"/>
+      <import feature="org.eclipse.jem" version="1.2" match="equivalent"/>
+      <import feature="org.eclipse.jst.common_core.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.jst.server_core.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.wst.web_core.feature" version="1.0.0" match="greaterOrEqual"/>
+   </requires>
+
    <plugin
          id="org.eclipse.jst.common.annotations.core"
          download-size="0"
diff --git a/features/org.eclipse.jst.web_core.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.jst.web_core.feature/sourceTemplateFeature/feature.xml
index 4bc6292..0d953f8 100644
--- a/features/org.eclipse.jst.web_core.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.jst.web_core.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.web_core.feature.source"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.web_sdk.feature/feature.xml b/features/org.eclipse.jst.web_sdk.feature/feature.xml
index 1044175..50685d4 100644
--- a/features/org.eclipse.jst.web_sdk.feature/feature.xml
+++ b/features/org.eclipse.jst.web_sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.web_sdk.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -22,10 +22,6 @@
    </url>
 
    <includes
-         id="org.eclipse.jst.web_ui.feature"
-         version="0.0.0"/>
-
-   <includes
          id="org.eclipse.jst.web_ui.feature.source"
          version="0.0.0"/>
 
diff --git a/features/org.eclipse.jst.web_ui.feature/feature.xml b/features/org.eclipse.jst.web_ui.feature/feature.xml
index 864b462..818d135 100644
--- a/features/org.eclipse.jst.web_ui.feature/feature.xml
+++ b/features/org.eclipse.jst.web_ui.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.web_ui.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.3.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -22,9 +22,13 @@
    </url>
 
    <includes
-         id="org.eclipse.jst.web_core.feature"
+         id="org.eclipse.jst.web_userdoc.feature"
          version="0.0.0"/>
 
+   <requires>
+      <import feature="org.eclipse.jst.web_core.feature" version="1.0.0" match="greaterOrEqual"/>
+   </requires>
+
    <plugin
          id="org.eclipse.jst.common.annotations.ui"
          download-size="0"
diff --git a/features/org.eclipse.jst.web_ui.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.jst.web_ui.feature/sourceTemplateFeature/feature.xml
index 129df68..1b083a7 100644
--- a/features/org.eclipse.jst.web_ui.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.jst.web_ui.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.web_ui.feature.source"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.3.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.web_userdoc.feature/feature.xml b/features/org.eclipse.jst.web_userdoc.feature/feature.xml
index 4aa0723..eb1401a 100644
--- a/features/org.eclipse.jst.web_userdoc.feature/feature.xml
+++ b/features/org.eclipse.jst.web_userdoc.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.web_userdoc.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.3.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/plugins/org.eclipse.jem.beaninfo.ui/OBSOLETE-moved to org.eclipse.jem.ui b/plugins/org.eclipse.jem.beaninfo.ui/OBSOLETE-moved to org.eclipse.jem.ui
deleted file mode 100644
index e69de29..0000000
--- a/plugins/org.eclipse.jem.beaninfo.ui/OBSOLETE-moved to org.eclipse.jem.ui
+++ /dev/null
diff --git a/plugins/org.eclipse.jem.workbench/.classpath b/plugins/org.eclipse.jem.workbench/.classpath
index 7682dad..8fd3a20 100644
--- a/plugins/org.eclipse.jem.workbench/.classpath
+++ b/plugins/org.eclipse.jem.workbench/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-    <classpathentry kind="src" path="workbench/"/>
-    <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-    <classpathentry kind="output" path="bin"/>
+	<classpathentry kind="src" path="workbench/"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/plugins/org.eclipse.jem.workbench/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.jem.workbench/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..d7ce39e
--- /dev/null
+++ b/plugins/org.eclipse.jem.workbench/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Sun Apr 15 21:22:16 EDT 2007
+eclipse.preferences.version=1
+encoding/<project>=ISO-8859-1
diff --git a/plugins/org.eclipse.jem.workbench/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.jem.workbench/.settings/org.eclipse.jdt.core.prefs
index d78073f..aa19783 100644
--- a/plugins/org.eclipse.jem.workbench/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.jem.workbench/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,15 @@
-#Tue Feb 21 10:09:19 EST 2006
+#Sun Apr 15 21:31:38 EDT 2007
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
 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=disabled
 org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
@@ -41,6 +45,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
diff --git a/plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF b/plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF
index 2165ba3..ceb0de0 100644
--- a/plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jem.workbench; singleton:=true
-Bundle-Version: 1.2.3.qualifier
+Bundle-Version: 1.2.4.qualifier
 Bundle-Activator: org.eclipse.jem.internal.plugin.JavaPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -16,3 +16,4 @@
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jem.util;bundle-version="[1.2.0,2.0.0)"
 Eclipse-LazyStart: true
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaMethodJDOMAdaptor.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaMethodJDOMAdaptor.java
index 607eaae..1c1af1a 100644
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaMethodJDOMAdaptor.java
+++ b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaMethodJDOMAdaptor.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: JavaMethodJDOMAdaptor.java,v $
- *  $Revision: 1.15 $  $Date: 2006/10/27 19:36:32 $ 
+ *  $Revision: 1.15.2.1 $  $Date: 2007/04/18 13:46:00 $ 
  */
 package org.eclipse.jem.internal.adapters.jdom;
 
@@ -434,6 +434,35 @@
 				}
 			}
 		}
+
+		IJavaElement parent = method.getParent();
+		if (parent instanceof IType)
+		{
+			try {
+				typeParameters = ((IType)parent).getTypeParameters();
+			} catch (JavaModelException e1) {
+				//Failed to retrieve type parameters for any number of reasons.
+			}
+		}
+		if (typeParameters != null && typeParameters.length > 0) {
+			for (int i = 0; i < typeParameters.length; i++) {
+				if (typeParameters[i].exists() && variableName.equals(typeParameters[i].getElementName())) {
+					typeParam = typeParameters[i];
+					break;
+				}
+			}
+			if (typeParam != null) {
+				String[] bounds = null;
+				try {
+					bounds = typeParam.getBounds();
+				} catch (JavaModelException e) {}
+				if (bounds != null && bounds.length > 0) {
+					return JDOMSearchHelper.getResolvedTypeName(bounds[0], getType(), getTypeResolutionCache());
+				} else {
+					return "java.lang.Object";
+				}
+			}
+		}
 		return null;
 	}
 }
diff --git a/plugins/org.eclipse.jst.common.annotations.controller/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.common.annotations.controller/META-INF/MANIFEST.MF
index f61d843..5b51b29 100644
--- a/plugins/org.eclipse.jst.common.annotations.controller/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.common.annotations.controller/META-INF/MANIFEST.MF
@@ -9,7 +9,7 @@
  org.eclipse.jst.common.internal.annotations.registry;x-internal:=true
 Require-Bundle:  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.wst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.common.emf;bundle-version="[1.1.0,1.2.0)",
diff --git a/plugins/org.eclipse.jst.common.annotations.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.common.annotations.core/META-INF/MANIFEST.MF
index d6d51a2..1eab9cf 100644
--- a/plugins/org.eclipse.jst.common.annotations.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.common.annotations.core/META-INF/MANIFEST.MF
@@ -6,7 +6,7 @@
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: plugin
 Export-Package: org.eclipse.jst.common.internal.annotations.core;x-internal:=true
-Require-Bundle:  org.eclipse.emf.ecore;bundle-version="[2.2.0,2.4.0)",
+Require-Bundle:  org.eclipse.emf.ecore;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.wst.common.emf;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jem.util;bundle-version="[1.2.0,1.3.0)",
diff --git a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/AnnotationTagProposal.java b/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/AnnotationTagProposal.java
index b833473..8dfa29a 100644
--- a/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/AnnotationTagProposal.java
+++ b/plugins/org.eclipse.jst.common.annotations.ui/src/org/eclipse/jst/common/internal/annotations/ui/AnnotationTagProposal.java
@@ -17,6 +17,7 @@
 package org.eclipse.jst.common.internal.annotations.ui;
 
 import org.eclipse.core.runtime.Assert;
+import org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposal;
 import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
@@ -75,7 +76,7 @@
 	}
 
 	/**
-	 * @see org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposal#JavaCompletionProposal(java.lang.String, int, int,
+	 * @see JavaCompletionProposal#JavaCompletionProposal(java.lang.String, int, int,
 	 *      org.eclipse.swt.graphics.Image, java.lang.String, int,
 	 *      org.eclipse.jface.text.ITextViewer)
 	 * @param replacementString
diff --git a/plugins/org.eclipse.jst.common.frameworks/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.common.frameworks/META-INF/MANIFEST.MF
index 36b2cea..ee2c11c 100644
--- a/plugins/org.eclipse.jst.common.frameworks/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.common.frameworks/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.common.frameworks; singleton:=true
-Bundle-Version: 1.1.3.qualifier
+Bundle-Version: 1.1.4.qualifier
 Bundle-Vendor: %pluginVendor
 Bundle-Localization: plugin
 Export-Package: 
@@ -13,8 +13,8 @@
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jdt.launching;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.2.0,2.4.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.2.0,2.3.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.wst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jem.util;bundle-version="[1.2.0,1.3.0)",
diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/classpath/FlexibleProjectContainerInitializer.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/classpath/FlexibleProjectContainerInitializer.java
index 9054068..d9a6d4a 100644
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/classpath/FlexibleProjectContainerInitializer.java
+++ b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/classpath/FlexibleProjectContainerInitializer.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
+ * Copyright (c) 2005 BEA Systems, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -11,6 +11,8 @@
 
 package org.eclipse.jst.common.jdt.internal.classpath;
 
+import java.lang.reflect.Field;
+
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.jdt.core.ClasspathContainerInitializer;
@@ -77,7 +79,41 @@
         final IClasspathContainer container
             = JavaCore.getClasspathContainer( containerPath, project );
         
-        ( (FlexibleProjectContainer) container ).refresh();
+        // ( (FlexibleProjectContainer) container ).refresh();
+        
+        refresh( container );
+    }
+    
+    // Workaround for bug 145784.
+    // this same hack is also being used in J2EEComponentClasspathInitializer
+    private static void refresh( final IClasspathContainer container )
+    {
+        if( container instanceof FlexibleProjectContainer )
+        {
+            ( (FlexibleProjectContainer) container ).refresh();
+        }
+        else
+        {
+            try
+            {
+                final Field field 
+                    = container.getClass().getDeclaredField( "fOriginal" ); //$NON-NLS-1$
+                
+                field.setAccessible( true );
+                
+                refresh( (IClasspathContainer) field.get( container ) );
+            }
+            catch( NoSuchFieldException e )
+            {
+                // Should not happen.
+                throw new RuntimeException( e );
+            }
+            catch( IllegalAccessException e )
+            {
+                // Should not happen.
+                throw new RuntimeException( e );
+            }
+        }
     }
     
 }
diff --git a/plugins/org.eclipse.jst.j2ee.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee.core/META-INF/MANIFEST.MF
index 9dcd975..354aaeb 100644
--- a/plugins/org.eclipse.jst.j2ee.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.j2ee.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: J2EE Core Component
 Bundle-SymbolicName: org.eclipse.jst.j2ee.core; singleton:=true
-Bundle-Version: 1.1.102.qualifier
+Bundle-Version: 1.1.53.qualifier
 Bundle-Activator: org.eclipse.jst.j2ee.core.internal.plugin.J2EECorePlugin
 Bundle-Vendor: Eclipse.org
 Bundle-Localization: plugin
@@ -68,14 +68,14 @@
  org.eclipse.jst.j2ee.webservice.wsdd.internal.impl;x-internal:=true,
  org.eclipse.jst.j2ee.webservice.wsdd.internal.util;x-internal:=true
 Require-Bundle: org.eclipse.jem;bundle-version="[1.2.0,1.3.0)",
- org.eclipse.emf.common;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.common;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.wst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.wst.common.emf;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jem.util;bundle-version="[1.2.0,1.3.0)",
- com.ibm.icu;bundle-version="[3.4.4,4.0.0)",
+ com.ibm.icu;bundle-version="[3.4.4,3.5.0)",
  org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)"
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveCopySessionUtility.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveCopySessionUtility.java
index c515a38..c38f1ce 100644
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveCopySessionUtility.java
+++ b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/impl/ArchiveCopySessionUtility.java
@@ -22,6 +22,7 @@
 import org.eclipse.jem.java.JavaClass;
 import org.eclipse.jst.j2ee.ejb.CMPAttribute;
 import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity;
+import org.eclipse.jst.j2ee.ejb.internal.impl.ContainerManagedEntityImpl;
 import org.eclipse.jst.j2ee.internal.common.XMLResource;
 import org.eclipse.wst.common.internal.emf.utilities.EtoolsCopySession;
 import org.eclipse.wst.common.internal.emf.utilities.EtoolsCopyUtility;
@@ -94,9 +95,11 @@
 
 	protected void copyReference(EReference aReference, EObject aRefObject, String idSuffix, EObject copyRef) {
 		if (aReference.isMany()) {
-			List value = (List) aRefObject.eGet(aReference);
-			if (value != null)
-				copyManyReference(aReference, value, aRefObject, idSuffix, copyRef);
+			if (shouldCopyReference(aReference, aRefObject)) { // Bugzilla 177397
+				List value = (List) aRefObject.eGet(aReference);
+				if (value != null)
+					copyManyReference(aReference, value, aRefObject, idSuffix, copyRef);
+			}
 		} else if (aRefObject.eIsSet(aReference)) {
 			Object value = aRefObject.eGet(aReference);
 			if (value == null)
@@ -105,4 +108,40 @@
 		}
 	}
 
+    /**
+     * <p>Constant introduced for bugzilla 177397: The name of the CMP 'keyAttributes'
+     * attribute, which is not to be copied if in an uninitialized state.</p>
+     */
+    
+    public static final String CMP_KEY_ATTRIBUTES_NAME = "keyAttributes";
+
+    /**
+     * <p>Test introduced for bugzilla 177397: Tell if a specified reference
+     * should be copied.  This implementation checks for a CMP Bean, and for
+     * the key attributes attribute, and answers false when this attribute
+     * is in an uninitialized state.</p>
+     * 
+     * <p>This attribute is initialized using reflection; there are copy cases
+     * where the parent EJB Jar does not have its full classpath environment
+     * available, which prevents the loading of dependent classes.  Since the
+     * initialization is lazy, there is no need to resolve this when copying;
+     * access to the copy target can perform the initialization.</p>
+     *
+     * @param aReference The reference attribute being copied.
+     * @param aRefObject The model object being copied.
+     * 
+     * @return True if the reference attribute is to be copied.
+     *         False if the reference attribute is not to be copied.
+     */
+    
+    protected boolean shouldCopyReference(EReference aReference, EObject aRefObject)
+    {        
+        if ( !(aRefObject instanceof ContainerManagedEntityImpl) ||
+             !aReference.getName().equals(CMP_KEY_ATTRIBUTES_NAME) )
+            return true;    
+        
+        ContainerManagedEntityImpl cmpBean = (ContainerManagedEntityImpl) aRefObject;
+        
+        return cmpBean.getIsInitializedKeyAttributes();
+    }
 }
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/strategy/LoadStrategyImpl.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/strategy/LoadStrategyImpl.java
index 4986be9..7c21ae1 100644
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/strategy/LoadStrategyImpl.java
+++ b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/strategy/LoadStrategyImpl.java
@@ -370,7 +370,24 @@
 		rs.setURIConverter(converter);
 		if (archive.shouldUseJavaReflection()) {
 			rs.getAdapterFactories().add(new JavaJDKAdapterFactory());
-			archive.initializeClassLoader();
+			
+			// TFB: Problem here:
+			// 'Archive.initializeClassLoader' calls
+			// 'Archive.getJavaAdapterFactory', which
+			// 'Archive.getResourceSet', which calls
+			// 'LoadStrategy.initializeResourceSet', which calls
+			// 'Archive.initializeClassLoader' all over again.
+			//
+			// This creates a second, redundant classloader,
+			// and places the first classloader in the JavaJDKAdapterFactory.
+			// Hence not only is the classloader created twice, but
+			// both copies are active.  When there are large classpaths,
+			// this will large duplicate structures.
+			//
+			// Since the classloader will be initialized by 'getClassLoader',
+			// the initialization, here, seems unnecessary.
+			
+			// archive.initializeClassLoader();
 		}
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveUtil.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveUtil.java
index 3ecab13..d1599fd 100644
--- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveUtil.java
+++ b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ArchiveUtil.java
@@ -37,6 +37,7 @@
 import org.eclipse.jst.j2ee.application.Module;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveResourceHandler;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.Container;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleRef;
@@ -208,6 +209,40 @@
 	}
 
 	/**
+	 * <p>Alternate method for resolving class path entries.</p>
+	 * 
+	 * <p>Note: Not sure what this is for, as a classpath
+	 * entry such as "../targetJar.jar" seems invalid, as it
+	 * reaches outside of the EAR directory.</p>
+	 * 
+	 * <p>While this method will remove "./" from a classpath entry,
+	 * it will not remove "../", which will be added back when
+	 * deresolving the entry.  There is no meaningful name to assign
+	 * to an entity outside of the fileset of the container.</p>
+	 * 
+	 * <p>This implementation uses eclipse URI function, as opposed to the
+	 * implementation in <code>deriveEARRelativeURI</code>.</p>
+	 * 
+	 * @param classpathEntry The class-path entry which is to be resolved.
+	 * @param container The container against which to resolve the entry.
+	 * 
+	 * @return The text of the resolved entry.
+	 */
+	
+	public static String deriveRelativeURI(String classpathEntry, Container container)
+	{
+		URI containerURI = URI.createFileURI( container.getURI() );
+		// 'container.getURI()' returns a string.
+
+		URI entryURI = URI.createFileURI(classpathEntry);
+		
+		URI resolvedURI = entryURI.resolve(containerURI);
+		URI recoveredURI = resolvedURI.deresolve(containerURI);
+		
+		return recoveredURI.toFileString();
+	}
+	
+	/**
 	 * Leverage the java.io.File apis to resolve things like "./xxx" and "../xxx" into uris of
 	 * entries in the ear file
 	 * 
@@ -242,7 +277,7 @@
 			if (parent == null || parent.equals("")) //$NON-NLS-1$
 				parent = "."; //$NON-NLS-1$
 			String workingDir = new java.io.File(".").getCanonicalPath(); //$NON-NLS-1$
-			
+
 			String resolvedPath = new java.io.File(parent, classpathEntry).getCanonicalPath();
 			if (!resolvedPath.startsWith(workingDir))
 				return null;
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ContainerManagedEntityImpl.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ContainerManagedEntityImpl.java
index cea1c3e..2d4467d 100644
--- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ContainerManagedEntityImpl.java
+++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ContainerManagedEntityImpl.java
@@ -525,6 +525,24 @@
 	}
 
 	/**
+	 * <p>Change for bugzilla 177397.  Provide access to the
+	 * initialization state of the key attributes attribute.</p>
+	 * 
+	 * <p>The initialization state is used while copying the
+	 * receiver.  If the key attributes attribute has not been
+	 * initialized, then the copy does not need to descend into the
+	 * key attributes.</p>
+	 * 
+	 * @return True if the key attributes have been initialized.
+	 *         Otherwise, false.
+	 * 
+	 * @generated NOT
+	 */
+	public boolean getIsInitializedKeyAttributes() {
+		return (keyAttributes == null);
+	}
+	
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/WrappedException.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/WrappedException.java
index 9748f44..545d29b 100644
--- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/WrappedException.java
+++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/WrappedException.java
@@ -51,6 +51,13 @@
 	return nestedException;
 }
 /**
+ * Added to provide compatibility for the Java 1.4.2 addition of
+ * <code>Throwable.getCause()</code>.
+ */
+public java.lang.Throwable getCause() {
+	return getNestedException();
+}
+/**
  * Print out a stack trace to the system err.
  */
 public void printStackTrace() {
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/WrappedRuntimeException.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/WrappedRuntimeException.java
index 5949505..8892279 100644
--- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/WrappedRuntimeException.java
+++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/WrappedRuntimeException.java
@@ -55,6 +55,14 @@
 	return nestedException;
 }
 /**
+ * Added to provide compatibility for the Java 1.4.2 addition of
+ * <code>Throwable.getCause()</code>.
+ * @return The nested exception held by the receiver.
+ */
+public java.lang.Throwable getCause() {
+	return getNestedException();
+}
+/**
  * Print out a stack trace to the system err.
  */
 public void printStackTrace() {
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/model/translator/webapplication/WebAppTranslator.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/model/translator/webapplication/WebAppTranslator.java
index db79289..0cb07c5 100644
--- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/model/translator/webapplication/WebAppTranslator.java
+++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/model/translator/webapplication/WebAppTranslator.java
@@ -328,6 +328,7 @@
 	public static Translator createFilterMapping13Translator() {
 		GenericTranslator result = new GenericTranslator(FILTER_MAPPING, WEBAPP_PKG.getWebApp_FilterMappings());
 		result.setChildren(new Translator[] {
+			IDTranslator.INSTANCE,
 			new SourceLinkTranslator(FILTER_NAME, WEBAPP_PKG.getFilterMapping_Filter(), 
 						new TranslatorPath(new Translator[] {
 							new Translator(WEB_APP, Translator.CONTAINER_FEATURE), 
diff --git a/plugins/org.eclipse.jst.j2ee.jca.ui/jca_ui/org/eclipse/jst/j2ee/jca/ui/internal/wizard/ConnectorFacetInstallPage.java b/plugins/org.eclipse.jst.j2ee.jca.ui/jca_ui/org/eclipse/jst/j2ee/jca/ui/internal/wizard/ConnectorFacetInstallPage.java
index dcf48c4..16cc3ff 100644
--- a/plugins/org.eclipse.jst.j2ee.jca.ui/jca_ui/org/eclipse/jst/j2ee/jca/ui/internal/wizard/ConnectorFacetInstallPage.java
+++ b/plugins/org.eclipse.jst.j2ee.jca.ui/jca_ui/org/eclipse/jst/j2ee/jca/ui/internal/wizard/ConnectorFacetInstallPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * 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
@@ -7,11 +7,9 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *	   David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 package org.eclipse.jst.j2ee.jca.ui.internal.wizard;
 
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jst.j2ee.internal.actions.IJ2EEUIContextIds;
 import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
 import org.eclipse.jst.j2ee.internal.wizard.J2EEModuleFacetInstallPage;
@@ -54,7 +52,7 @@
 		configFolder.setLayoutData(gdhfill());
 		configFolder.setData("label", configFolderLabel); //$NON-NLS-1$
 		synchHelper.synchText(configFolder, CONFIG_FOLDER, null);
-	    Dialog.applyDialogFont(parent);
+		
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.jca/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee.jca/META-INF/MANIFEST.MF
index 904d266..54850f4 100644
--- a/plugins/org.eclipse.jst.j2ee.jca/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.j2ee.jca/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.j2ee.jca; singleton:=true
-Bundle-Version: 1.1.3.qualifier
+Bundle-Version: 1.1.4.qualifier
 Bundle-Activator: org.eclipse.jst.j2ee.jca.internal.plugin.JcaPlugin
 Bundle-Vendor: %pluginVendor
 Bundle-Localization: plugin
@@ -24,10 +24,10 @@
  org.eclipse.jst.j2ee.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.common.emf;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.jem.workbench;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.edit;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.edit;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)",
diff --git a/plugins/org.eclipse.jst.j2ee.jca/jcaedit/org/eclipse/jst/j2ee/internal/jca/archive/operations/ConnectorComponentLoadStrategyImpl.java b/plugins/org.eclipse.jst.j2ee.jca/jcaedit/org/eclipse/jst/j2ee/internal/jca/archive/operations/ConnectorComponentLoadStrategyImpl.java
index 79288e4..2d38d32 100644
--- a/plugins/org.eclipse.jst.j2ee.jca/jcaedit/org/eclipse/jst/j2ee/internal/jca/archive/operations/ConnectorComponentLoadStrategyImpl.java
+++ b/plugins/org.eclipse.jst.j2ee.jca/jcaedit/org/eclipse/jst/j2ee/internal/jca/archive/operations/ConnectorComponentLoadStrategyImpl.java
@@ -11,10 +11,14 @@
 package org.eclipse.jst.j2ee.internal.jca.archive.operations;
 
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
@@ -106,19 +110,20 @@
 
 		int sourceContainerSegmentCount = sourceContainer.getProjectRelativePath().segmentCount();
 		boolean isModuleRoot = knownDD.getProjectRelativePath().toString().startsWith(sourceContainer.getProjectRelativePath().toString());
-		List iFiles = new ArrayList();
-		boolean foundJava = gatherFilesForJAR(iFiles, sourceContainer, isModuleRoot, false, sourceContainerSegmentCount);
+		Set iFilesSet = new HashSet();
+		boolean foundJava = gatherFilesForJAR(iFilesSet, sourceContainer, isModuleRoot, false, sourceContainerSegmentCount);
 		if (!isModuleRoot || foundJava) {
-			for (int i = 0; i < iFiles.size(); i++) {
-				filesHolder.removeIFile((IFile) iFiles.get(i));
+			List iFilesList = Collections.list(Collections.enumeration(iFilesSet));
+			for (int i = 0; i < iFilesList.size(); i++) {
+				filesHolder.removeIFile((IFile) iFilesList.get(i));
 			}
-			File nestedArchive = createNestedArchive(iFiles, sourceContainer, javaOutputFolder);
+			File nestedArchive = createNestedArchive(iFilesList, sourceContainer, javaOutputFolder);
 			return nestedArchive;
 		}
 		return null;
 	}
 
-	private boolean gatherFilesForJAR(List iFiles, IContainer current, boolean isModuleRoot, boolean foundJava, int sourceContainerSegmentCount) {
+	private boolean gatherFilesForJAR(Collection iFiles, IContainer current, boolean isModuleRoot, boolean foundJava, int sourceContainerSegmentCount) {
 		IResource[] members;
 		try {
 			members = current.members();
@@ -134,7 +139,7 @@
 				if (belongsInNestedJAR(srcFile, isModuleRoot)) {
 					if (isJava(srcFile)) {
 						if (exportSource) {
-							iFiles.add(srcFile);
+							iFiles.add(srcFile); //don't need to check duplicates here
 						}
 						String className = srcFile.getProjectRelativePath().removeFirstSegments(sourceContainerSegmentCount).toString();
 						className = className.substring(0, className.length() - dotJavaLength);
@@ -143,11 +148,17 @@
 							Iterator iterator = classes.iterator();
 							while (iterator.hasNext()) {
 								IFile clazz = (IFile) iterator.next();
-								iFiles.add(clazz);
+								if(!iFiles.contains(clazz)){
+									//.class need to check for duplicates
+									iFiles.add(clazz);
+								}
 							}
 						}
 					} else {
-						iFiles.add(srcFile);
+						if(!iFiles.contains(srcFile)){
+							//if it's not src, then it could be .class and need to check for duplicates
+							iFiles.add(srcFile); 
+						}
 					}
 					if (isModuleRoot)
 						foundJava = foundJava || isJava(srcFile) || isClass(srcFile);
diff --git a/plugins/org.eclipse.jst.j2ee.navigator.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee.navigator.ui/META-INF/MANIFEST.MF
index 318d7d5..41596ae 100644
--- a/plugins/org.eclipse.jst.j2ee.navigator.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.j2ee.navigator.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Plugin.name
 Bundle-SymbolicName: org.eclipse.jst.j2ee.navigator.ui; singleton:=true
-Bundle-Version: 1.1.1.qualifier
+Bundle-Version: 1.1.2.qualifier
 Bundle-Activator: org.eclipse.jst.j2ee.navigator.internal.plugin.J2EENavigatorPlugin
 Bundle-Vendor: %Plugin.providerName
 Bundle-Localization: plugin
@@ -14,8 +14,8 @@
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jst.j2ee.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jst.j2ee.ui;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.edit;bundle-version="[2.2.0,2.4.0)",
- org.eclipse.emf.edit.ui;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.edit;bundle-version="[2.2.0,2.3.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jdt.ui;bundle-version="[3.2.0,4.0.0)",
diff --git a/plugins/org.eclipse.jst.j2ee.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee.ui/META-INF/MANIFEST.MF
index e44ef4e..db06ff2 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.j2ee.ui/META-INF/MANIFEST.MF
@@ -1,10 +1,10 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name.0
+Bundle-Name: WTP J2EE UI Plug-in
 Bundle-SymbolicName: org.eclipse.jst.j2ee.ui; singleton:=true
-Bundle-Version: 1.1.1.qualifier
+Bundle-Version: 1.1.3.qualifier
 Bundle-Activator: org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin
-Bundle-Vendor: %Bundle-Vendor.0
+Bundle-Vendor: Eclipse.org
 Bundle-Localization: plugin
 Export-Package: org.eclipse.jst.common.jdt.internal.integration.ui;x-internal:=true,
  org.eclipse.jst.j2ee.internal;x-internal:=true,
@@ -33,11 +33,12 @@
  org.eclipse.jst.j2ee.ejb;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jst.j2ee.jca;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jst.j2ee.web;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.edit.ui;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.jdt.ui;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jst.j2ee.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.0,1.2.0)",
+ org.eclipse.ui.workbench;bundle-version="[3.2.1,4.0.0)",
  org.eclipse.jem.workbench;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.jem;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
@@ -46,7 +47,7 @@
  org.eclipse.wst.server.core;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.wst.server.ui;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.wst.common.emf;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.ltk.core.refactoring;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jface.text;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.web;bundle-version="[1.1.0,1.2.0)",
@@ -54,6 +55,7 @@
  org.eclipse.ui.editors;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.ui.workbench.texteditor;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
+ org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jem.util;bundle-version="[1.2.0,1.3.0)",
@@ -64,7 +66,7 @@
  org.eclipse.jst.server.core;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.wst.web.ui;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.ui.navigator.resources;bundle-version="[3.2.0,4.0.0)",
- com.ibm.icu;bundle-version="[3.4.4,4.0.0)",
+ com.ibm.icu;bundle-version="[3.4.4,3.5.0)",
  org.eclipse.ui.forms;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.ui.navigator;bundle-version="[3.2.0,4.0.0)"
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/AddModulestoEARPropertiesPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/AddModulestoEARPropertiesPage.java
index 949d6e4..f7f3a9e 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/AddModulestoEARPropertiesPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/AddModulestoEARPropertiesPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * 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
@@ -7,7 +7,6 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *	   David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 /*
  * Created on Jan 17, 2005
@@ -38,7 +37,6 @@
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.ui.wizards.BuildPathDialogAccess;
 import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.CheckStateChangedEvent;
 import org.eclipse.jface.viewers.CheckboxTableViewer;
 import org.eclipse.jface.viewers.ColumnWeightData;
@@ -51,6 +49,7 @@
 import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest;
 import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil;
 import org.eclipse.jst.j2ee.internal.common.classpath.J2EEComponentClasspathUpdater;
+import org.eclipse.jst.j2ee.internal.plugin.IJ2EEModuleConstants;
 import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
 import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
 import org.eclipse.jst.j2ee.project.facet.IJavaProjectMigrationDataModelProperties;
@@ -124,7 +123,6 @@
         J2EEDependenciesPage.createDescriptionComposite(composite, ManifestUIResourceHandler.EAR_Modules_Desc);
 		createListGroup(composite);
 		refresh();
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
@@ -211,6 +209,10 @@
 	
 						refdm.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, earComponent);
 						refdm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, targetCompList);
+						
+						// referenced java projects should have archiveName attribute
+						((Map)refdm.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP)).put(targetcomponent, proj.getName() + IJ2EEModuleConstants.JAR_EXT);
+
 						refdm.getDefaultOperation().execute(monitor, null);
 						j2eeComponentList.add(targetcomponent);
 					}
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/J2EEComponentProjectMigrator.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/J2EEComponentProjectMigrator.java
index 536efdb..c6b9321 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/J2EEComponentProjectMigrator.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/J2EEComponentProjectMigrator.java
@@ -66,6 +66,7 @@
 import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
 import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.internal.SimpleValidateEdit;
 import org.eclipse.wst.project.facet.SimpleWebFacetInstallDataModelProvider;
 import org.eclipse.wst.server.core.IRuntime;
 import org.eclipse.wst.server.core.ServerCore;
@@ -94,14 +95,19 @@
 
 	public void migrateProject(IProject aProject) {
 		if (aProject.isAccessible()) {
-			project = aProject;
-			removeComponentBuilders(project);
-			if (multipleComponentsDetected())
-				createNewProjects();
-			String facetid = getFacetFromProject(project);
-			if (facetid.length() == 0)
-				addFacets(project);
-			J2EEComponentClasspathUpdater.getInstance().queueUpdate(project);
+			final List files = new ArrayList();
+			files.add(aProject.getFile(J2EEProjectUtilities.DOT_PROJECT));
+			files.add(aProject.getFile(J2EEProjectUtilities.DOT_CLASSPATH));
+			if(SimpleValidateEdit.validateEdit(files)){
+				project = aProject;
+				removeComponentBuilders(project);
+				if (multipleComponentsDetected())
+					createNewProjects();
+				String facetid = getFacetFromProject(project);
+				if (facetid.length() == 0)
+					addFacets(project);
+				J2EEComponentClasspathUpdater.getInstance().queueUpdate(project);
+			}
 		}
 		ensureJ2EEContentExtensionsEnabled();
 	}
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
index e781459..5363015 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/JARDependencyPropertiesPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * 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
@@ -7,7 +7,6 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *	   David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 /*
  * Created on Jan 17, 2005
@@ -34,7 +33,6 @@
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.jem.workbench.utility.JemProjectUtilities;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -42,7 +40,6 @@
 import org.eclipse.jface.viewers.CheckboxTableViewer;
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.ViewerSorter;
 import org.eclipse.jst.j2ee.application.internal.operations.ClassPathSelection;
 import org.eclipse.jst.j2ee.application.internal.operations.ClasspathElement;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest;
@@ -199,7 +196,6 @@
 			createTextGroup(composite);
 			refresh();
 		}
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
@@ -338,7 +334,9 @@
 		table.setLayout(tableLayout);
 		table.setHeaderVisible(true);
 		table.setLinesVisible(true);
-		availableJARsViewer.setSorter(new ViewerSorter());
+		
+		// do not create sorter otherwise order will go wrong
+		//availableJARsViewer.setSorter(new ViewerSorter());
 
 		// table columns
 		TableColumn fileNameColumn = new TableColumn(table, SWT.NONE, 0);
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/WebLibDependencyPropertiesPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/WebLibDependencyPropertiesPage.java
index 444408a..a01b35e 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/WebLibDependencyPropertiesPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/WebLibDependencyPropertiesPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * 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
@@ -7,7 +7,6 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *	   David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 package org.eclipse.jst.j2ee.internal;
 
@@ -21,7 +20,6 @@
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.ui.wizards.BuildPathDialogAccess;
 import org.eclipse.jem.workbench.utility.JemProjectUtilities;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -65,7 +63,6 @@
 			model.setWLPModel(true);
 			setEnablement();
 		}
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/listeners/ValidateEditListener.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/listeners/ValidateEditListener.java
index 7111e57..311342d 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/listeners/ValidateEditListener.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/listeners/ValidateEditListener.java
@@ -26,7 +26,6 @@
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.internal.Workbench;
@@ -55,9 +54,7 @@
 		try {
 			Display.getDefault().asyncExec(new Runnable() {
 				public void run() {
-					IWorkbench wb = Workbench.getInstance();
-					if (wb == null) return;
-					IWorkbenchWindow window = wb.getActiveWorkbenchWindow();
+					IWorkbenchWindow window = Workbench.getInstance().getActiveWorkbenchWindow();
 					if (window == null && Workbench.getInstance().getWorkbenchWindowCount()>0) {
 						for (int i=0; i<Workbench.getInstance().getWorkbenchWindows().length; i++) {
 							window = Workbench.getInstance().getWorkbenchWindows()[i];
@@ -233,8 +230,7 @@
 	}
 
 	public IStatus validateState() {
-		IWorkbench wb = Workbench.getInstance();
-		if ((fShell==null) && (wb != null && (Workbench.getInstance().getActiveWorkbenchWindow() != null)))
+		if ((fShell==null) && (Workbench.getInstance().getActiveWorkbenchWindow() != null))
 			fShell=Workbench.getInstance().getActiveWorkbenchWindow().getShell();
 		if (fNeedsStateValidation) {
 			setNeedsStateValidation(false);
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/perspective/J2EEPerspective.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/perspective/J2EEPerspective.java
index 82b43fe..b3a7a2b 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/perspective/J2EEPerspective.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/perspective/J2EEPerspective.java
@@ -20,9 +20,7 @@
 import org.eclipse.jdt.ui.JavaUI;
 import org.eclipse.ui.IFolderLayout;
 import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.progress.IProgressConstants;
-import org.eclipse.ui.views.IViewDescriptor;
 
 /**
  * 
@@ -42,7 +40,7 @@
     private static String ID_DYNAMIC_WEB_COMPONENT_WIZARD = "org.eclipse.jst.servlet.ui.WebComponentCreationWizard"; //$NON-NLS-1$
 	private static String ID_STATIC_WEB_COMPONENT_WIZARD = "org.eclipse.wst.web.ui.internal.wizards.SimpleWebModuleCreation"; //$NON-NLS-1$
 	private static final String ID_SEARCH_VIEW = "org.eclipse.search.ui.views.SearchView"; //$NON-NLS-1$
-	private static final String ID_DATA_VIEW = "org.eclipse.datatools.connectivity.DataSourceExplorerNavigator"; //$NON-NLS-1$
+	private static final String ID_DATA_VIEW = "org.eclipse.wst.rdb.server.ui.navigator.serverExplorer"; //$NON-NLS-1$
 	public static final String ID_CONSOLE_VIEW= "org.eclipse.ui.console.ConsoleView"; //$NON-NLS-1$
 
 	public J2EEPerspective() {
@@ -121,7 +119,7 @@
 		bottomRight.addView(IPageLayout.ID_TASK_LIST);
 		bottomRight.addView(IPageLayout.ID_PROP_SHEET);
 		bottomRight.addView(ID_SERVERS_VIEW);
-		addDBViewIfPresent(layout,bottomRight);
+		bottomRight.addView(ID_DATA_VIEW);
 		bottomRight.addView(ID_WST_SNIPPETS_VIEW);
 		
 		bottomRight.addPlaceholder(ID_CONSOLE_VIEW);
@@ -133,12 +131,6 @@
 		IFolderLayout topRight = layout.createFolder("topRight", IPageLayout.RIGHT, 0.7f, editorArea);//$NON-NLS-1$
 		topRight.addView(IPageLayout.ID_OUTLINE);
 	}
-	private void addDBViewIfPresent(IPageLayout page,IFolderLayout bottomRight) {
-		// TODO Auto-generated method stub
-		IViewDescriptor dbView = PlatformUI.getWorkbench().getViewRegistry().find(ID_DATA_VIEW);
-		if (dbView != null)
-			bottomRight.addView(ID_DATA_VIEW);
-	}
 }
 
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/ui/J2EEPropertiesPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/ui/J2EEPropertiesPage.java
index f536334..34d3fed 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/ui/J2EEPropertiesPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/ui/J2EEPropertiesPage.java
@@ -1,21 +1,8 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences     
- *******************************************************************************/
-
 package org.eclipse.jst.j2ee.internal.ui;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jst.j2ee.internal.J2EEPropertiesConstants;
 import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
 import org.eclipse.jst.j2ee.internal.project.ProjectSupportResourceHandler;
@@ -66,7 +53,6 @@
 			
 			fillInformation(project, containerGroup);
 		}
-		Dialog.applyDialogFont(parent);
 		return control;
 	}
 	
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/AnnotationsStandaloneGroup.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/AnnotationsStandaloneGroup.java
index e977b50..05acae6 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/AnnotationsStandaloneGroup.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/AnnotationsStandaloneGroup.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,7 +7,6 @@
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 /*
  * Created on Mar 29, 2004
@@ -18,7 +17,6 @@
 package org.eclipse.jst.j2ee.internal.wizard;
 
 import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jst.j2ee.application.internal.operations.IAnnotationsDataModel;
 import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
 import org.eclipse.swt.SWT;
@@ -92,7 +90,6 @@
 		GridData gd2 = new GridData(GridData.FILL_HORIZONTAL);
 		gd2.horizontalSpan = 2;
 		useAnnotations.setLayoutData(gd2);
-	    Dialog.applyDialogFont(parent);
 	}
 
 	public void dispose() {
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/DataModelAnnotationsStandaloneGroup.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/DataModelAnnotationsStandaloneGroup.java
index 791d886..feb6122 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/DataModelAnnotationsStandaloneGroup.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/DataModelAnnotationsStandaloneGroup.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,12 +7,10 @@
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 package org.eclipse.jst.j2ee.internal.wizard;
 
 import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jst.j2ee.application.internal.operations.IAnnotationsDataModel;
 import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
 import org.eclipse.swt.SWT;
@@ -111,7 +109,6 @@
         // If for project, set the global annotations supported
         if (!isForBean)
             setEnablement(null);
-        Dialog.applyDialogFont(parent);
     }
 
     public void dispose() {
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/EARComponentImportPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/EARComponentImportPage.java
index a13d1b1..262f3c2 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/EARComponentImportPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/EARComponentImportPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,7 +7,6 @@
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 /*
  * Created on Dec 8, 2003
@@ -16,7 +15,6 @@
  */
 package org.eclipse.jst.j2ee.internal.wizard;
 
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jst.j2ee.application.internal.operations.EARComponentImportDataModelProvider;
 import org.eclipse.jst.j2ee.application.internal.operations.IAnnotationsDataModel;
 import org.eclipse.jst.j2ee.application.internal.operations.J2EEArtifactImportDataModelProvider;
@@ -66,7 +64,6 @@
 		createProjectNameComposite(composite);
 		createAnnotationsStandaloneGroup(composite);
 		restoreWidgetValues();
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEExportPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEExportPage.java
index 5e03126..35cb1b8 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEExportPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEExportPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,7 +7,6 @@
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 /*
  * Created on Dec 3, 2003
@@ -24,7 +23,6 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogSettings;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEComponentExportDataModelProperties;
@@ -119,7 +117,6 @@
 		//setupBasedOnInitialSelections();
 		setupInfopop(composite);
 		restoreWidgetValues();
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEImportPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEImportPage.java
index d41368e..7333e1c 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEImportPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEImportPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,14 +7,12 @@
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 package org.eclipse.jst.j2ee.internal.wizard;
 
 import java.util.ArrayList;
 
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogSettings;
 import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEComponentImportDataModelProperties;
 import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
@@ -75,7 +73,6 @@
 		createFileNameComposite(composite);
 		createProjectNameComposite(composite);
 		restoreWidgetValues();
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEUtilityJarImportPageNew.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEUtilityJarImportPageNew.java
index 5090464..88e4c74 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEUtilityJarImportPageNew.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEUtilityJarImportPageNew.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,7 +7,6 @@
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 /*
  * Created on Dec 8, 2003
@@ -19,7 +18,6 @@
 import java.io.File;
 import java.util.ArrayList;
 
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogSettings;
 import org.eclipse.jface.viewers.CheckboxTableViewer;
 import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEUtilityJarListImportDataModelProperties;
@@ -102,7 +100,6 @@
 		createOverwriteCheckbox(composite); 
 
 		restoreWidgetValues();
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEUtilityJarImportTypePageNew.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEUtilityJarImportTypePageNew.java
index 59d1045..b8fd245 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEUtilityJarImportTypePageNew.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/J2EEUtilityJarImportTypePageNew.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,7 +7,6 @@
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 /*
  * Created on May 13, 2004
@@ -26,7 +25,6 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jst.j2ee.application.Application;
@@ -148,7 +146,6 @@
 		createProjectCreationOptions(composite);
 
 		setupBasedOnInitialSelections();
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJ2EEComponentSelectionPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJ2EEComponentSelectionPage.java
index 1ff6ce0..46e2e75 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJ2EEComponentSelectionPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJ2EEComponentSelectionPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * 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
@@ -7,7 +7,6 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 /*
  * Created on Mar 23, 2005
@@ -19,7 +18,6 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.wizard.IWizard;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jst.j2ee.applicationclient.internal.creation.AppClientFacetProjectCreationDataModelProvider;
@@ -123,7 +121,6 @@
         createModuleSelectionComposite(stackComposite);
         stackLayout.topControl = defaultModulesComposite;
         setButtonEnablement();
-	    Dialog.applyDialogFont(parent);
         return composite;
     }
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassOptionsWizardPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassOptionsWizardPage.java
index aa0ac43..8de017d 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassOptionsWizardPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassOptionsWizardPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,7 +7,6 @@
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 package org.eclipse.jst.j2ee.internal.wizard;
 
@@ -22,7 +21,6 @@
 import org.eclipse.jdt.core.search.IJavaSearchScope;
 import org.eclipse.jdt.internal.ui.dialogs.TypeSelectionDialog2;
 import org.eclipse.jem.workbench.utility.JemProjectUtilities;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.operation.IRunnableContext;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.ILabelProviderListener;
@@ -118,7 +116,6 @@
 
 		publicButton.setFocus();
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, getInfopopID());
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java
index 31249c9..e02940d 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,7 +7,6 @@
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
- * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 
 package org.eclipse.jst.j2ee.internal.wizard;
@@ -39,7 +38,6 @@
 import org.eclipse.jdt.internal.ui.viewsupport.IViewPartInputProvider;
 import org.eclipse.jdt.ui.JavaElementLabelProvider;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.DecoratingLabelProvider;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.ISelection;
@@ -148,7 +146,6 @@
 
 		folderText.setFocus();
 		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, getInfopopID());
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
index 0b2aead..0cd33cb 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
@@ -12,7 +12,6 @@
 package org.eclipse.jst.j2ee.internal.wizard;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 
 import org.eclipse.jface.dialogs.Dialog;
@@ -254,8 +253,7 @@
 			public void selectionChanged(SelectionChangedEvent event) {
 				ISelection selection = event.getSelection();
 				if (editButton != null) {
-					boolean enabled = ((IStructuredSelection) selection).size() == 1;
-					editButton.setEnabled(enabled);
+					editButton.setEnabled(!selection.isEmpty());
 				}
 				removeButton.setEnabled(!selection.isEmpty());
 			}
@@ -278,14 +276,10 @@
 	}
 
 	private void handleEditButtonSelected() {
-		ISelection s = viewer.getSelection();
-		if (!(s instanceof IStructuredSelection))
+		ISelection selection = viewer.getSelection();
+		if (selection.isEmpty() || !(selection instanceof IStructuredSelection))
 			return;
-		IStructuredSelection selection = (IStructuredSelection) s;
-		if (selection.size() != 1)
-			return;
-		
-		Object selectedObj = selection.getFirstElement();
+		Object selectedObj = ((IStructuredSelection) selection).getFirstElement();
 		String[] valuesForText = (String[]) selectedObj;
 		
 		EditStringArrayDialog dialog = new EditStringArrayDialog(getShell(), title, labelsForText, valuesForText);
@@ -298,8 +292,8 @@
 		ISelection selection = viewer.getSelection();
 		if (selection.isEmpty() || !(selection instanceof IStructuredSelection))
 			return;
-		List selectedObj = ((IStructuredSelection) selection).toList();
-		removeStringArrays(selectedObj);
+		Object selectedObj = ((IStructuredSelection) selection).getFirstElement();
+		removeStringArray(selectedObj);
 	}
 	
 	public void addStringArray(String[] stringArray) {
@@ -335,12 +329,6 @@
 		valueList.remove(selectedStringArray);
 		setInput(valueList);
 	}
-	
-	public void removeStringArrays(Collection selectedStringArrays) {
-		List valueList = (List) viewer.getInput();
-		valueList.removeAll(selectedStringArrays);
-		setInput(valueList);
-	}
 
 	public void setInput(List input) {
 		viewer.setInput(input);
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/WizardClassesImportPage1.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/WizardClassesImportPage1.java
index 82b919c..c423470 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/WizardClassesImportPage1.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/WizardClassesImportPage1.java
@@ -35,6 +35,8 @@
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.ICheckStateListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jst.j2ee.internal.actions.IJ2EEUIContextIds;
@@ -64,8 +66,12 @@
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.dialogs.FileSystemElement;
 import org.eclipse.ui.dialogs.WizardResourceImportPage;
+import org.eclipse.ui.internal.dialogs.DialogUtil;
 import org.eclipse.ui.internal.ide.dialogs.IElementFilter;
+import org.eclipse.ui.internal.ide.dialogs.ResourceTreeAndListGroup;
 import org.eclipse.ui.model.WorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.eclipse.ui.model.WorkbenchViewerSorter;
 import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
 import org.eclipse.ui.wizards.datatransfer.IImportStructureProvider;
 import org.eclipse.ui.wizards.datatransfer.ImportOperation;
@@ -163,6 +169,25 @@
 			sourceNameField.setText(""); //$NON-NLS-1$
 	}
 
+	protected void createFileSelectionGroup(Composite parent) {
+
+		//Just create with a dummy root.
+		this.selectionGroup = new ResourceTreeAndListGroup(parent, new FileSystemElement("Dummy", null, true), //$NON-NLS-1$
+					getFolderProvider(), new WorkbenchLabelProvider(), getFileProvider(),
+					//new WorkbenchLabelProviderForClassImport(),
+					new WorkbenchLabelProvider(), SWT.NONE, DialogUtil.inRegularFontMode(parent));
+
+		ICheckStateListener listener = new ICheckStateListener() {
+			public void checkStateChanged(CheckStateChangedEvent event) {
+				updateWidgetEnablements();
+			}
+		};
+
+		WorkbenchViewerSorter sorter = new WorkbenchViewerSorter();
+		this.selectionGroup.setTreeSorter(sorter);
+		this.selectionGroup.setListSorter(sorter);
+		this.selectionGroup.addCheckStateListener(listener);
+	}
 
 	/**
 	 * Creates a new button with the given id.
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarFacetInstallPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarFacetInstallPage.java
index 69a8111..2d2ff83 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarFacetInstallPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarFacetInstallPage.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc. and others.
+ * Copyright (c) 2005 BEA Systems, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,7 +7,6 @@
  *
  * Contributors:
  *    Konstantin Komissarchik - initial API and implementation
- *    David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  ******************************************************************************/
 
 package org.eclipse.jst.j2ee.ui.project.facet;
@@ -21,7 +20,6 @@
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.viewers.CheckStateChangedEvent;
 import org.eclipse.jface.viewers.CheckboxTableViewer;
@@ -104,7 +102,7 @@
 		this.contentDir = new Text(composite, SWT.BORDER);
 		this.contentDir.setLayoutData(gdhfill());
 		synchHelper.synchText(contentDir, CONTENT_DIR, null);
-	    Dialog.applyDialogFont(parent);
+
 		return modulesGroup;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarSelectionPanel.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarSelectionPanel.java
index cd73af6..4d968c2 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarSelectionPanel.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/EarSelectionPanel.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc. and others.
+ * Copyright (c) 2005 BEA Systems, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,12 +7,10 @@
  *
  * Contributors:
  *    Konstantin Komissarchik - initial API and implementation
- *    David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  ******************************************************************************/
 
 package org.eclipse.jst.j2ee.ui.project.facet;
 
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.jst.j2ee.project.facet.J2EEModuleFacetInstallDataModelProvider;
 import org.eclipse.jst.j2ee.web.project.facet.IWebFacetInstallDataModelProperties;
@@ -79,7 +77,7 @@
         } );
         
         synchhelper.synchCombo(combo, EAR_PROJECT_NAME, new Control[]{label, newButton});
-        Dialog.applyDialogFont(parent);
+        
     }
 
     private void handleAddButton()
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/appclient/AppClientFacetInstallPage.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/appclient/AppClientFacetInstallPage.java
index d03bfef..c0ba05e 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/appclient/AppClientFacetInstallPage.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/ui/project/facet/appclient/AppClientFacetInstallPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * 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
@@ -7,11 +7,9 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  *******************************************************************************/
 package org.eclipse.jst.j2ee.ui.project.facet.appclient;
 
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jst.j2ee.internal.actions.IJ2EEUIContextIds;
 import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
 import org.eclipse.jst.j2ee.internal.wizard.J2EEModuleFacetInstallPage;
@@ -58,7 +56,7 @@
 		createMainClass = new Button(composite, SWT.CHECK);
 		createMainClass.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.APP_CLIENT_CREATE_MAIN));
 		synchHelper.synchCheckbox(createMainClass, CREATE_DEFAULT_MAIN_CLASS, null);
-	    Dialog.applyDialogFont(parent);
+		
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee.ui/plugin.properties b/plugins/org.eclipse.jst.j2ee.ui/plugin.properties
index b10d5fc..aeeb90f 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/plugin.properties
+++ b/plugins/org.eclipse.jst.j2ee.ui/plugin.properties
@@ -16,23 +16,40 @@
 ear.import.description_ui_=Import an external EAR file into an Enterprise Application project
 
 ear.export.description_ui_=Export an Enterprise Application project into an EAR file
+ear.export.action.description_ui_=Export EAR File...
 j2ee.category_ui_=J2EE
+client.project_ui_=Application Client Project
+ear.project_ui_=Enterprise Application Project
 j2ee.actions.description_ui_=Actions for J2EE Development
 create.enterprise.application_ui_=Create an Enterprise Application
 create.client.module_ui_=Create an Application Client project
+client.export.action.label_ui_=Export Application Client JAR...
+jar.dependencies.props_ui_=EAR Dependencies
+ejb.export.action.description_ui_=Export EJB JAR File...
+ejb.client.jar.creation.action.description_ui_=Create EJB Client Jar
+emptyEJBGroupFilter.name=Empty EJB groups
 ejb.export.action.description_ui_=Export EJB JAR File...
 utility_jar_import_wizard=J2EE Utility Jar
+deploy_ui_=Deploy
+Import_Classes=Import Class Files...
+flexible.project_ui_=Flexible Java Project
+new.flexible.project.description_ui_=Create a flexible Java project
 ear_component_ui_=Enterprise Application Project
 new.ear.component.description_ui_=Create a J2EE EAR project
 appclient_component_ui_=Application Client Project
 new.appclient.component.description_ui_=Create a J2EE application client project
+Java_Component=Java Component
+Java_Component.description=Create a Java Component
+addmodulestoear.props_ui_=EAR modules
 J2EEDependenciesPage.name = J2EE Module Dependencies
+weblib.dependencies.props_ui_=Web Libraries
+J2EE_Rename_Participant=J2EE Rename Participant
+new-projects-wizard-category-name = Web Tools (New)
 util-project-wizard-name = Utility Project
 util-project-wizard-description = Create a Utility project
 utility.import.description_ui_=Import one or more external *.jar files as J2EE Utility Projects or *.jars.
+ear-project-wizard-name = EAR Project
+ear-project-wizard-description = Create an EAR project
 Web_Project_Settings=Web Project Settings
 update-ear-libraries=Update EAR Libraries
 update-ear-libraries-tooltip=Recompute the contents of the EAR Libraries classpath container.
-
-Bundle-Name.0 = WTP J2EE UI Plug-in
-Bundle-Vendor.0 = Eclipse.org
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.j2ee.web/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee.web/META-INF/MANIFEST.MF
index 6212cbd..07e6d2f 100644
--- a/plugins/org.eclipse.jst.j2ee.web/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.j2ee.web/META-INF/MANIFEST.MF
@@ -28,13 +28,13 @@
  org.eclipse.jst.j2ee.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.common.emf;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.4.0)",
- org.eclipse.emf.edit;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.3.0)",
+ org.eclipse.emf.edit;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.jem.workbench;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.emf.codegen;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.codegen;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.wst.web;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jface;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jst.common.annotations.controller;bundle-version="[1.1.0,1.2.0)",
@@ -43,6 +43,6 @@
  org.eclipse.jem.util;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.wst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
- com.ibm.icu;bundle-version="[3.4.4,4.0.0)",
+ com.ibm.icu;bundle-version="[3.4.4,3.5.0)",
  org.eclipse.wst.common.environment;bundle-version="[1.0.100,1.1.0)"
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java
index 4faaba7..cf5cced 100644
--- a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java
+++ b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java
@@ -12,6 +12,8 @@
 package org.eclipse.jst.j2ee.web.project.facet;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.resources.IFile;
@@ -26,6 +28,7 @@
 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.jem.util.logger.proxy.Logger;
 import org.eclipse.jst.common.project.facet.WtpUtils;
 import org.eclipse.jst.common.project.facet.core.ClasspathHelper;
@@ -153,6 +156,48 @@
 	}
 
 	private void setJavaOutputPropertyIfNeeded(IDataModel model, final IVirtualComponent c) {
+		
+		// Make sure output folder is set properly for web projects, and the product setting for single root structure is maintained.
+		// We may need to change the existing setup
+
+		if (ProductManager.shouldUseSingleRootStructure()) {
+			String outputFolder = model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER)+"/"+J2EEConstants.WEB_INF_CLASSES;
+			
+			IJavaProject jproj = JavaCore.create(c.getProject());
+			IClasspathEntry[] current = null;
+			boolean webinf = false;
+			IPath pjpath = c.getProject().getFullPath();
+			try {
+				current = jproj.getRawClasspath();
+				List updatedList = new ArrayList();
+				IPath sourcePath = null;
+				boolean changeNeeded = false;
+				for (int i = 0; i < current.length; i++) {
+					IClasspathEntry entry = current[i];
+					if ((entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) && (entry.getOutputLocation() != null && entry.getOutputLocation().toString().indexOf(J2EEConstants.WEB_INF_CLASSES) == -1)) {
+						//output different than J2EEConstants.WEB_INF_CLASSES
+						sourcePath = entry.getPath();
+						updatedList.add(JavaCore.newSourceEntry(sourcePath));
+						changeNeeded = true;
+					}
+					else
+						updatedList.add(entry);
+				}
+				IPath currentDefaultOutput = null;
+				currentDefaultOutput = jproj.getOutputLocation();
+				if (currentDefaultOutput.toString().indexOf(J2EEConstants.WEB_INF_CLASSES) == -1)
+					changeNeeded = true;
+				if (changeNeeded) {
+					IClasspathEntry[] updated = (IClasspathEntry[])updatedList.toArray(new IClasspathEntry[updatedList.size()]);
+					IPath outdir = pjpath.append(outputFolder); 
+					jproj.setRawClasspath(updated,outdir ,null);
+					jproj.save(null, true);
+				}
+			} catch (JavaModelException e) {
+				Logger.getLogger().logError(e);
+			}
+		}
+		// Now just set the property
 		String existing = c.getMetaProperties().getProperty("java-output-path"); //$NON-NLS-1$
 		if (existing == null)
 			setOutputFolder(model, c);
@@ -183,13 +228,6 @@
 			c.setMetaProperty("context-root", contextRoot); //$NON-NLS-1$
 	}
 
-//	private IPath setSourcePropertyIfNeeded(final IDataModel model, final IPath pjpath, IProject project) {
-//		IVirtualComponent c = ComponentCore.createComponent(project);
-//		if (c.exists()) {
-//			return J2EEProjectUtilities.getSourcePathOrFirst(project, null).makeAbsolute();
-//		}
-//		return pjpath.append(model.getStringProperty(IWebFacetInstallDataModelProperties.SOURCE_FOLDER));
-//	}
 
 	private IPath setContentPropertyIfNeeded(final IDataModel model, final IPath pjpath, IProject project) {
 		IVirtualComponent c = ComponentCore.createComponent(project);
diff --git a/plugins/org.eclipse.jst.j2ee.webservice.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee.webservice.ui/META-INF/MANIFEST.MF
index 4532c51..1ec7d0b 100644
--- a/plugins/org.eclipse.jst.j2ee.webservice.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.j2ee.webservice.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.j2ee.webservice.ui; singleton:=true
-Bundle-Version: 1.1.101.qualifier
+Bundle-Version: 1.1.3.qualifier
 Bundle-Activator: org.eclipse.jst.j2ee.internal.webservice.plugin.WebServiceUIPlugin
 Bundle-Vendor: %pluginVendor
 Bundle-Localization: plugin
@@ -15,11 +15,11 @@
  org.eclipse.jst.j2ee.ui;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jst.j2ee;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.edit;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.edit;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jst.j2ee.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.edit.ui;bundle-version="[2.2.0,2.4.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.2.0,2.3.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.common.emf;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jst.j2ee.webservice;bundle-version="[1.1.0,1.2.0)",
diff --git a/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/NewProjectsListener.java b/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/NewProjectsListener.java
index 547b35b..3174b22 100644
--- a/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/NewProjectsListener.java
+++ b/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/NewProjectsListener.java
@@ -32,7 +32,6 @@
 		synchronization = sync;
 		if(synchronization.webServiceProjectsExist(new NullProgressMonitor())) {
 			synchronizing = true;
-			synchronization.startIndexJob();
 		}
 		startListening();
 	} 
diff --git a/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/WebServiceViewerSynchronization.java b/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/WebServiceViewerSynchronization.java
index 6fc26ac..5c69f50 100644
--- a/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/WebServiceViewerSynchronization.java
+++ b/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/WebServiceViewerSynchronization.java
@@ -91,11 +91,11 @@
 			case WebServiceEvent.REFRESH:
 
 				if(!hasNavigatorGroupBeenAdded()) {
-					if(!hasIndexJobBeenScheduled())
+					if(!hasIndexJobBeenScheduled()){
 						indexJob.schedule();
-					else {
-						new AddWebServicesNodeUIJob().schedule();
 					}
+					if(!hasNavigatorGroupBeenAdded())
+						new AddWebServicesNodeUIJob().schedule();
 				} else {
 					updateJob.schedule();
 				}
@@ -108,7 +108,6 @@
 
 	public void startIndexJob() {
 		indexJob.schedule();
-		
 	} 
 	
 	/**
@@ -200,19 +199,18 @@
 	}
 	
 	/* package */ boolean webServiceProjectsExist(IProgressMonitor monitor) { 	
-		
+		boolean ret = false;
 		IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-		try {
-			monitor.beginTask("Searching for web service capable projects...", projects.length);
-			for (int i = 0; i < projects.length; i++) {
-				 if(isInteresting(projects[i]))
-					 return true;
-				 monitor.worked(1);
-			}
-		} finally {
-			monitor.done();
+		
+		monitor.beginTask("Searching for web service capable projects...", projects.length);
+		for (int i = 0; i < projects.length; i++) {
+			 if(isInteresting(projects[i])){
+				 ret = true;
+				 break;
+			 }	 
 		}
-		return false;
+		monitor.worked(1);
+		return ret;
 	}
 
 	/* package */ static boolean isInteresting(IProject project) {
@@ -229,12 +227,13 @@
 		}
 
 		protected IStatus run(IProgressMonitor monitor) {
-			monitor.beginTask(WebServiceUIResourceHandler.WS_NAV_JOB1, 4);
+			monitor.beginTask(WebServiceUIResourceHandler.WS_NAV_JOB1, 5);
   
-			if (webServiceProjectsExist(monitor) && indexWebServices(monitor)) {
-				new AddWebServicesNodeUIJob().schedule();
-			}
-
+			if (webServiceProjectsExist(monitor))
+					indexWebServices(monitor);
+			
+			monitor.done();
+			
 			return Status.OK_STATUS;
 		}
 	}
diff --git a/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/WebServicesNavigatorContentProvider.java b/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/WebServicesNavigatorContentProvider.java
index 1e73100..4b6cec5 100644
--- a/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/WebServicesNavigatorContentProvider.java
+++ b/plugins/org.eclipse.jst.j2ee.webservice.ui/webservices_ui/org/eclipse/jst/j2ee/internal/webservice/WebServicesNavigatorContentProvider.java
@@ -87,19 +87,21 @@
 		
 		if (parentElement instanceof IWorkspaceRoot) {
 			// return new Object[]{ getWebServicesNavigatorGroup(parentElement) };
-			if (!viewerSynchronization.hasNavigatorGroupBeenAdded()) {
-				if (!viewerSynchronization.hasIndexJobBeenScheduled())
-					viewerSynchronization.startIndexJob();
-				return NO_CHILDREN;
-			} else {
-				return new Object[]{getNavigatorGroup()};
-			}
-		} else if (parentElement instanceof WebServiceNavigatorGroup)
+			viewerSynchronization.setNavigatorGroupAdded(true);
+			return new Object[]{getNavigatorGroup()};
+		} else if (parentElement instanceof WebServiceNavigatorGroup){
+			if (!viewerSynchronization.hasIndexJobBeenScheduled()) {
+				viewerSynchronization.startIndexJob();
+			} 
 			return new Object[]{getServicesGroup(), getClientsGroup()};
 
-		else if (parentElement instanceof WebServiceNavigatorGroupType) {
+		}else if (parentElement instanceof WebServiceNavigatorGroupType) {
+			if (!viewerSynchronization.hasIndexJobBeenScheduled()) {
+				viewerSynchronization.startIndexJob();
+			} 
 			WebServiceNavigatorGroupType wsGroupType = (WebServiceNavigatorGroupType) parentElement;
 			return wsGroupType.getChildren();
+		
 		} else if (WSDLServiceExtManager.getServiceHelper().isService(parentElement))
 			return getServiceLevelNodes(parentElement).toArray();
 
diff --git a/plugins/org.eclipse.jst.j2ee.webservice/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee.webservice/META-INF/MANIFEST.MF
index 41a05be..6147847 100644
--- a/plugins/org.eclipse.jst.j2ee.webservice/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.j2ee.webservice/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.j2ee.webservice; singleton:=true
-Bundle-Version: 1.1.3.qualifier
+Bundle-Version: 1.1.4.qualifier
 Bundle-Activator: org.eclipse.jst.j2ee.internal.webservice.plugin.WebServicePlugin
 Bundle-Vendor: %pluginVendor
 Bundle-Localization: plugin
@@ -19,8 +19,8 @@
  org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jst.j2ee.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.common.emf;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.4.0)",
- org.eclipse.emf.edit;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.3.0)",
+ org.eclipse.emf.edit;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.jem;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
diff --git a/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/componentcore/util/WSDDArtifactEdit.java b/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/componentcore/util/WSDDArtifactEdit.java
index c9f96eb..173614e 100644
--- a/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/componentcore/util/WSDDArtifactEdit.java
+++ b/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/componentcore/util/WSDDArtifactEdit.java
@@ -464,7 +464,7 @@
 			// Ignore
 		}
 		WSDLServiceHelper serviceHelper = WSDLServiceExtManager.getServiceHelper();
-		if (res != null && res.isLoaded() && serviceHelper.isWSDLResource(res))
+		if (res != null && res.isLoaded() && serviceHelper != null && serviceHelper.isWSDLResource(res))
 			return res;
 		return null;
 	}
diff --git a/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/helper/WebServicesManager.java b/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/helper/WebServicesManager.java
index 9fcba5c..e25eef9 100644
--- a/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/helper/WebServicesManager.java
+++ b/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/helper/WebServicesManager.java
@@ -53,6 +53,7 @@
 import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
 import org.eclipse.jst.j2ee.internal.J2EEConstants;
 import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
+import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil;
 import org.eclipse.jst.j2ee.internal.common.XMLResource;
 import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
 import org.eclipse.jst.j2ee.internal.webservice.componentcore.util.WSCDDArtifactEdit;
@@ -74,6 +75,7 @@
 import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.ModuleCoreNature;
 import org.eclipse.wst.common.componentcore.internal.ArtifactEditModel;
+import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
 import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper;
@@ -684,7 +686,25 @@
 		List result = new ArrayList();
 		while (iter.hasNext()) {
 			WSCDDArtifactEdit wscArtifactEdit = (WSCDDArtifactEdit) iter.next();
-			ArtifactEdit artifactEdit = ArtifactEdit.getArtifactEditForRead(wscArtifactEdit.getProject());
+
+			IProject project = wscArtifactEdit.getProject(); 	
+			
+			String projectType = J2EEProjectUtilities.getJ2EEProjectType(project);
+			String projectVersion = J2EEProjectUtilities.getJ2EEProjectVersion(project);
+			int    j2eeLevel =  0;
+			if(IModuleConstants.JST_EJB_MODULE.equals(projectType)){
+				j2eeLevel = J2EEVersionUtil.convertEJBVersionStringToJ2EEVersionID(projectVersion);
+			} else if(IModuleConstants.JST_WEB_MODULE.equals(projectType)){
+				j2eeLevel = J2EEVersionUtil.convertWebVersionStringToJ2EEVersionID(projectVersion);
+			} else if(IModuleConstants.JST_APPCLIENT_MODULE.equals(projectType)){
+				j2eeLevel = J2EEVersionUtil.convertAppClientVersionStringToJ2EEVersionID(projectVersion);
+			}
+			
+			// this method needs to check that project's j2ee level is 14
+			if(j2eeLevel !=  J2EEVersionConstants.J2EE_1_4_ID)
+				continue;
+			
+			ArtifactEdit artifactEdit = ArtifactEdit.getArtifactEditForRead(project);
 			try {
 				EObject rootObject = null;
 				if (artifactEdit!=null)
diff --git a/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
index ab18606..518b083 100644
--- a/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: J2EE Component
 Bundle-SymbolicName: org.eclipse.jst.j2ee; singleton:=true
-Bundle-Version: 1.1.3.qualifier
+Bundle-Version: 1.1.4.qualifier
 Bundle-Activator: org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin
 Bundle-Vendor: Eclipse.org
 Bundle-Localization: plugin
@@ -41,23 +41,23 @@
  org.eclipse.jst.j2ee.refactor,
  org.eclipse.jst.j2ee.refactor.listeners,
  org.eclipse.jst.j2ee.refactor.operations
-Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.2.0,2.4.0)",
+Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.jem.workbench;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.jst.j2ee.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore.edit;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore.edit;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.wst.server.core;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.jst.server.core;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.wst.common.emf;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.jem.workbench;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jem;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.wst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.emf.codegen;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.codegen;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.jdt.launching;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jface;bundle-version="[3.2.0,4.0.0)",
@@ -70,6 +70,6 @@
  org.eclipse.jst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.web;bundle-version="[1.1.0,1.2.0)",
- com.ibm.icu;bundle-version="[3.4.4,4.0.0)",
+ com.ibm.icu;bundle-version="[3.4.4,3.5.0)",
  org.eclipse.wst.common.environment;bundle-version="[1.0.100,1.1.0)"
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetPostInstallDelegate.java b/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetPostInstallDelegate.java
index 0b49234..2f60d9a 100644
--- a/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetPostInstallDelegate.java
+++ b/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetPostInstallDelegate.java
@@ -19,14 +19,13 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.workbench.utility.JemProjectUtilities;
 import org.eclipse.jst.j2ee.application.internal.operations.UpdateManifestDataModelProperties;
 import org.eclipse.jst.j2ee.application.internal.operations.UpdateManifestDataModelProvider;
 import org.eclipse.jst.j2ee.internal.J2EEConstants;
 import org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties;
 import org.eclipse.jst.j2ee.internal.common.operations.NewJavaClassDataModelProvider;
+import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
 import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.internal.operation.IArtifactEditOperationDataModelProperties;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
@@ -86,12 +85,14 @@
 			mainClassDataModel.setProperty(IArtifactEditOperationDataModelProperties.PROJECT_NAME, project.getName());
 			mainClassDataModel.setProperty(INewJavaClassDataModelProperties.CLASS_NAME, "Main"); //$NON-NLS-1$
 			mainClassDataModel.setBooleanProperty(INewJavaClassDataModelProperties.MAIN_METHOD, true);
-			String projRelativeSourcePath = IPath.SEPARATOR + project.getName() + IPath.SEPARATOR + model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER);
-			mainClassDataModel.setProperty(INewJavaClassDataModelProperties.SOURCE_FOLDER, projRelativeSourcePath);
-			IJavaProject javaProject = JemProjectUtilities.getJavaProject(project);
-			mainClassDataModel.setProperty(INewJavaClassDataModelProperties.JAVA_PACKAGE_FRAGMENT_ROOT, javaProject.getPackageFragmentRoots()[0]);
-			mainClassDataModel.getDefaultOperation().execute(monitor, null);
-			createManifestEntryForMainClass(monitor, model, project);
+
+			IContainer container = J2EEProjectUtilities.getSourceFolderOrFirst(project, null);
+			if( container != null ){
+				String projRelativeSourcePath = IPath.SEPARATOR + project.getName() + IPath.SEPARATOR + container.getName();
+				mainClassDataModel.setProperty(INewJavaClassDataModelProperties.SOURCE_FOLDER, projRelativeSourcePath);
+				mainClassDataModel.getDefaultOperation().execute(monitor, null);
+				createManifestEntryForMainClass(monitor, model, project);
+			}
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentExportOperation.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentExportOperation.java
index c0b3e51..4754514 100644
--- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentExportOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentExportOperation.java
@@ -56,7 +56,7 @@
 	protected void runNecessaryBuilders(IVirtualComponent component, IProgressMonitor monitor) throws CoreException {
 		try {
 			IVirtualReference[] refs = component.getReferences();
-			int work = (JAVA_BUILDER_WORK + LIB_BUILDER_WORK) / refs.length + 1; 
+			int work = (JAVA_BUILDER_WORK + LIB_BUILDER_WORK) / (refs.length + 1); 
 			super.runNecessaryBuilders(component, new SubProgressMonitor(monitor, work));
 			for (int i = 0; i < refs.length; i++) {
 				IVirtualComponent refComp = refs[i].getReferencedComponent();
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentSaveStrategyImpl.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentSaveStrategyImpl.java
index c0cb18e..f3e8c72 100644
--- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentSaveStrategyImpl.java
+++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentSaveStrategyImpl.java
@@ -38,7 +38,7 @@
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.internal.DoNotUseMeThisWillBeDeletedPost15;
 
-public class EARComponentSaveStrategyImpl extends J2EEComponentSaveStrategyImpl {
+public class EARComponentSaveStrategyImpl extends ComponentSaveStrategyImpl {
 
 	protected Map createdComponentsMap;
 
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/J2EEArtifactImportOperation.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/J2EEArtifactImportOperation.java
index 167ab52..bb03d45 100644
--- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/J2EEArtifactImportOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/J2EEArtifactImportOperation.java
@@ -132,7 +132,7 @@
 	protected void importModuleFile(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
 		try {
 			monitor.beginTask(null, moduleFile.getFiles().size());
-			J2EEComponentSaveStrategyImpl aStrategy = (J2EEComponentSaveStrategyImpl) createSaveStrategy(virtualComponent);
+			ComponentSaveStrategyImpl aStrategy = (ComponentSaveStrategyImpl) createSaveStrategy(virtualComponent);
 			aStrategy.setProgressMonitor(monitor);
 			aStrategy.setOverwriteHandler((IOverwriteHandler) model.getProperty(IJ2EEComponentImportDataModelProperties.OVERWRITE_HANDLER));
 			aStrategy.setDataModel(model);
diff --git a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/ClasspathModel.java b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/ClasspathModel.java
index e58c8bb..5359d7d 100644
--- a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/ClasspathModel.java
+++ b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/ClasspathModel.java
@@ -401,9 +401,11 @@
 	 * Sets the manfest on the archive, updates the classpath selection, and notifies
 	 */
 	public void setManifest(ArchiveManifest manifest) {
+		if (archive != null){
 		archive.setManifest(manifest);
 		getClassPathSelection(); // Ensure the selection is initialized.
 		fireNotification(new ClasspathModelEvent(ClasspathModelEvent.MANIFEST_CHANGED));
+		}
 	}
 
 	public void selectEAR(int index) {
diff --git a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathInitializer.java b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathInitializer.java
index 9e42739..d18b094 100644
--- a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathInitializer.java
+++ b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathInitializer.java
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.jst.j2ee.internal.common.classpath;
 
+import java.lang.reflect.Field;
+
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.jdt.core.ClasspathContainerInitializer;
@@ -60,6 +62,40 @@
 
 		final IClasspathContainer container = JavaCore.getClasspathContainer(containerPath, javaProject);
 
-		( (J2EEComponentClasspathContainer) container ).refresh( true );
+		// ( (FlexibleProjectContainer) container ).refresh();
+
+		refresh(container);
 	}
+	
+	// Workaround for bug 145784.
+    // this same hack is also being used in FlexibleProjectContainerInitializer
+    private static void refresh( final IClasspathContainer container )
+    {
+        if( container instanceof J2EEComponentClasspathContainer )
+        {
+            ( (J2EEComponentClasspathContainer) container ).refresh(true);
+        }
+        else
+        {
+            try
+            {
+                final Field field 
+                    = container.getClass().getDeclaredField( "fOriginal" ); //$NON-NLS-1$
+                
+                field.setAccessible( true );
+                
+                refresh( (IClasspathContainer) field.get( container ) );
+            }
+            catch( NoSuchFieldException e )
+            {
+                // Should not happen.
+                throw new RuntimeException( e );
+            }
+            catch( IllegalAccessException e )
+            {
+                // Should not happen.
+                throw new RuntimeException( e );
+            }
+        }
+    }
 }
diff --git a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathUpdater.java b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathUpdater.java
index 4ae7df0..688e6e5 100644
--- a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathUpdater.java
+++ b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathUpdater.java
@@ -476,12 +476,15 @@
 		ResourceTreeRootAdapter resourceTreeAdapter = (ResourceTreeRootAdapter) ExtendedEcoreUtil
 				.getAdapter(aModule, aModule.eAdapters(),
 						ResourceTreeRootAdapter.DEPLOY_ADAPTER_TYPE);
-		resourceTreeAdapter.setResourceTreeRoot(null);
+		if(null != resourceTreeAdapter) {
+			resourceTreeAdapter.setResourceTreeRoot(null);
+		}
 		resourceTreeAdapter = (ResourceTreeRootAdapter) ExtendedEcoreUtil
 				.getAdapter(aModule, aModule.eAdapters(),
 						ResourceTreeRootAdapter.SOURCE_ADAPTER_TYPE);
-		resourceTreeAdapter.setResourceTreeRoot(null);
-
+		if(null != resourceTreeAdapter){
+			resourceTreeAdapter.setResourceTreeRoot(null);
+		}
 	}
 
 
@@ -497,8 +500,12 @@
 				StructureEdit core = StructureEdit
 						.getStructureEditForRead(delta[i].getResource()
 								.getProject());
-				WorkbenchComponent component = core.getComponent();
-				clearResourceTreeRootCache(component);
+				if(null != core){
+					WorkbenchComponent component = core.getComponent();
+					if(component != null){
+						clearResourceTreeRootCache(component);
+					}
+				}
 			} else {
 				findNode(delta[i].getAffectedChildren());
 			}
diff --git a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/operations/NewJavaClassDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/operations/NewJavaClassDataModelProvider.java
index b1277f7..d8ad200 100644
--- a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/operations/NewJavaClassDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/operations/NewJavaClassDataModelProvider.java
@@ -286,7 +286,7 @@
 				return WTPCommonPlugin.createErrorStatus(msg);
 			} else if (javaStatus.getSeverity() == IStatus.WARNING) {
 				String msg = J2EECommonMessages.ERR_JAVA_PACKAGE_NAME_WARNING + javaStatus.getMessage();
-				return WTPCommonPlugin.createErrorStatus(msg);
+				return WTPCommonPlugin.createWarningStatus(msg);
 			}
 		}
 		// java package name is valid
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetInstallDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetInstallDataModelProvider.java
index e13df82..2bff42e 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetInstallDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetInstallDataModelProvider.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jst.j2ee.project.facet;
 
+import org.eclipse.jst.j2ee.internal.plugin.IJ2EEModuleConstants;
 import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
 
@@ -18,6 +19,9 @@
 	public Object getDefaultProperty(String propertyName) {
 		if (FACET_ID.equals(propertyName)) {
 			return J2EEProjectUtilities.UTILITY;
+		} else if (propertyName.equals(MODULE_URI)) {
+			String projectName = model.getStringProperty(FACET_PROJECT_NAME).replace(' ', '_');
+			return projectName + IJ2EEModuleConstants.JAR_EXT;
 		}
 		return super.getDefaultProperty(propertyName);
 	}
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/AppClientBinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/AppClientBinaryComponentHelper.java
index 0503d0b..574b3ca 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/AppClientBinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/AppClientBinaryComponentHelper.java
@@ -10,12 +10,16 @@
  *******************************************************************************/
 package org.eclipse.jst.j2ee.internal.componentcore;
 
+import java.io.IOException;
+
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.ApplicationClientFile;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ApplicationClientFileImpl;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.AppClient12ImportStrategyImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 
 public class AppClientBinaryComponentHelper extends EnterpriseBinaryComponentHelper {
@@ -73,6 +77,25 @@
 			count = 0;
 			super.close();
 		}
+		
+		private EnterpriseBinaryComponentHelper helper = null;
+		
+		public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper() {
+			return helper;
+		}
+
+		public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper) {
+			this.helper = helper;
+		}
+		
+		protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
+			try {
+				return createBinaryLoadStrategy(getEnterpriseBinaryComponentHelper());
+			} catch (OpenFailureException e) {
+				throw new IOException(e.getMessage());
+			}
+		}
+
 	}
 
 	protected ArchiveTypeDiscriminator getDiscriminator() {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EJBBinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EJBBinaryComponentHelper.java
index e582af5..25e293a 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EJBBinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EJBBinaryComponentHelper.java
@@ -10,12 +10,16 @@
  *******************************************************************************/
 package org.eclipse.jst.j2ee.internal.componentcore;
 
+import java.io.IOException;
+
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBJarFile;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EJBJarFileImpl;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.EjbJar11ImportStrategyImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 
 public class EJBBinaryComponentHelper extends EnterpriseBinaryComponentHelper {
@@ -73,6 +77,24 @@
 			count = 0;
 			super.close();
 		}
+		
+		private EnterpriseBinaryComponentHelper helper = null;
+		
+		public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper() {
+			return helper;
+		}
+
+		public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper) {
+			this.helper = helper;
+		}
+		
+		protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
+			try {
+				return createBinaryLoadStrategy(getEnterpriseBinaryComponentHelper());
+			} catch (OpenFailureException e) {
+				throw new IOException(e.getMessage());
+			}
+		}
 	}
 
 	protected ArchiveTypeDiscriminator getDiscriminator() {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EnterpriseBinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EnterpriseBinaryComponentHelper.java
index 0982711..0ac7369 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EnterpriseBinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EnterpriseBinaryComponentHelper.java
@@ -327,17 +327,8 @@
 		public synchronized IReferenceCountedArchive openArchive(EnterpriseBinaryComponentHelper helper) throws OpenFailureException {
 			ArchiveOptions options = helper.getArchiveOptions();
 			String archiveURI = helper.getArchiveURI();
-			String filename = archiveURI.replace('/', java.io.File.separatorChar);
-			java.io.File file = new java.io.File(filename);
-			if (!file.exists()) {
-				throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.file_not_found_EXC_, (new Object[] { archiveURI, file.getAbsolutePath() }))); 
-			}
-			try {
-				BinaryZipFileLoadStrategy strategy = new BinaryZipFileLoadStrategy(file);
-				options.setLoadStrategy(strategy);
-			} catch (IOException ex) {
-				throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.could_not_open_EXC_, (new Object[] { archiveURI })), ex); 
-			}
+			
+			options.setLoadStrategy(createBinaryLoadStrategy(helper));
 
 			Archive anArchive = CommonarchiveFactory.eINSTANCE.primOpenArchive(options, archiveURI);
 
@@ -348,12 +339,28 @@
 				throw new OpenFailureException(discriminator.getUnableToOpenMessage());
 			}
 			IReferenceCountedArchive specificArchive = (IReferenceCountedArchive) discriminator.openArchive(anArchive);
+			specificArchive.setEnterpriseBinaryComponentHelper(helper);
 			specificArchive.initializeAfterOpen();
 			specificArchive.access();
 			componentsToArchives.put(helper.getComponent(), specificArchive);
 			return specificArchive;
 		}
 	}
+	
+	protected static BinaryZipFileLoadStrategy createBinaryLoadStrategy(EnterpriseBinaryComponentHelper helper) throws OpenFailureException {
+		String archiveURI = helper.getArchiveURI();
+		String filename = archiveURI.replace('/', java.io.File.separatorChar);
+		java.io.File file = new java.io.File(filename);
+		if (!file.exists()) {
+			throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.file_not_found_EXC_, (new Object[] { archiveURI, file.getAbsolutePath() }))); 
+		}
+		try {
+			BinaryZipFileLoadStrategy strategy = new BinaryZipFileLoadStrategy(file);
+			return strategy;
+		} catch (IOException ex) {
+			throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.could_not_open_EXC_, (new Object[] { archiveURI })), ex); 
+		}
+	}
 
 	protected interface IReferenceCountedArchive extends Archive {
 
@@ -366,6 +373,10 @@
 
 		public void forceClose();
 		
+		public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper);
+		
+		public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper();
+		
 	}
 
 }
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/JCABinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/JCABinaryComponentHelper.java
index 8cffb3e..d11299a 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/JCABinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/JCABinaryComponentHelper.java
@@ -10,11 +10,15 @@
  *******************************************************************************/
 package org.eclipse.jst.j2ee.internal.componentcore;
 
+import java.io.IOException;
+
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.RARFile;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.RARFileImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.RarImportStrategyImpl;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 
@@ -73,6 +77,24 @@
 			count = 0;
 			super.close();
 		}
+		
+		private EnterpriseBinaryComponentHelper helper = null;
+		
+		public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper() {
+			return helper;
+		}
+
+		public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper) {
+			this.helper = helper;
+		}
+		
+		protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
+			try {
+				return createBinaryLoadStrategy(getEnterpriseBinaryComponentHelper());
+			} catch (OpenFailureException e) {
+				throw new IOException(e.getMessage());
+			}
+		}		
 	}
 
 	protected ArchiveTypeDiscriminator getDiscriminator() {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/UtilityBinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/UtilityBinaryComponentHelper.java
index 6d1cf30..968c976 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/UtilityBinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/UtilityBinaryComponentHelper.java
@@ -1,5 +1,7 @@
 package org.eclipse.jst.j2ee.internal.componentcore;
 
+import java.io.IOException;
+
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
@@ -7,6 +9,7 @@
 import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminatorImpl;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ImportStrategy;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 
 public class UtilityBinaryComponentHelper extends EnterpriseBinaryComponentHelper {
@@ -68,6 +71,24 @@
 			count = 0;
 			super.close();
 		}
+		
+		private EnterpriseBinaryComponentHelper helper = null;
+		
+		public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper() {
+			return helper;
+		}
+
+		public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper) {
+			this.helper = helper;
+		}
+		
+		protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
+			try {
+				return createBinaryLoadStrategy(getEnterpriseBinaryComponentHelper());
+			} catch (OpenFailureException e) {
+				throw new IOException(e.getMessage());
+			}
+		}
 	}
 
 	protected ArchiveTypeDiscriminator getDiscriminator() {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/WebBinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/WebBinaryComponentHelper.java
index 438121c..29eb071 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/WebBinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/WebBinaryComponentHelper.java
@@ -10,11 +10,15 @@
  *******************************************************************************/
 package org.eclipse.jst.j2ee.internal.componentcore;
 
+import java.io.IOException;
+
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.WARFile;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.War22ImportStrategyImpl;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 
@@ -73,6 +77,24 @@
 			count = 0;
 			super.close();
 		}
+		
+		private EnterpriseBinaryComponentHelper helper = null;
+		
+		public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper() {
+			return helper;
+		}
+
+		public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper) {
+			this.helper = helper;
+		}
+		
+		protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
+			try {
+				return createBinaryLoadStrategy(getEnterpriseBinaryComponentHelper());
+			} catch (OpenFailureException e) {
+				throw new IOException(e.getMessage());
+			}
+		}
 	}
 
 	protected ArchiveTypeDiscriminator getDiscriminator() {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java
index bdf87db..8e47c76 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java
@@ -80,6 +80,7 @@
 import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
 import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.internal.SimpleValidateEdit;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
 import org.eclipse.wst.common.project.facet.core.IProjectFacet;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
@@ -279,10 +280,12 @@
 
 	private static void writeManifest(IProject aProject, IFile aFile, ArchiveManifest manifest) throws java.io.IOException {
 		if (aFile != null) {
-			OutputStream out = new WorkbenchByteArrayOutputStream(aFile);
-			manifest.writeSplittingClasspath(out);
-			out.close();
-			J2EEComponentClasspathUpdater.getInstance().queueUpdateModule(aProject);
+			if(SimpleValidateEdit.validateEdit(new IFile[] { aFile })){
+				OutputStream out = new WorkbenchByteArrayOutputStream(aFile);
+				manifest.writeSplittingClasspath(out);
+				out.close();
+				J2EEComponentClasspathUpdater.getInstance().queueUpdateModule(aProject);
+			}
 		}
 	}
 
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEFacetProjectCreationDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEFacetProjectCreationDataModelProvider.java
index aa604c3..9e1a5f9 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEFacetProjectCreationDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEFacetProjectCreationDataModelProvider.java
@@ -5,7 +5,9 @@
 import java.util.Set;
 
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
 import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
@@ -162,7 +164,19 @@
 			String errorMessage = WTPCommonPlugin.getResourceString(WTPCommonMessages.ERR_EMPTY_MODULE_NAME);
 			return WTPCommonPlugin.createErrorStatus(errorMessage);
 		}
-		return (ProjectCreationDataModelProviderNew.validateProjectName(earName));
+		
+		IStatus status = ProjectCreationDataModelProviderNew.validateProjectName(earName);
+		//check for the deleted case, the project is deleted from the workspace but still exists in the
+		//file system.
+		if( status.isOK()){
+			IProject earProject = ProjectUtilities.getProject(getStringProperty(EAR_PROJECT_NAME));
+			if( !earProject.exists() ){
+				IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation();
+				path = path.append(earName);
+				status = ProjectCreationDataModelProviderNew.validateExisting(earName, path.toOSString());
+			}
+		}
+		return status;
 	}
 
 }
diff --git a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deploy/J2EEDeployOperation.java b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deploy/J2EEDeployOperation.java
index 82d90ba..c6cd40b 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deploy/J2EEDeployOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deploy/J2EEDeployOperation.java
@@ -165,11 +165,11 @@
 		Throwable mainCause = null;
 		if (exceptionStatus instanceof MultiStatus) {
 			IStatus[] stati = ((MultiStatus) exceptionStatus).getChildren();
-			for (int i = 0; 1 < stati.length; i++) {
+			for (int i = 0; i < stati.length; i++) {
 				addErrorStatus(stati[i], DeployerName, stati[i].getException());
 			}
 		}
-		mainCause = (ex.getCause() != null) ? ex.getCause() : ex;
+		mainCause = (ex != null && ex.getCause() != null) ? ex.getCause() : ex;
 			
 		//String errorNotes = (mainCause != null && mainCause.getMessage() != null) ? mainCause.getMessage() : "";
 
diff --git a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/plugin/J2EEPlugin.java b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/plugin/J2EEPlugin.java
index 38920bd..bfe3e1d 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/plugin/J2EEPlugin.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/plugin/J2EEPlugin.java
@@ -38,6 +38,8 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
@@ -48,6 +50,7 @@
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jem.util.UIContextDetermination;
+import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.jem.workbench.utility.JemProjectUtilities;
 import org.eclipse.jst.j2ee.application.ApplicationFactory;
 import org.eclipse.jst.j2ee.application.ApplicationPackage;
@@ -506,7 +509,17 @@
 	
 	public void stop(BundleContext context) throws Exception {
 		super.stop(context);
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(J2EEComponentClasspathUpdater.getInstance());
+		
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(J2EEComponentClasspathUpdater.getInstance());		
+		try {
+			org.eclipse.core.runtime.Platform.getJobManager().join( J2EEElementChangedListener.PROJECT_COMPONENT_UPDATE_JOB_FAMILY,
+					new NullProgressMonitor() );
+		} catch (OperationCanceledException e) {
+			Logger.getLogger().logError(e.getMessage());
+		} catch (InterruptedException e) {
+			Logger.getLogger().logError(e.getMessage());
+		}
+	
 	}
 
 	/*
diff --git a/plugins/org.eclipse.jst.j2ee/plugin.xml b/plugins/org.eclipse.jst.j2ee/plugin.xml
index 36a9fe5..9310b5f 100644
--- a/plugins/org.eclipse.jst.j2ee/plugin.xml
+++ b/plugins/org.eclipse.jst.j2ee/plugin.xml
@@ -306,11 +306,9 @@
          name="%ear_validator_UI_"
          point="org.eclipse.wst.validation.validator">
       <validator>
-        <enablement>
-      		<and>
-        		<test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="jst.ear:1.4]"/>
-			</and>
-		</enablement> 
+         <facet
+               facetId="jst.ear">
+         </facet>
          <filter
                objectClass="org.eclipse.core.resources.IFile"
                nameFilter="*.xml">
@@ -531,7 +529,6 @@
       <label>%EAR_FACET_LABEL</label>
       <description>%EAR_FACET_DESCRIPTION</description>
       <icon>icons/EAR.gif</icon>
-      <default-version version="1.4"/>
     </project-facet>
 
     <project-facet-version facet="jst.ear" version="1.2">
diff --git a/plugins/org.eclipse.jst.jee/.classpath b/plugins/org.eclipse.jst.jee/.classpath
deleted file mode 100644
index e498d7c..0000000
--- a/plugins/org.eclipse.jst.jee/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="earproject"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.jst.jee/.project b/plugins/org.eclipse.jst.jee/.project
deleted file mode 100644
index 92ef5e3..0000000
--- a/plugins/org.eclipse.jst.jee/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.jee</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jst.jee/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.jee/META-INF/MANIFEST.MF
deleted file mode 100644
index e625764..0000000
--- a/plugins/org.eclipse.jst.jee/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: JEE common Plug-in
-Bundle-SymbolicName: org.eclipse.jst.jee;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.jst.jee.Activator
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.wst.common.project.facet.core,
- org.eclipse.core.resources,
- org.eclipse.jem.util,
- org.eclipse.jst.j2ee,
- org.eclipse.wst.common.frameworks,
- org.eclipse.jst.common.frameworks
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.jst.jee,
- org.eclipse.jst.jee.project.facet
diff --git a/plugins/org.eclipse.jst.jee/build.properties b/plugins/org.eclipse.jst.jee/build.properties
deleted file mode 100644
index fe0bebb..0000000
--- a/plugins/org.eclipse.jst.jee/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.. = earproject/
-output.. = bin/
-bin.includes = plugin.xml,\
-               .,\
-               META-INF/
-src.includes = plugin.xml
diff --git a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/Activator.java b/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/Activator.java
deleted file mode 100644
index f89746f..0000000
--- a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/Activator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.eclipse.jst.jee;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.jst.jee";
-
-	// The shared instance
-	private static Activator plugin;
-	
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-}
diff --git a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/JEEConstants.java b/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/JEEConstants.java
deleted file mode 100644
index 316ad5f..0000000
--- a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/JEEConstants.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.jee;
-/**
- * This is a catalog of useful constants for the archive support.  Can be used to
- * store relative paths to specific xml and xmi resources.  
- */
-public interface JEEConstants extends JEEVersionConstants {
-	
-	String APPLICATION_SCHEMA_5_0       =   "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd";//$NON-NLS-1$
-	
-
-	String APPLICATION_SCHEMA_LOC_5_0 	= "http://java.sun.com/xml/ns/javaee/application_5.xsd"; //$NON-NLS-1$
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/JEEVersionConstants.java b/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/JEEVersionConstants.java
deleted file mode 100644
index d99b126..0000000
--- a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/JEEVersionConstants.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.jst.jee;
-
-/**
- * These constants are used with the XMLResource
- */
-public interface JEEVersionConstants {
-	public int JEE_5_0_ID = 50;
-	public int EJB_3_0_ID = 30;
-
-	public int VERSION_3_0 = 30; 
-	public int VERSION_5_0 = 50; 
-	
-	public String VERSION_3_0_TEXT		= "3.0"; //$NON-NLS-1$
-	public String VERSION_5_0_TEXT		= "5.0"; //$NON-NLS-1$
-
-	public int J2EE_5_0_ID = 50;
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/JEEVersionUtil.java b/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/JEEVersionUtil.java
deleted file mode 100644
index a437435..0000000
--- a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/JEEVersionUtil.java
+++ /dev/null
@@ -1,276 +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
- *******************************************************************************/
-/*
- * Created on Mar 21, 2005
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
-package org.eclipse.jst.jee;
-
-import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil;
-
-/**
- * @author nagrawal
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
- * 
- * TODO cleaning, as we copied from J2EEVersionUtil and added the ejb 30, jee 50 constants, 
- */
-public class JEEVersionUtil {
-/*
-	public static String getServletTextVersion(int aVersion) {
-		switch (aVersion) {
-		case J2EEVersionConstants.SERVLET_2_2:
-			return J2EEVersionConstants.VERSION_2_2_TEXT;
-
-		case J2EEVersionConstants.SERVLET_2_3:
-			return J2EEVersionConstants.VERSION_2_3_TEXT;
-
-		case J2EEVersionConstants.SERVLET_2_4:
-			return J2EEVersionConstants.VERSION_2_4_TEXT;
-		}
-		return ""; //$NON-NLS-1$
-
-	}
-*/
-	public static String getEJBTextVersion(int aVersion) {
-
-		switch (aVersion) {
-		case JEEVersionConstants.EJB_3_0_ID:
-			return JEEVersionConstants.VERSION_3_0_TEXT;
-
-		default : 
-			return J2EEVersionUtil.getEJBTextVersion(aVersion);
-		}
-	}
-/*
-	public static String getJCATextVersion(int aVersion) {
-		switch (aVersion) {
-		case J2EEVersionConstants.JCA_1_0_ID:
-			return J2EEVersionConstants.VERSION_1_0_TEXT;
-
-		case J2EEVersionConstants.JCA_1_5_ID:
-			return J2EEVersionConstants.VERSION_1_5_TEXT;
-
-		}
-		return ""; //$NON-NLS-1$
-	}
-*/
-	public static String getJ2EETextVersion(int aVersion) {
-		switch (aVersion) {
-		case JEEVersionConstants.J2EE_5_0_ID:
-			return JEEVersionConstants.VERSION_5_0_TEXT;
-
-		default : 
-			return J2EEVersionUtil.getJ2EETextVersion(aVersion);
-
-		}
-	}
-/*
-	public static int convertAppClientVersionStringToJ2EEVersionID(String version) {
-		if (version.equals(J2EEVersionConstants.VERSION_1_2_TEXT))
-			return J2EEVersionConstants.J2EE_1_2_ID;
-		if (version.equals(J2EEVersionConstants.VERSION_1_3_TEXT))
-			return J2EEVersionConstants.J2EE_1_3_ID;
-		if (version.equals(J2EEVersionConstants.VERSION_1_4_TEXT))
-			return J2EEVersionConstants.J2EE_1_4_ID;
-		// default
-		return J2EEVersionConstants.J2EE_1_4_ID;
-	}
-*/
-	public static int convertEJBVersionStringToJ2EEVersionID(String version) {
-		if (version.equals(JEEVersionConstants.VERSION_3_0_TEXT))
-			return JEEVersionConstants.J2EE_5_0_ID;
-		else
-			return J2EEVersionUtil.convertEJBVersionStringToJ2EEVersionID(version);
-	}
-/*
-	public static int convertWebVersionStringToJ2EEVersionID(String version) {
-		if (version.equals(J2EEVersionConstants.VERSION_2_2_TEXT))
-			return J2EEVersionConstants.J2EE_1_2_ID;
-		if (version.equals(J2EEVersionConstants.VERSION_2_3_TEXT))
-			return J2EEVersionConstants.J2EE_1_3_ID;
-		if (version.equals(J2EEVersionConstants.VERSION_2_4_TEXT))
-			return J2EEVersionConstants.J2EE_1_4_ID;
-		// default
-		return J2EEVersionConstants.J2EE_1_4_ID;
-	}
-
-	public static int convertConnectorVersionStringToJ2EEVersionID(String version) {
-		if (version.equals(J2EEVersionConstants.VERSION_1_0_TEXT))
-			return J2EEVersionConstants.J2EE_1_3_ID;
-		if (version.equals(J2EEVersionConstants.VERSION_1_5_TEXT))
-			return J2EEVersionConstants.J2EE_1_4_ID;
-		// default
-		return J2EEVersionConstants.J2EE_1_4_ID;
-	}
-*/
-	public static int convertJ2EEVersionIDToEJBVersionID(int j2eeVersionId) {
-		switch (j2eeVersionId) {
-			case JEEVersionConstants.J2EE_5_0_ID:
-				return JEEVersionConstants.EJB_3_0_ID;
-			default : 
-				return J2EEVersionUtil.convertJ2EEVersionIDToEJBVersionID(j2eeVersionId);
-		}
-	}
-/*
-	public static int convertJ2EEVersionIDToWebVersionID(int j2eeVersionId) {
-		switch (j2eeVersionId) {
-			case J2EEVersionConstants.J2EE_1_2_ID:
-				return J2EEVersionConstants.WEB_2_2_ID;
-			case J2EEVersionConstants.J2EE_1_3_ID:
-				return J2EEVersionConstants.WEB_2_3_ID;
-			case J2EEVersionConstants.J2EE_1_4_ID:
-				return J2EEVersionConstants.WEB_2_4_ID;
-		}
-		// default
-		return J2EEVersionConstants.WEB_2_4_ID;
-	}
-
-	public static int convertJ2EEVersionIDToConnectorVersionID(int j2eeVersionId) {
-		switch (j2eeVersionId) {
-			case J2EEVersionConstants.J2EE_1_3_ID:
-				return J2EEVersionConstants.JCA_1_0_ID;
-			case J2EEVersionConstants.J2EE_1_4_ID:
-				return J2EEVersionConstants.JCA_1_5_ID;
-		}
-		// default
-		return J2EEVersionConstants.JCA_1_5_ID;
-	}
-	
-	public static int convertVersionStringToInt(IVirtualComponent comp) {
-		String version = J2EEProjectUtilities.getJ2EEProjectVersion(comp.getProject());
-		if (J2EEProjectUtilities.isDynamicWebProject(comp.getProject()))
-			return convertWebVersionStringToJ2EEVersionID(version);
-		if (J2EEProjectUtilities.isEJBProject(comp.getProject()))
-			return convertEJBVersionStringToJ2EEVersionID(version);
-		if (J2EEProjectUtilities.isEARProject(comp.getProject()))
-			return convertVersionStringToInt(version);
-		if (J2EEProjectUtilities.isJCAProject(comp.getProject()))
-			return convertConnectorVersionStringToJ2EEVersionID(version);
-		if (J2EEProjectUtilities.isApplicationClientProject(comp.getProject()))
-			return convertAppClientVersionStringToJ2EEVersionID(version);
-		return 0;
-	}
-*/	
-	public static int convertVersionStringToInt(String version) {
-		int nVersion = 0;
-		
-		if( version.endsWith("")){ //$NON-NLS-1$
-			nVersion = 0;
-		}
-		
-
-		if (version.equals(JEEVersionConstants.VERSION_5_0_TEXT))
-			nVersion = JEEVersionConstants.VERSION_5_0;		
-
-		else if (version.equals(JEEVersionConstants.VERSION_3_0_TEXT))
-			nVersion = JEEVersionConstants.VERSION_3_0;		
-
-		else
-			nVersion = J2EEVersionUtil.convertVersionStringToInt(version);
-/*
-		if (version.equals(J2EEVersionConstants.VERSION_1_0_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_1_0;
-		
-		if (version.equals(J2EEVersionConstants.VERSION_1_1_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_1_1;
-		
-		if (version.equals(J2EEVersionConstants.VERSION_1_2_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_1_2;
-		
-		if (version.equals(J2EEVersionConstants.VERSION_1_3_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_1_3;	
-		
-		if (version.equals(J2EEVersionConstants.VERSION_1_4_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_1_4;
-		
-		if (version.equals(J2EEVersionConstants.VERSION_1_5_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_1_5;
-		
-		if (version.equals(J2EEVersionConstants.VERSION_2_0_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_2_0;
-		
-		if (version.equals(J2EEVersionConstants.VERSION_2_1_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_2_1;	
-		
-		if (version.equals(J2EEVersionConstants.VERSION_2_2_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_2_2;
-		
-		if (version.equals(J2EEVersionConstants.VERSION_2_3_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_2_3;
-		
-		if (version.equals(J2EEVersionConstants.VERSION_2_4_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_2_4;
-		
-		if (version.equals(J2EEVersionConstants.VERSION_2_5_TEXT))
-			nVersion = J2EEVersionConstants.VERSION_2_5;		
-*/	
-		return nVersion;
-		
-	}
-	public static String convertVersionIntToString(int version) {
-		String nVersion = null;
-
-
-		if (version == JEEVersionConstants.VERSION_5_0)
-			nVersion = JEEVersionConstants.VERSION_5_0_TEXT;		
-		else if (version == JEEVersionConstants.VERSION_3_0)
-			nVersion = JEEVersionConstants.VERSION_3_0_TEXT;	
-		else 
-			nVersion = J2EEVersionUtil.convertVersionIntToString(version);
-/*
-		if (version == J2EEVersionConstants.VERSION_1_0)
-			nVersion = J2EEVersionConstants.VERSION_1_0_TEXT;
-
-		if (version == J2EEVersionConstants.VERSION_1_0)
-			nVersion = J2EEVersionConstants.VERSION_1_0_TEXT;
-		
-		if (version == J2EEVersionConstants.VERSION_1_1)
-			nVersion = J2EEVersionConstants.VERSION_1_1_TEXT;
-		
-		if (version == J2EEVersionConstants.VERSION_1_2)
-			nVersion = J2EEVersionConstants.VERSION_1_2_TEXT;
-		
-		if (version == J2EEVersionConstants.VERSION_1_3)
-			nVersion = J2EEVersionConstants.VERSION_1_3_TEXT;	
-		
-		if (version == J2EEVersionConstants.VERSION_1_4)
-			nVersion = J2EEVersionConstants.VERSION_1_4_TEXT;
-		
-		if (version == J2EEVersionConstants.VERSION_1_5)
-			nVersion = J2EEVersionConstants.VERSION_1_5_TEXT;
-		
-		if (version == J2EEVersionConstants.VERSION_2_0)
-			nVersion = J2EEVersionConstants.VERSION_2_0_TEXT;
-		
-		if (version == J2EEVersionConstants.VERSION_2_1)
-			nVersion = J2EEVersionConstants.VERSION_2_1_TEXT;	
-		
-		if (version == J2EEVersionConstants.VERSION_2_2)
-			nVersion = J2EEVersionConstants.VERSION_2_2_TEXT;
-		
-		if (version == J2EEVersionConstants.VERSION_2_3)
-			nVersion = J2EEVersionConstants.VERSION_2_3_TEXT;
-		
-		if (version == J2EEVersionConstants.VERSION_2_4)
-			nVersion = J2EEVersionConstants.VERSION_2_4_TEXT;
-		
-		if (version == J2EEVersionConstants.VERSION_2_5)
-			nVersion = J2EEVersionConstants.VERSION_2_5_TEXT;		
-
-*/		return nVersion;
-		
-	}
-	
-}
diff --git a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/project/facet/Ear5FacetInstallDelegate.java b/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/project/facet/Ear5FacetInstallDelegate.java
deleted file mode 100644
index 7935215..0000000
--- a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/project/facet/Ear5FacetInstallDelegate.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.jee.project.facet;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jst.common.project.facet.WtpUtils;
-import org.eclipse.jst.j2ee.internal.earcreation.IEarFacetInstallDataModelProperties;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.datamodel.FacetDataModelProvider;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-public final class Ear5FacetInstallDelegate implements IDelegate {
-
-	public void execute(final IProject project, final IProjectFacetVersion fv, final Object cfg, final IProgressMonitor monitor) throws CoreException {
-		if (monitor != null) {
-			monitor.beginTask("", 1); //$NON-NLS-1$
-		}
-
-		try {
-			IDataModel model = (IDataModel) cfg;
-
-			if (monitor != null) {
-				monitor.worked(1);
-			}
-			// Add WTP natures.
-
-			WtpUtils.addNaturestoEAR(project);
-
-			final IVirtualComponent c = ComponentCore.createComponent(project);
-			c.create(0, null);
-
-			final IVirtualFolder earroot = c.getRootFolder();
-			earroot.createLink(new Path("/" + model.getStringProperty(IEarFacetInstallDataModelProperties.CONTENT_DIR)), 0, null); //$NON-NLS-1$
-
-// TODO commented on 12/13/2006 do not want to create ear xml file right now			
-//			if (!project.getFile(JEEConstants.APPLICATION_DD_URI).exists()) {
-//				String ver = fv.getVersionString();
-//				int nVer = JEEVersionUtil.convertVersionStringToInt(ver);
-//				EARArtifactEdit.createDeploymentDescriptor(project, nVer);
-//			}
-
-			try {
-				((IDataModelOperation) model.getProperty(FacetDataModelProvider.NOTIFICATION_OPERATION)).execute(monitor, null);
-			} catch (ExecutionException e) {
-				Logger.getLogger().logError(e);
-			}
-		}
-
-		finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/project/facet/Ear5FacetPostInstallDelegate.java b/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/project/facet/Ear5FacetPostInstallDelegate.java
deleted file mode 100644
index 7ff9e30..0000000
--- a/plugins/org.eclipse.jst.jee/earproject/org/eclipse/jst/jee/project/facet/Ear5FacetPostInstallDelegate.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.jee.project.facet;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jst.j2ee.application.internal.operations.AddComponentToEnterpriseApplicationDataModelProvider;
-import org.eclipse.jst.j2ee.internal.earcreation.IEarFacetInstallDataModelProperties;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-public final class Ear5FacetPostInstallDelegate implements IDelegate {
-
-	public void execute(final IProject project, final IProjectFacetVersion fv, final Object cfg, final IProgressMonitor monitor) throws CoreException {
-		if (monitor != null) {
-			monitor.beginTask("", 1); //$NON-NLS-1$
-		}
-
-		try {
-			IDataModel model = (IDataModel) cfg;
-
-			if (monitor != null) {
-				monitor.worked(1);
-			}
-
-			final IVirtualComponent c = ComponentCore.createComponent(project);
-
-			Set dependentProjects = new HashSet();
-			dependentProjects.addAll((List) model.getProperty(IEarFacetInstallDataModelProperties.J2EE_PROJECTS_LIST));
-			dependentProjects.addAll((List) model.getProperty(IEarFacetInstallDataModelProperties.JAVA_PROJECT_LIST));
-			if (!dependentProjects.isEmpty()) {
-				List dependentComponents = new ArrayList(dependentProjects.size());
-				for (Iterator iterator = dependentProjects.iterator(); iterator.hasNext();) {
-					IProject depProject = (IProject) iterator.next();
-					IVirtualComponent depComp = ComponentCore.createComponent(depProject);
-					if (depComp == null) {
-// TODO commenting this code due to compilation error						
-//						JavaProjectMigrationOperation utilOp = J2EEProjectUtilities.createFlexJavaProjectForProjectOperation(depProject);
-//						utilOp.execute(null, null);
-//						depComp = ComponentCore.createComponent(depProject);
-					}
-
-					dependentComponents.add(depComp);
-				}
-
-				final IDataModel dataModel = DataModelFactory.createDataModel(new AddComponentToEnterpriseApplicationDataModelProvider());
-				dataModel.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, c);
-				List modList = (List) dataModel.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
-				modList.addAll(dependentComponents);
-				dataModel.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, modList);
-				try {
-					dataModel.getDefaultOperation().execute(null, null);
-				} catch (ExecutionException e) {
-					Logger.getLogger().logError(e);
-				}
-			}
-
-		}
-
-		finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.jst.jee/license/berkeley_license.html b/plugins/org.eclipse.jst.jee/license/berkeley_license.html
deleted file mode 100644
index 5f2e66f..0000000
--- a/plugins/org.eclipse.jst.jee/license/berkeley_license.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>                        
-<title>License</title>
-</head>
-
-<body>
-<p>
-<b>Copyright 1994-2006 Sun Microsystems, Inc. All  Rights Reserved.</b>
-</p>      
-<p>Redistribution and use in source and binary forms, with or without modification, 
-are permitted provided that the following conditions are met:
-</p>
-<ul>
-<li>Redistribution of source code must retain the above copyright notice, this  
-list of conditions and the following disclaimer.<br><br></li>
-<li>Redistribution in binary form must reproduce the above copyright notice, 
-this list of conditions and the following disclaimer in the documentation and/or 
-other materials provided with the distribution.</li>
-</ul>
-<p>Neither the name of Sun Microsystems, Inc. or the names of contributors may 
-be used to endorse or promote products derived from this software without 
-specific prior written permission.
-</p>
-<p>This software is provided &quot;AS IS,&quot; without a warranty of any kind. 
-ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING 
-ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR 
-NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. (&quot;SUN&quot;) 
-AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE 
-AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS 
-DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY 
-LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, 
-CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND 
-REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR 
-INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE 
-POSSIBILITY OF SUCH DAMAGES.
-</p>
-<p>You acknowledge that this software is not designed, licensed or intended 
-for use in the design, construction, operation or maintenance of any nuclear facility.
-</p>
-</body>
-</html>
-
-
-
diff --git a/plugins/org.eclipse.jst.jee/plugin.xml b/plugins/org.eclipse.jst.jee/plugin.xml
deleted file mode 100644
index afca163..0000000
--- a/plugins/org.eclipse.jst.jee/plugin.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-	<!--J EE5  -->
-   <extension
-         point="org.eclipse.wst.common.project.facet.core.facets">
-         
-    <project-facet-version facet="jst.ear" version="5.0">
-      <constraint>
-        <and>
-          <conflicts group="modules"/>
-          <conflicts facet="jst.java"/>
-        </and>
-      </constraint>
-      <group-member id="modules"/>     
-      <action type="INSTALL">
-      		<delegate class="org.eclipse.jst.jee.project.facet.Ear5FacetInstallDelegate"/>
-      		<config-factory class="org.eclipse.jst.j2ee.internal.earcreation.EarFacetInstallDataModelProvider"/>
-	  </action>
-      
-   	  <event-handler type="POST_INSTALL">
-      		<delegate class="org.eclipse.jst.jee.project.facet.Ear5FacetPostInstallDelegate"/>
-      </event-handler>  
-       
-    </project-facet-version>
-         
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.jst.servlet.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.servlet.ui/META-INF/MANIFEST.MF
index de65d44..3b46bd8 100644
--- a/plugins/org.eclipse.jst.servlet.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.servlet.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.servlet.ui; singleton:=true
-Bundle-Version: 1.1.1.qualifier
+Bundle-Version: 1.1.2.qualifier
 Bundle-Activator: org.eclipse.jst.servlet.ui.internal.plugin.ServletUIPlugin
 Bundle-Vendor: %pluginVendor
 Bundle-Localization: plugin
@@ -28,7 +28,7 @@
  org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jem.util;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.jem;bundle-version="[1.2.0,1.3.0)",
- org.eclipse.emf.ecore;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.jst.common.frameworks;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.debug.ui;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.server.core;bundle-version="[1.0.102,1.1.0)",
@@ -39,5 +39,5 @@
  org.eclipse.ui.navigator.resources;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.ui.navigator;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.emf.edit;bundle-version="[2.2.0,2.4.0)"
+ org.eclipse.emf.edit;bundle-version="[2.2.0,2.3.0)"
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/actions/ConvertToWebModuleTypeAction.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/actions/ConvertToWebModuleTypeAction.java
index 360f023..2f54e6e 100644
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/actions/ConvertToWebModuleTypeAction.java
+++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/actions/ConvertToWebModuleTypeAction.java
@@ -28,7 +28,6 @@
 import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
 import org.eclipse.jst.j2ee.web.project.facet.IWebFacetInstallDataModelProperties;
 import org.eclipse.jst.j2ee.web.project.facet.WebFacetInstallDataModelProvider;
-import org.eclipse.jst.j2ee.web.project.facet.WebFacetUtils;
 import org.eclipse.jst.servlet.ui.internal.wizard.ConvertToWebModuleTypeDialog;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
@@ -123,10 +122,8 @@
 		fixedFacets.addAll(facetedProject.getFixedProjectFacets());
 		IProjectFacet webFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.WST_WEB_MODULE);
 		fixedFacets.remove(webFacet);
-		fixedFacets.add(WebFacetUtils.WEB_FACET);
-		fixedFacets.add(JavaFacetUtils.JAVA_FACET);
 		facetedProject.setFixedProjectFacets(fixedFacets);
-		IProjectFacetVersion webFv = WebFacetUtils.WEB_FACET.getVersion(selectedVersion);
+		IProjectFacetVersion webFv = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE).getVersion(selectedVersion);
 		IProjectFacetVersion javaFv = JavaFacetUtils.compilerLevelToFacet(JavaFacetUtils.getCompilerLevel(project));
 		IFacetedProject.Action uninstall = new IFacetedProject.Action(IFacetedProject.Action.Type.UNINSTALL, facetedProject.getInstalledVersion(webFacet), null);
 		IDataModel webModelCfg = DataModelFactory.createDataModel(new WebFacetInstallDataModelProvider());
@@ -146,6 +143,7 @@
 		set.add(uninstall);
 		set.add(install);
 		set.add(javaInstall);
+		
 		facetedProject.modify(set, new NullProgressMonitor());
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/AddServletWizardPage.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/AddServletWizardPage.java
index c8e327c..e657f2a 100644
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/AddServletWizardPage.java
+++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/AddServletWizardPage.java
@@ -1,13 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 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
- *     David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
+ * IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.servlet.ui.internal.wizard;
 
@@ -15,7 +14,6 @@
 import java.util.List;
 
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jst.j2ee.internal.web.operations.INewServletClassDataModelProperties;
 import org.eclipse.jst.j2ee.internal.wizard.StringArrayTableWizardSection;
 import org.eclipse.swt.SWT;
@@ -83,7 +81,6 @@
 			setErrorMessage(projectStatus.getMessage());
 			composite.setEnabled(false);
 		}
-	    Dialog.applyDialogFont(parent);
 		return composite;
 	}
 
@@ -136,4 +133,4 @@
 			return false;
 		return super.canFlipToNextPage();
 	}
-}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewServletClassOptionsWizardPage.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewServletClassOptionsWizardPage.java
index 83158dd..c019b4a 100644
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewServletClassOptionsWizardPage.java
+++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewServletClassOptionsWizardPage.java
@@ -1,17 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 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
- *     David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
+ * IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.servlet.ui.internal.wizard;
 
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties;
 import org.eclipse.jst.j2ee.internal.web.operations.INewServletClassDataModelProperties;
 import org.eclipse.jst.j2ee.internal.wizard.NewJavaClassOptionsWizardPage;
@@ -121,7 +119,5 @@
 		doGetButton = new Button(comp, SWT.CHECK);
 		doGetButton.setText("doGet"); //$NON-NLS-1$
 		synchHelper.synchCheckbox(doGetButton, INewServletClassDataModelProperties.DO_GET, null);
-		
-	    Dialog.applyDialogFont(parent);
 	}
-}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/WebAppLibrariesContainerPage.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/WebAppLibrariesContainerPage.java
index 90b3184..bb7e492 100644
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/WebAppLibrariesContainerPage.java
+++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/WebAppLibrariesContainerPage.java
@@ -67,8 +67,7 @@
         final int index = this.projectsCombo.getSelectionIndex();
         final String selectedProjectName = this.projectsCombo.getItem( index );
         
-        if( this.ownerProject == null || 
-            ! selectedProjectName.equals( this.ownerProject.getName() ) )
+        if( ! selectedProjectName.equals( this.ownerProject.getName() ) )
         {
             path = path.append( selectedProjectName );
         }
@@ -82,10 +81,7 @@
         
         if( path == null || path.segmentCount() == 1 )
         {
-            if( this.ownerProject != null )
-            {
-                this.libsProjectName = this.ownerProject.getName();
-            }
+            this.libsProjectName = this.ownerProject.getName();
         }
         else
         {
@@ -106,26 +102,9 @@
         this.projectsCombo = new Combo( composite, SWT.READ_ONLY );
         this.projectsCombo.setItems( webProjects );
         
-        final int index;
-        
         if( this.ownerProject != null )
         {
-            index = indexOf( webProjects, this.libsProjectName );
-        }
-        else
-        {
-            if( this.projectsCombo.getItemCount() > 0 )
-            {
-                index = 0;
-            }
-            else
-            {
-                index = -1;
-            }
-        }
-        
-        if( index != -1 )
-        {
+            final int index = indexOf( webProjects, this.libsProjectName );
             this.projectsCombo.select( index );
         }
         
@@ -146,7 +125,7 @@
     public void initialize( final IJavaProject project, 
                             final IClasspathEntry[] currentEntries ) 
     {
-        this.ownerProject = ( project == null ? null : project.getProject() );
+        this.ownerProject = project.getProject();
     }
     
     private static String[] getWebProjects()
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/project/facet/WebFacetInstallPage.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/project/facet/WebFacetInstallPage.java
index 79c2d03..1150a83 100644
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/project/facet/WebFacetInstallPage.java
+++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/project/facet/WebFacetInstallPage.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc. and others.
+ * Copyright (c) 2005 BEA Systems, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,12 +7,10 @@
  *
  * Contributors:
  *    Konstantin Komissarchik - initial API and implementation
- *    David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
  ******************************************************************************/
 
 package org.eclipse.jst.servlet.ui.project.facet;
 
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jst.j2ee.internal.wizard.J2EEModuleFacetInstallPage;
 import org.eclipse.jst.j2ee.web.project.facet.IWebFacetInstallDataModelProperties;
 import org.eclipse.jst.servlet.ui.IWebUIContextIds;
@@ -74,7 +72,7 @@
 		this.sourceDir.setLayoutData(gdhfill());
 		this.sourceDir.setData("label", this.sourceDirLabel); //$NON-NLS-1$
 		synchHelper.synchText(sourceDir, SOURCE_FOLDER, null);
-        Dialog.applyDialogFont(parent);
+
 		return composite;
 	}
 
diff --git a/plugins/org.eclipse.wst.web.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.web.ui/META-INF/MANIFEST.MF
index c85a0af..9a627eb 100644
--- a/plugins/org.eclipse.wst.web.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.web.ui/META-INF/MANIFEST.MF
@@ -20,5 +20,5 @@
  org.eclipse.wst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.server.ui;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.wst.common.environment;bundle-version="[1.0.100,1.1.0)",
- org.eclipse.emf.ecore;bundle-version="[2.2.0,2.4.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.2.0,2.3.0)"
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/DataModelFacetCreationWizardPage.java b/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/DataModelFacetCreationWizardPage.java
index 5d6ff20..eadb97d 100644
--- a/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/DataModelFacetCreationWizardPage.java
+++ b/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/DataModelFacetCreationWizardPage.java
@@ -35,9 +35,9 @@
 import org.eclipse.wst.common.frameworks.internal.operations.IProjectCreationPropertiesNew;
 import org.eclipse.wst.common.frameworks.internal.ui.NewProjectGroup;
 import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.ui.ModifyFacetedProjectWizard;
+import org.eclipse.wst.common.project.facet.ui.AddRemoveFacetsWizard;
 import org.eclipse.wst.common.project.facet.ui.PresetSelectionPanel;
-import org.eclipse.wst.common.project.facet.ui.internal.ModifyFacetedProjectDataModel;
+import org.eclipse.wst.common.project.facet.ui.internal.AddRemoveFacetsDataModel;
 import org.eclipse.wst.project.facet.ProductManager;
 import org.eclipse.wst.server.ui.ServerUIUtil;
 import org.eclipse.wst.web.internal.ResourceHandler;
@@ -70,15 +70,15 @@
 	}
 
 	protected void createPresetPanel(Composite top) {
-		final ModifyFacetedProjectDataModel model
-            = ( (ModifyFacetedProjectWizard) getWizard() ).getModel();
+		final AddRemoveFacetsDataModel model
+            = ( (AddRemoveFacetsWizard) getWizard() ).getModel();
 
         final PresetSelectionPanel ppanel 
             = new PresetSelectionPanel( top, SWT.NONE, model );
         
         ppanel.setLayoutData( gdhfill() );
         
-        ( (ModifyFacetedProjectWizard) getWizard() ).syncWithPresetsModel( ppanel.getPresetsCombo() );
+        ( (AddRemoveFacetsWizard) getWizard() ).syncWithPresetsModel( ppanel.getPresetsCombo() );
 	}
 	
 	public static boolean launchNewRuntimeWizard(Shell shell, IDataModel model) {
diff --git a/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/NewProjectDataModelFacetWizard.java b/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/NewProjectDataModelFacetWizard.java
index 9c3bf2e..09bae1a 100644
--- a/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/NewProjectDataModelFacetWizard.java
+++ b/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/NewProjectDataModelFacetWizard.java
@@ -53,14 +53,14 @@
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action.Type;
 import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.ui.ModifyFacetedProjectWizard;
+import org.eclipse.wst.common.project.facet.ui.AddRemoveFacetsWizard;
 import org.eclipse.wst.common.project.facet.ui.internal.AbstractDataModel;
 import org.eclipse.wst.common.project.facet.ui.internal.ChangeTargetedRuntimesDataModel;
 import org.eclipse.wst.web.internal.DelegateConfigurationElement;
 import org.eclipse.wst.web.ui.internal.Logger;
 import org.eclipse.wst.web.ui.internal.WSTWebUIPlugin;
 
-public abstract class NewProjectDataModelFacetWizard extends ModifyFacetedProjectWizard implements INewWizard, IFacetProjectCreationDataModelProperties {
+public abstract class NewProjectDataModelFacetWizard extends AddRemoveFacetsWizard implements INewWizard, IFacetProjectCreationDataModelProperties {
 
 	protected IDataModel model = null;
 	private final IFacetedProjectTemplate template;
diff --git a/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/SimpleWebFacetInstallPage.java b/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/SimpleWebFacetInstallPage.java
index 9ecca71..6d9f28c 100644
--- a/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/SimpleWebFacetInstallPage.java
+++ b/plugins/org.eclipse.wst.web.ui/static_web_ui/org/eclipse/wst/web/ui/internal/wizards/SimpleWebFacetInstallPage.java
@@ -1,6 +1,5 @@
 package org.eclipse.wst.web.ui.internal.wizards;
 
-import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -49,7 +48,6 @@
 		configFolder.setLayoutData(gdhfill());
 		configFolder.setData("label", configFolderLabel); //$NON-NLS-1$
 		synchHelper.synchText(configFolder, CONTENT_DIR, null);
-	    Dialog.applyDialogFont(parent);
 		
 		return composite;
 	}
diff --git a/plugins/org.eclipse.wst.web/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.web/META-INF/MANIFEST.MF
index 033d140..ab7ecd8 100644
--- a/plugins/org.eclipse.wst.web/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.web/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
 Bundle-SymbolicName: org.eclipse.wst.web; singleton:=true
-Bundle-Version: 1.1.101.qualifier
+Bundle-Version: 1.1.2.qualifier
 Bundle-Activator: org.eclipse.wst.web.internal.WSTWebPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: plugin
@@ -20,8 +20,8 @@
  org.eclipse.wst.server.core;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.jem.util;bundle-version="[1.2.0,1.3.0)",
  org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.wst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
- com.ibm.icu;bundle-version="[3.4.4,4.0.0)",
+ com.ibm.icu;bundle-version="[3.4.4,3.5.0)",
  org.eclipse.wst.common.environment;bundle-version="[1.0.100,1.1.0)"
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true