[228568] UtilityFacetPostInstallDelegate shouldn't hard code EAR f- revert due to JUnit failures
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetPostInstallDelegate.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetPostInstallDelegate.java index 8145285..aec49dd 100644 --- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetPostInstallDelegate.java +++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/UtilityFacetPostInstallDelegate.java
@@ -15,6 +15,7 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jem.util.logger.proxy.Logger; +import org.eclipse.jst.j2ee.internal.J2EEVersionConstants; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; import org.eclipse.wst.common.project.facet.core.IDelegate; import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; @@ -31,14 +32,33 @@ final IDataModel model = (IDataModel) cfg; + // Associate with an EAR, if necessary. if (model.getBooleanProperty(IUtilityFacetInstallDataModelProperties.ADD_TO_EAR)) { final String earProjectName = model.getStringProperty(IUtilityFacetInstallDataModelProperties.EAR_PROJECT_NAME); - if (earProjectName != null && earProjectName != "") //$NON-NLS-1$ - { + if (earProjectName != null && earProjectName != "") { //$NON-NLS-1$ +// IProject earProject = ProjectUtilities.getProject(earProjectName); +// if (earProject.exists()) { +// IVirtualComponent earComp = ComponentCore.createComponent(earProject); +// +// IDataModel dataModel = DataModelFactory.createDataModel(new AddComponentToEnterpriseApplicationDataModelProvider()); +// dataModel.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, earComp); +// List modList = (List) dataModel.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST); +// modList.add(c); +// dataModel.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, modList); +// try { +// dataModel.getDefaultOperation().execute(null, null); +// } catch (ExecutionException e) { +// Logger.getLogger().logError(e); +// } +// } + + final String moduleURI = model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.MODULE_URI); - installAndAddModuletoEAR( null, + //final String moduleURI = project.getName() + ".jar"; + + installAndAddModuletoEAR( J2EEVersionConstants.VERSION_1_4_TEXT, earProjectName, (IRuntime) model.getProperty(IJ2EEFacetInstallDataModelProperties.FACET_RUNTIME), project, @@ -46,6 +66,8 @@ monitor ); } } + + } catch (Exception e) { Logger.getLogger().logError(e); } finally {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEFacetInstallDelegate.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEFacetInstallDelegate.java index fa8c352..293b63b 100644 --- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEFacetInstallDelegate.java +++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/project/facet/J2EEFacetInstallDelegate.java
@@ -13,8 +13,10 @@ import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.resources.IContainer; @@ -32,20 +34,22 @@ import org.eclipse.jst.j2ee.application.internal.operations.AddComponentToEnterpriseApplicationDataModelProvider; import org.eclipse.jst.j2ee.application.internal.operations.IAddComponentToEnterpriseApplicationDataModelProperties; import org.eclipse.jst.j2ee.internal.J2EEConstants; +import org.eclipse.jst.j2ee.internal.earcreation.EarFacetInstallDataModelProvider; import org.eclipse.jst.j2ee.internal.project.ManifestFileCreationAction; import org.eclipse.wst.common.componentcore.ComponentCore; import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties; +import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties; +import org.eclipse.wst.common.componentcore.internal.operation.FacetProjectCreationOperation; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; import org.eclipse.wst.common.internal.emf.resource.RendererFactory; -import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework; -import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy; +import org.eclipse.wst.common.project.facet.core.IFacetedProject; 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.Type; import org.eclipse.wst.common.project.facet.core.runtime.IRuntime; -import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent; import org.eclipse.wst.project.facet.ProductManager; -import org.eclipse.wst.web.internal.facet.RuntimePresetMappingRegistry; public abstract class J2EEFacetInstallDelegate { @@ -57,74 +61,41 @@ jproj.setRawClasspath(updated, null); } - protected void installEARFacet( final String j2eeVersionText, - final String earProjectName, - final IRuntime runtime, - final IProgressMonitor monitor ) - { + protected void installEARFacet(String j2eeVersionText, String earProjectName, IRuntime runtime, IProgressMonitor monitor){ + IProject project = ProjectUtilities.getProject(earProjectName); if( project.exists()) return; - final IFacetedProjectWorkingCopy fpjwc = FacetedProjectFramework.createNewProject(); - - fpjwc.setProjectName( earProjectName ); - - if( runtime != null ) - { - fpjwc.setTargetedRuntimes( Collections.singleton( runtime ) ); - } - - fpjwc.setFixedProjectFacets( Collections.singleton( EARFacetUtils.EAR_FACET ) ); - fpjwc.setSelectedPreset( FacetedProjectFramework.DEFAULT_CONFIGURATION_PRESET_ID ); - - if( j2eeVersionText != null ) - { - final IProjectFacetVersion defaultEarFacetVersion - = fpjwc.getProjectFacetVersion( EARFacetUtils.EAR_FACET ); - - if( ! defaultEarFacetVersion.getVersionString().equals( j2eeVersionText ) ) - { - String presetId = null; - - for( IRuntimeComponent rc : runtime.getRuntimeComponents() ) - { - presetId = RuntimePresetMappingRegistry.INSTANCE.getPresetID - ( - rc.getRuntimeComponentType().getId(), - rc.getRuntimeComponentVersion().getVersionString(), - EARFacetUtils.EAR_FACET.getId(), - j2eeVersionText - ); - - if( presetId != null ) - { - break; - } - } - - if( presetId != null ) - { - fpjwc.setSelectedPreset( presetId ); - } - else - { - final IProjectFacetVersion earFacetVersion - = EARFacetUtils.EAR_FACET.getVersion( j2eeVersionText ); - - fpjwc.setProjectFacets( Collections.singleton( earFacetVersion ) ); - } - } - } - - try - { - fpjwc.commitChanges( null ); - } - catch( CoreException e ) - { - Logger.getLogger().logError( e ); - } + IFacetedProject facetProj; + try { + facetProj = ProjectFacetsManager.create(earProjectName, + null, monitor); + if(null != runtime){ + facetProj.setRuntime(runtime, monitor); + } + + IDataModel earFacetInstallDataModel = DataModelFactory.createDataModel(new EarFacetInstallDataModelProvider()); + earFacetInstallDataModel.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, earProjectName); + earFacetInstallDataModel.setProperty(IFacetDataModelProperties.FACET_VERSION_STR, j2eeVersionText); + + Set actions = new HashSet(); + actions.add(new IFacetedProject.Action((Type) earFacetInstallDataModel.getProperty(IFacetDataModelProperties.FACET_TYPE), + (IProjectFacetVersion) earFacetInstallDataModel.getProperty(IFacetDataModelProperties.FACET_VERSION), + earFacetInstallDataModel)); + + + facetProj.modify(actions, null); + facetProj.setFixedProjectFacets(Collections.singleton(EARFacetUtils.EAR_FACET)); + + try { + FacetProjectCreationOperation.addDefaultFactets(facetProj, runtime); + } catch (ExecutionException e) { + Logger.getLogger().logError(e); + } + } catch (CoreException e) { + Logger.getLogger().logError(e); + } } protected void createManifest(IProject project, IContainer aFolder, IProgressMonitor monitor) throws CoreException, InvocationTargetException, InterruptedException {