[123363] commited for NA
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java
index e4a5edd..123c75c 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java
@@ -146,6 +146,59 @@
 		return facetProj;
 	}
 
-
+	private static void addDefaultFacetsInProject(IFacetedProject facetProj, Set defaultFacets) {
+		Set actions = new HashSet();
+		for (Iterator iter = defaultFacets.iterator(); iter.hasNext();) {
+			IProjectFacetVersion facetVersion = (IProjectFacetVersion) iter.next();
+			if (!facetProj.hasProjectFacet(facetVersion.getProjectFacet())) {
+				IDataModel dm = DataModelFactory.createDataModel(new FacetInstallDataModelProvider());
+				dm.setProperty(IFacetDataModelProperties.FACET_ID, facetVersion.getProjectFacet().getId());
+				dm.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, facetProj.getProject().getName());
+				dm.setProperty(IFacetDataModelProperties.FACET_VERSION_STR, facetVersion.getVersionString()); //$NON-NLS-1$
+				actions.add(new IFacetedProject.Action(Action.Type.INSTALL, facetVersion, dm));
+			}
+		}
+		
+		try {
+			if (!actions.isEmpty())
+				facetProj.modify(actions,null);
+		} catch (CoreException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+	}
+	
+	public static void addDefaultFactets(IFacetedProject facetProj, IRuntime runtime) throws ExecutionException{
+	
+		Set fixedFacets = new HashSet(), newFacetVersions = facetProj.getProjectFacets(), existingFixedFacets = facetProj.getFixedProjectFacets();
+		for (Iterator iter = newFacetVersions.iterator(); iter.hasNext();) {
+			IProjectFacetVersion facetVersion = (IProjectFacetVersion) iter.next();
+			String facetID = facetVersion.getProjectFacet().getId();
+			boolean shouldInstallFacet = true;
+			for (Iterator existingFacetsIterator = existingFixedFacets.iterator(); shouldInstallFacet && existingFacetsIterator.hasNext();) {
+				IProjectFacet facet = (IProjectFacet) existingFacetsIterator.next();
+				if (facet.getId().equals(facetID)) {
+					shouldInstallFacet = false;
+				}
+			}
+			if (shouldInstallFacet) {
+				fixedFacets.add(facetVersion.getProjectFacet());
+			}
+		}
+		
+		try{
+			if (!fixedFacets.isEmpty()) {
+					facetProj.setFixedProjectFacets(fixedFacets);
+			}
+		
+			if (runtime != null ) {
+				addDefaultFacetsInProject(facetProj,runtime.getDefaultFacets( fixedFacets ));
+			}
+		}catch(CoreException e){
+			Logger.getLogger().logError(e);
+			throw new ExecutionException(e.getMessage(), e);			
+		}
+	}
 
 }