diff --git a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/classpath/FlexibleProjectContainer.java b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/classpath/FlexibleProjectContainer.java
index f5b258b..d6c651e 100644
--- a/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/classpath/FlexibleProjectContainer.java
+++ b/plugins/org.eclipse.jst.common.frameworks/src/org/eclipse/jst/common/jdt/internal/classpath/FlexibleProjectContainer.java
@@ -34,6 +34,7 @@
 import org.eclipse.jst.common.componentcore.util.ComponentUtilities;
 import org.eclipse.jst.common.frameworks.CommonFrameworksPlugin;
 import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
 import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
@@ -174,7 +175,7 @@
             }
         }
         
-        w.add( this.project.getFullPath().append( ".wtpmodules" ) ); //$NON-NLS-1$
+        w.add( this.project.getFullPath().append( IModuleConstants.COMPONENT_FILE_PATH ) ); //$NON-NLS-1$
             
         this.cpentries = new IClasspathEntry[ cp.size() ];
         cp.toArray( this.cpentries );
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/ComponentLoadStrategyImpl.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/ComponentLoadStrategyImpl.java
index a4fbe38..91b3cca 100644
--- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/ComponentLoadStrategyImpl.java
+++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/ComponentLoadStrategyImpl.java
@@ -313,7 +313,7 @@
 		Iterator iterator = resources.iterator();
 		while (iterator.hasNext()) {
 			Resource res = (Resource) iterator.next();
-			if (res.getURI().toString().endsWith(IModuleConstants.WTPMODULE_FILE_NAME))
+			if (res.getURI().toString().endsWith(IModuleConstants.COMPONENT_FILE_NAME))
 				resourcesToRemove.add(res);
 		}
 		resources.removeAll(resourcesToRemove);
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentCreationOperation.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentCreationOperation.java
index 04ca4c2..bc2e230 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentCreationOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentCreationOperation.java
@@ -26,6 +26,7 @@
 import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
 import org.eclipse.wst.common.componentcore.internal.operation.ComponentCreationOperation;
 import org.eclipse.wst.common.componentcore.internal.operation.CreateReferenceComponentsDataModelProvider;
+import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
 import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
@@ -101,7 +102,7 @@
 		IVirtualComponent component = ComponentCore.createComponent(getProject());
 		if (component.getRootFolder().getUnderlyingResource() instanceof IProject) {
 			IPath[] metaResources = new IPath[]{new Path("/.facets"), new Path("/.project"),
-					new Path("/.runtime"), new Path("/.wtpmodules")};
+					new Path("/.runtime"), IModuleConstants.COMPONENT_FILE_PATH};
 			component.setMetaResources(metaResources);
 		}
 		return OK_STATUS;
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/EARProjectMap.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/EARProjectMap.java
index 30a249a..ee0c457 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/EARProjectMap.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/EARProjectMap.java
@@ -22,7 +22,7 @@
  * <p>
  * 		Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public interface EARProjectMap extends EObject {
 	/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/EARProjectMapImpl.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/EARProjectMapImpl.java
index 02aea5d..553ec66 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/EARProjectMapImpl.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/EARProjectMapImpl.java
@@ -30,7 +30,7 @@
  * <p>
  * 		Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public class EARProjectMapImpl extends EObjectImpl implements EARProjectMap {
 	/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModuleMapping.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModuleMapping.java
index 1dce176..f5eec2d 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModuleMapping.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModuleMapping.java
@@ -22,7 +22,7 @@
  * <p>
  * Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  * </p>
  */
 public interface ModuleMapping extends EObject {
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModuleMappingImpl.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModuleMappingImpl.java
index 9f8c6b9..1177cd3 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModuleMappingImpl.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModuleMappingImpl.java
@@ -27,7 +27,7 @@
  * <p>
  * Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public class ModuleMappingImpl extends EObjectImpl implements ModuleMapping {
 	/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapAdapterFactory.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapAdapterFactory.java
index 4a1a18f..ca12d2e 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapAdapterFactory.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapAdapterFactory.java
@@ -24,7 +24,7 @@
  * <p>
  * 		Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public class ModulemapAdapterFactory extends AdapterFactoryImpl {
 	/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapFactory.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapFactory.java
index 92eaa8e..4d4fe83 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapFactory.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapFactory.java
@@ -20,7 +20,7 @@
  * <p>
  * 		Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public interface ModulemapFactory extends EFactory {
 	/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapFactoryImpl.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapFactoryImpl.java
index 1bb6127..52ce4a4 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapFactoryImpl.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapFactoryImpl.java
@@ -23,7 +23,7 @@
  * <p>
  * 		Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public class ModulemapFactoryImpl extends EFactoryImpl implements ModulemapFactory {
 
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapInit.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapInit.java
index 173421f..e3fd4a5 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapInit.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapInit.java
@@ -19,7 +19,7 @@
 * <p>
 * 		Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
 * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
-* all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+* all the info that was captured in .modulemaps file will is now captured in the .component file
 */
 
 public class ModulemapInit {
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapPackage.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapPackage.java
index 5d78b97..5e47aab 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapPackage.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapPackage.java
@@ -24,7 +24,7 @@
  * <p>
  * Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public interface ModulemapPackage extends EPackage {
 	/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapPackageImpl.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapPackageImpl.java
index 851c37f..3fa38b9 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapPackageImpl.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapPackageImpl.java
@@ -30,7 +30,7 @@
  * <p>
  * 		Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public class ModulemapPackageImpl extends EPackageImpl implements ModulemapPackage {
 	/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapSwitch.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapSwitch.java
index de6864b..e12237c 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapSwitch.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapSwitch.java
@@ -22,7 +22,7 @@
  * <p>
  * Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public class ModulemapSwitch {
 	/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/UtilityJARMapping.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/UtilityJARMapping.java
index 2ed2e6d..f35b0bd 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/UtilityJARMapping.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/UtilityJARMapping.java
@@ -21,7 +21,7 @@
  * <p>
  * 		Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public interface UtilityJARMapping extends EObject {
 	/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/UtilityJARMappingImpl.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/UtilityJARMappingImpl.java
index 6df46a1..8f5b6b8 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/UtilityJARMappingImpl.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/modulemap/UtilityJARMappingImpl.java
@@ -25,7 +25,7 @@
  * <p>
  * Need to use the ModuleCore and WorkbenchComponent Api to get to the referenced modules
  * as with the Flexible project changes a .modulemaps file will not exist in an EAR module and
- * all the info that was captured in .modulemaps file will is now captured in the .wtpmodules file
+ * all the info that was captured in .modulemaps file will is now captured in the .component file
  */
 public class UtilityJARMappingImpl extends EObjectImpl implements UtilityJARMapping {
 	/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EarFacetInstallDelegate.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EarFacetInstallDelegate.java
index 69403b1..17b9325 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EarFacetInstallDelegate.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EarFacetInstallDelegate.java
@@ -22,6 +22,7 @@
 import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil;
 import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
@@ -71,7 +72,7 @@
 	private void addMetaResources(IVirtualComponent component) {
 		if (component.getRootFolder().getUnderlyingResource() instanceof IProject) {
 			IPath[] metaResources = new IPath[]{new Path("/.facets"), new Path("/.project"),
-					new Path("/.runtime"), new Path("/.wtpmodules")};
+					new Path("/.runtime"), IModuleConstants.COMPONENT_FILE_PATH};
 			component.setMetaResources(metaResources);
 		}
 	}
diff --git a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEDeployableFactory.java b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEDeployableFactory.java
index 9d2349c..6707acf 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEDeployableFactory.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEDeployableFactory.java
@@ -52,11 +52,11 @@
 	protected boolean needsUpdating(IProject project) {
 		if(!initialized)
 			return true;
-		IFile wtpmodules = project.getFile(IModuleConstants.WTPMODULE_FILE_PATH);
-		if (!wtpmodules.exists())
+		IFile component = project.getFile(IModuleConstants.COMPONENT_FILE_PATH);
+		if (!component.exists())
 			return false;
-		if(wtpmodules.getModificationStamp() != cachedStamp) {
-			cachedStamp = wtpmodules.getModificationStamp();
+		if(component.getModificationStamp() != cachedStamp) {
+			cachedStamp = component.getModificationStamp();
 			return true;
 		}
 		return false;
diff --git a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/validation/UIEarValidator.java b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/validation/UIEarValidator.java
index 88f7d0e..982d78e 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/validation/UIEarValidator.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/validation/UIEarValidator.java
@@ -629,7 +629,7 @@
 	}*/
 	
 	
-	//The module maps validation needs to be done in the wtpmodules validator for flex project
+	//The module maps validation needs to be done in the component validator for flex project
 	/*protected void validateModuleMapsDuplicateProjects(WorkbenchComponent module) {
 		java.util.List moduleMaps = module.getReferencedComponents();
 		java.util.Set visitedProjectNames = new java.util.HashSet();
