[227362] FacetWorkingCopy preset issue
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 851d40c..8416f03 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
@@ -36,6 +36,7 @@
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 +102,7 @@
}
if (runtimeAdded) {
IRuntime runtime = (IRuntime) model.getProperty(IFacetProjectCreationDataModelProperties.FACET_RUNTIME);
- addDefaultFactets(facetProj, runtime);
+ addDefaultFacets(facetProj, runtime.getDefaultFacets(fixedFacets));
}
} catch (CoreException e) {
@@ -112,19 +113,22 @@
}
return OK_STATUS;
}
-
- 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 );
- }
+
+ 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 IFacetedProject createProject(IProgressMonitor monitor) throws CoreException {
@@ -146,4 +150,14 @@
return facetProj;
}
+ public static void addDefaultFactets(IFacetedProject facetProj, IRuntime runtime) throws ExecutionException {
+
+ if (runtime != null) {
+ final IFacetedProjectWorkingCopy fpjwc = facetProj.createWorkingCopy();
+ Set<IProjectFacetVersion> presetFacets = fpjwc.getDefaultConfiguration().getProjectFacets();
+ addDefaultFacets(facetProj, presetFacets);
+ }
+
+ }
+
}