[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);
+ }
+ }
}