[218060] [Wizards] New dynamic project dialog creates project in ...
[224973] Default facets not applied when ear is auto-created
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
index fbea30f..d8cb5d6 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
@@ -22,6 +22,7 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
@@ -126,13 +127,20 @@
 		projectDataModel.addListener(new IDataModelListener() {
 			public void propertyChanged(DataModelEvent event) 
 			{
+			    final String prop = event.getPropertyName();
+			    
                 if( event.getFlag() == IDataModel.VALUE_CHG &&
-                    event.getPropertyName().equals( IProjectCreationPropertiesNew.PROJECT_NAME ) )
+                    prop.equals( IProjectCreationPropertiesNew.PROJECT_NAME ) )
                 {
                     final String projectName = (String) event.getProperty();
 					getDataModel().setProperty(FACET_PROJECT_NAME, projectName);
 					fpjwc.setProjectName( projectName );
 				}
+                else if( prop.equals( IProjectCreationPropertiesNew.PROJECT_LOCATION ) )
+                {
+                    final String location = (String) event.getProperty();
+                    fpjwc.setProjectLocation( location == null ? null : new Path( location ) );
+                }
 			}
 		});
 		model.addNestedModel(NESTED_PROJECT_DM, projectDataModel);
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 f4ea288..851d40c 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
@@ -32,10 +32,10 @@
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.internal.operations.IProjectCreationPropertiesNew;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
 import org.eclipse.wst.common.project.facet.core.IProjectFacet;
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
 import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
 
 public class FacetProjectCreationOperation extends AbstractDataModelOperation {
@@ -101,7 +101,7 @@
 			}
 			if (runtimeAdded) {
 				IRuntime runtime = (IRuntime) model.getProperty(IFacetProjectCreationDataModelProperties.FACET_RUNTIME);
-				addDefaultFacets(facetProj, runtime.getDefaultFacets(fixedFacets));
+				addDefaultFactets(facetProj, runtime);
 			}
 
 		} catch (CoreException e) {
@@ -112,22 +112,19 @@
 		}
 		return OK_STATUS;
 	}
-
-	private static void addDefaultFacets(IFacetedProject facetProj, Set defaultFacets) {
-		Set actions = new HashSet();
-		for (Iterator iter = defaultFacets.iterator(); iter.hasNext();) {
-			IProjectFacetVersion facetVersion = (IProjectFacetVersion) iter.next();
-			if (!facetProj.hasProjectFacet(facetVersion.getProjectFacet())) {
-				actions.add(new IFacetedProject.Action(Action.Type.INSTALL, facetVersion, null));
-			}
-		}
-
-		try {
-			if (!actions.isEmpty())
-				facetProj.modify(actions, null);
-		} catch (CoreException e) {
-			Logger.getLogger().logError(e);
-		}
+	
+	public static void addDefaultFactets(IFacetedProject facetProj, IRuntime runtime) throws ExecutionException 
+	{
+	    try
+	    {
+    	    final IFacetedProjectWorkingCopy fpjwc = facetProj.createWorkingCopy();
+    	    fpjwc.setSelectedPreset( fpjwc.getDefaultConfiguration().getId() );
+    	    fpjwc.commitChanges( null );
+	    }
+	    catch( CoreException e )
+	    {
+	        throw new ExecutionException( e.getMessage(), e );
+	    }
 	}
 
 	public IFacetedProject createProject(IProgressMonitor monitor) throws CoreException {
@@ -149,15 +146,4 @@
 		return facetProj;
 	}
 	
-	public static void addDefaultFactets(IFacetedProject facetProj, IRuntime runtime) throws ExecutionException {
-		try {
-			if (runtime != null) {
-				addDefaultFacets(facetProj, runtime.getDefaultFacets(facetProj.getFixedProjectFacets()));
-			}
-		} catch (CoreException e) {
-			Logger.getLogger().logError(e);
-			throw new ExecutionException(e.getMessage(), e);
-		}
-	}
-
 }