[207850] test cleanup
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/ModelProviderTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/ModelProviderTest.java
index 1bb49a2..39f0a71 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/ModelProviderTest.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/ModelProviderTest.java
@@ -24,16 +24,9 @@
 import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
-import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
-import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
-import org.eclipse.jst.common.frameworks.CommonFrameworksPlugin;
 import org.eclipse.jst.common.project.facet.IJavaFacetInstallDataModelProperties;
 import org.eclipse.jst.common.project.facet.JavaFacetInstallDataModelProvider;
 import org.eclipse.jst.j2ee.archive.emftests.GeneralEMFPopulationTest;
@@ -43,23 +36,22 @@
 import org.eclipse.jst.j2ee.internal.J2EEConstants;
 import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
 import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEPreferences;
+import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
 import org.eclipse.jst.j2ee.model.IModelProvider;
 import org.eclipse.jst.j2ee.model.ModelProviderManager;
 import org.eclipse.jst.j2ee.project.facet.IAppClientFacetInstallDataModelProperties;
-import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetInstallDataModelProperties;
 import org.eclipse.jst.j2ee.web.project.facet.IWebFacetInstallDataModelProperties;
 import org.eclipse.jst.javaee.application.Application;
 import org.eclipse.jst.javaee.core.Description;
 import org.eclipse.jst.javaee.core.JavaeeFactory;
 import org.eclipse.jst.javaee.ejb.EJBJar;
 import org.eclipse.jst.javaee.web.WebApp;
+import org.eclipse.jst.jee.project.facet.IAppClientCreateDeploymentFilesDataModelProperties;
+import org.eclipse.jst.jee.project.facet.ICreateDeploymentFilesDataModelProperties;
+import org.eclipse.jst.jee.project.facet.IEJBCreateDeploymentFilesDataModelProperties;
+import org.eclipse.jst.jee.project.facet.IEarCreateDeploymentFilesDataModelProperties;
+import org.eclipse.jst.jee.project.facet.IWebCreateDeploymentFilesDataModelProperties;
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetInstallDataModelProperties;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties.FacetDataModelMap;
-import org.eclipse.wst.common.componentcore.internal.impl.WTPResourceFactoryRegistry;
 import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.internal.operations.IHeadlessRunnableWithProgress;
@@ -67,6 +59,10 @@
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
 import org.eclipse.wst.common.tests.SimpleTestSuite;
+import org.eclipse.wtp.j2ee.headless.tests.appclient.operations.AppClientProjectCreationOperationTest;
+import org.eclipse.wtp.j2ee.headless.tests.ear.operations.EARProjectCreationOperationTest;
+import org.eclipse.wtp.j2ee.headless.tests.ejb.operations.EJBProjectCreationOperationTest;
+import org.eclipse.wtp.j2ee.headless.tests.web.operations.WebProjectCreationOperationTest;
 
 public class ModelProviderTest extends GeneralEMFPopulationTest {
 
@@ -147,7 +143,7 @@
 	public void testUseEar5Model() throws Exception {
 
 		String projName = "TestEE5EarProject";//$NON-NLS-1$
-		IProject earProj = createEarProject(projName, J2EEVersionConstants.JEE_5_0_ID);
+		IProject earProj = createEarProject(projName, J2EEVersionConstants.JEE_5_0_ID, true);
 		
 		final IModelProvider provider = ModelProviderManager.getModelProvider(earProj);
 		
@@ -175,11 +171,45 @@
 		Assert.assertEquals(descText, desc.getValue());
 
 	}
+	
+	public void testUseEar5NoDDModel() throws Exception {
+
+		String projName = "TestEE5EarProject";//$NON-NLS-1$
+		IProject earProj = createEarProject(projName, J2EEVersionConstants.JEE_5_0_ID, false);
+		
+		//create the DD because the project was created without one
+		IDataModel ddCreateModel = this.getDDCreationDataModel(earProj);
+		ddCreateModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
+		
+		final IModelProvider provider = ModelProviderManager.getModelProvider(earProj);
+		provider.modify(new Runnable() {
+			public void run() {
+				Application ear = (Application)provider.getModelObject();
+				if (ear.getDescriptions().isEmpty())
+					ear.getDescriptions().add(JavaeeFactory.eINSTANCE.createDescription());
+				Description desc = (Description)ear.getDescriptions().get(0);
+				desc.setValue(descText);
+			}
+		}
+			, IModelProvider.FORCESAVE);
+		
+		//Close project to force flush
+		earProj.close(new NullProgressMonitor());
+		//Re-open project
+		earProj.open(new NullProgressMonitor());
+		
+		
+		IModelProvider newProvider = ModelProviderManager.getModelProvider(earProj);
+		Application sameEar = (Application)newProvider.getModelObject();
+		Description desc = (Description)sameEar.getDescriptions().get(0);
+		Assert.assertEquals(descText, desc.getValue());
+		
+	}
 
 	public void testUseEar14Model() throws Exception {
 
 		String projName = "TestEE14EarProject";//$NON-NLS-1$
-		IProject earProj = createEarProject(projName, J2EEVersionConstants.J2EE_1_4_ID);
+		IProject earProj = createEarProject(projName, J2EEVersionConstants.J2EE_1_4_ID, true);
 		final IModelProvider provider = ModelProviderManager.getModelProvider(earProj);
 		
 		// Test getting model through path api.
@@ -210,7 +240,7 @@
 	public void testUseWeb25Model() throws Exception {
 
 		String projName = "TestEE5WebProject";//$NON-NLS-1$
-		IProject webProj = createWebProject(projName, J2EEVersionConstants.WEB_2_5_ID);
+		IProject webProj = createWebProject(projName, J2EEVersionConstants.WEB_2_5_ID, true);
 
 		final IModelProvider provider = ModelProviderManager.getModelProvider(webProj);
 		
@@ -236,11 +266,45 @@
 		Assert.assertEquals(descText, desc.getValue());
 
 	}
+	
+	public void testUseWeb25NoDDModel() throws Exception {
+		String projName = "TestEE5WebProject";//$NON-NLS-1$
+		IProject webProj = createWebProject(projName, J2EEVersionConstants.WEB_2_5_ID, false);
+		
+		//create the DD because the project was created without one
+		IDataModel ddCreateModel = this.getDDCreationDataModel(webProj);
+		ddCreateModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
+
+		final IModelProvider provider = ModelProviderManager.getModelProvider(webProj);
+		
+		provider.modify(new Runnable() {
+			public void run() {
+				WebApp webApp = (WebApp)provider.getModelObject();
+				if (webApp.getDescriptions().isEmpty())
+					webApp.getDescriptions().add(JavaeeFactory.eINSTANCE.createDescription());
+				Description desc = (Description)webApp.getDescriptions().get(0);
+				desc.setValue(descText);
+			}
+		}
+			, IModelProvider.FORCESAVE);
+		
+		//Close project to force flush
+		webProj.close(new NullProgressMonitor());
+		//Re-open project
+		webProj.open(new NullProgressMonitor());
+		
+		
+		IModelProvider newProvider = ModelProviderManager.getModelProvider(webProj);
+		WebApp sameWebApp = (WebApp)newProvider.getModelObject();
+		Description desc = (Description)sameWebApp.getDescriptions().get(0);
+		Assert.assertEquals(descText, desc.getValue());
+
+	}
 
 	public void testUseWeb24Model() throws Exception {
 		
 		String projName = "TestEE14WebProject";//$NON-NLS-1$
-		IProject webProj = createWebProject(projName, J2EEVersionConstants.WEB_2_4_ID);
+		IProject webProj = createWebProject(projName, J2EEVersionConstants.WEB_2_4_ID, true);
 		final IModelProvider provider = ModelProviderManager.getModelProvider(webProj);
 		
 		provider.modify(new Runnable() {
@@ -267,7 +331,7 @@
 	public void testUseEjb3Model() throws Exception {
 
 		String projName = "TestEE5EjbProject";//$NON-NLS-1$
-		IProject ejbProj = createEjbProject(projName, J2EEVersionConstants.EJB_3_0_ID);
+		IProject ejbProj = createEjbProject(projName, J2EEVersionConstants.EJB_3_0_ID, true);
 
 		final IModelProvider provider = ModelProviderManager.getModelProvider(ejbProj);
 
@@ -295,11 +359,45 @@
 		Assert.assertEquals(descText, desc.getValue());
 
 	}
+	
+	public void testUseEjb3NoDDModel() throws Exception {
+		String projName = "TestEE5EjbProject";//$NON-NLS-1$
+		IProject ejbProj = createEjbProject(projName, J2EEVersionConstants.EJB_3_0_ID, false);
+		
+		//create the DD because the project was created without one
+		IDataModel ddCreateModel = this.getDDCreationDataModel(ejbProj);
+		ddCreateModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
+		
+		final IModelProvider provider = ModelProviderManager.getModelProvider(ejbProj);
+		
+		provider.modify(new Runnable() {
+			public void run() {
+				EJBJar ejbJar = (EJBJar)provider.getModelObject();
+				if (ejbJar.getDescriptions().isEmpty())
+					ejbJar.getDescriptions().add(JavaeeFactory.eINSTANCE.createDescription());
+				Description desc = (Description)ejbJar.getDescriptions().get(0);
+				desc.setValue(descText);
+			}
+		}
+			, IModelProvider.FORCESAVE);
+		
+		//Close project to force flush
+		ejbProj.close(new NullProgressMonitor());
+		//Re-open project
+		ejbProj.open(new NullProgressMonitor());
+		
+		
+		IModelProvider newProvider = ModelProviderManager.getModelProvider(ejbProj);
+		EJBJar sameEjbJar = (EJBJar)newProvider.getModelObject();
+		Description desc = (Description)sameEjbJar.getDescriptions().get(0);
+		Assert.assertEquals(descText, desc.getValue());
+
+	}
 
 	public void testUseEjb21Model() throws Exception {
 
 		String projName = "TestEE14EjbProject";//$NON-NLS-1$
-		IProject ejbProj = createEjbProject(projName, J2EEVersionConstants.EJB_2_1_ID);
+		IProject ejbProj = createEjbProject(projName, J2EEVersionConstants.EJB_2_1_ID, true);
 		final IModelProvider provider = ModelProviderManager.getModelProvider(ejbProj);
 
 		provider.modify(new Runnable() {
@@ -322,126 +420,10 @@
 		Assert.assertEquals(descText, desc.getValue());
 
 	}
-
-	private ProjectResourceSet getResourceSet(String projName) {
-		IProject proj = getProject(projName);
-		return (ProjectResourceSet)WorkbenchResourceHelperBase.getResourceSet(proj);
-	}
-
-	private IProject createWebProject(String projName, int vers) throws ExecutionException {
-		IDataModel dataModel = DataModelFactory.createDataModel(IWebFacetInstallDataModelProperties.class);
-		String webVersionString = J2EEVersionUtil.convertVersionIntToString(vers);
-		IProjectFacet webFacet = ProjectFacetsManager.getProjectFacet(IWebFacetInstallDataModelProperties.DYNAMIC_WEB);
-		IProjectFacetVersion webFacetVersion = webFacet.getVersion(webVersionString); //$NON-NLS-1$
-		addWebProjectProperties(dataModel, projName, webFacetVersion);
-		dataModel.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, projName);
-		FacetDataModelMap map = (FacetDataModelMap) dataModel
-				.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
-		map.add(setupJavaInstallAction(projName,CommonFrameworksPlugin.getDefault().getPluginPreferences().getString(CommonFrameworksPlugin.DEFAULT_SOURCE_FOLDER)));
-		dataModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
-		IProject webProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
-		return webProj;
-	}
-
-	private IProject createEjbProject(String projName, int vers) throws ExecutionException {
-		IDataModel dataModel = DataModelFactory.createDataModel(IEjbFacetInstallDataModelProperties.class);
-		String versionString = J2EEVersionUtil.convertVersionIntToString(vers);
-		IProjectFacet facet = ProjectFacetsManager.getProjectFacet(IEjbFacetInstallDataModelProperties.EJB);
-		IProjectFacetVersion facetVersion = facet.getVersion(versionString); //$NON-NLS-1$
-		addVersionProperties(dataModel, projName, facetVersion,IJ2EEFacetInstallDataModelProperties.EJB);
-		dataModel.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, projName);
-		FacetDataModelMap map = (FacetDataModelMap) dataModel
-				.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
-		map.add(setupJavaInstallAction(projName,J2EEPlugin.getDefault().getJ2EEPreferences().getString(J2EEPreferences.Keys.EJB_CONTENT_FOLDER)));
-		dataModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
-		IProject webProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
-		return webProj;
-	}
-
-	private IProject createEarProject(String projName, int vers) throws ExecutionException {
-		IDataModel dataModel = DataModelFactory.createDataModel(IEarFacetInstallDataModelProperties.class);
-		String versionString = J2EEVersionUtil.convertVersionIntToString(vers);
-		IProjectFacet facet = ProjectFacetsManager.getProjectFacet(IEarFacetInstallDataModelProperties.ENTERPRISE_APPLICATION);
-		IProjectFacetVersion facetVersion = facet.getVersion(versionString); //$NON-NLS-1$
-		addVersionProperties(dataModel, projName, facetVersion,IJ2EEFacetInstallDataModelProperties.ENTERPRISE_APPLICATION);
-		dataModel.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, projName);
-		dataModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
-		IProject webProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
-		return webProj;
-	}
-
-	private IProject createAppClientProject(String projName , int vers) throws ExecutionException {
-		IDataModel dataModel = DataModelFactory.createDataModel(IAppClientFacetInstallDataModelProperties.class);
-		String versionString = J2EEVersionUtil.convertVersionIntToString(vers);
-		IProjectFacet facet = ProjectFacetsManager.getProjectFacet(IAppClientFacetInstallDataModelProperties.APPLICATION_CLIENT);
-		IProjectFacetVersion facetVersion = facet.getVersion(versionString); //$NON-NLS-1$
-		addVersionProperties(dataModel, projName, facetVersion,IJ2EEFacetInstallDataModelProperties.APPLICATION_CLIENT);
-		dataModel.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, projName);
-		FacetDataModelMap map = (FacetDataModelMap) dataModel
-				.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
-		map.add(setupJavaInstallAction(projName,J2EEPlugin.getDefault().getJ2EEPreferences().getString(J2EEPreferences.Keys.APP_CLIENT_CONTENT_FOLDER)));
-		dataModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
-		IProject webProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
-		return webProj;
-	}
-
-	protected IDataModel setupJavaInstallAction(String aProjectName, String srcFolder) {
-		IDataModel dm = DataModelFactory.createDataModel(new JavaFacetInstallDataModelProvider());
-		dm.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, aProjectName);
-		String jVersion = "5.0";
-		dm.setProperty(IFacetDataModelProperties.FACET_VERSION_STR, jVersion); //$NON-NLS-1$
-		dm.setStringProperty(IJavaFacetInstallDataModelProperties.SOURCE_FOLDER_NAME, srcFolder); //$NON-NLS-1$
-		return dm;
-	}
-
-    private void addWebProjectProperties(IDataModel dataModel, String projName, IProjectFacetVersion web25){
-
-		dataModel.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, projName);
-		FacetDataModelMap map = (FacetDataModelMap) dataModel
-				.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
-		IDataModel webmodel = (IDataModel) map.get(IWebFacetInstallDataModelProperties.DYNAMIC_WEB);
-		webmodel.setProperty(IFacetInstallDataModelProperties.FACET_VERSION, web25);
-//		webmodel.setStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER,"web333"); //$NON-NLS-1$
-//        webmodel.setStringProperty(IWebFacetInstallDataModelProperties.SOURCE_FOLDER, "src444");
-    }
-
-	private void addVersionProperties(IDataModel dataModel, String projName, IProjectFacetVersion fv, String facetString){
-
-		dataModel.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, projName);
-		FacetDataModelMap map = (FacetDataModelMap) dataModel
-				.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
-		IDataModel model = (IDataModel) map.get(facetString);
-		model.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, true);
-		model.setProperty(IFacetInstallDataModelProperties.FACET_VERSION, fv);
-		
-    }
-
-	public IProject getProject() {
-		return ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECTNAME);
-	}
-
-	public IProject getProject(String projName) {
-		return ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
-	}
-
-	private void registerFactory(URI uri, ResourceSet resSet, Resource.Factory factory) {
-		WTPResourceFactoryRegistry registry = (WTPResourceFactoryRegistry) resSet.getResourceFactoryRegistry();
-		registry.registerLastFileSegment(uri.lastSegment(), factory);
-	}
-
-	private ResourceSet getResourceSet() {
-		ResourceSet set = new ResourceSetImpl();
-		set.setResourceFactoryRegistry(WTPResourceFactoryRegistry.INSTANCE);
-		return set;
-	}
-
-	protected void tearDown() throws Exception {
-		// Don't delete these files
-	}
-
+	
 	public void testUseAppClient14Model() throws Exception {
 		String projName = "TestEE14AppClientProject";//$NON-NLS-1$
-		IProject appClientProj = createAppClientProject(projName, J2EEVersionConstants.J2EE_1_4_ID);
+		IProject appClientProj = createAppClientProject(projName, J2EEVersionConstants.J2EE_1_4_ID, true);
 		final IModelProvider provider = ModelProviderManager.getModelProvider(appClientProj);
 		
 		// Test getting model through path api.
@@ -470,7 +452,7 @@
 	public void testUseAppClient5Model() throws Exception {
 
 		String projName = "TestEE5AppClientProject";//$NON-NLS-1$
-		IProject appClientProj = createAppClientProject(projName, J2EEVersionConstants.JEE_5_0_ID);
+		IProject appClientProj = createAppClientProject(projName, J2EEVersionConstants.JEE_5_0_ID, true);
 		final IModelProvider provider = ModelProviderManager.getModelProvider(appClientProj);
 
 		// Test getting model through path api.
@@ -497,4 +479,120 @@
 		Description desc = (Description)sameClient.getDescriptions().get(0);
 		Assert.assertEquals(descText, desc.getValue());
 	}
+	
+	public void testUseAppClient5NoDDModel() throws Exception {
+		String projName = "TestEE5AppClientProject";//$NON-NLS-1$
+		IProject appClientProj = createAppClientProject(projName, J2EEVersionConstants.JEE_5_0_ID, false);
+		
+		//create the DD because the project was created without one
+		IDataModel ddCreateModel = this.getDDCreationDataModel(appClientProj);
+		ddCreateModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
+		
+		final IModelProvider provider = ModelProviderManager.getModelProvider(appClientProj);
+		
+		// Test getting model through path api.
+		org.eclipse.jst.javaee.applicationclient.ApplicationClient client = (org.eclipse.jst.javaee.applicationclient.ApplicationClient)provider.getModelObject(new Path(J2EEConstants.APP_CLIENT_DD_URI));
+		
+		
+		provider.modify(new Runnable() {
+			public void run() {
+				org.eclipse.jst.javaee.applicationclient.ApplicationClient client = (org.eclipse.jst.javaee.applicationclient.ApplicationClient)provider.getModelObject();
+				if (client.getDescriptions().isEmpty())
+					client.getDescriptions().add(JavaeeFactory.eINSTANCE.createDescription());
+				Description desc = (Description)client.getDescriptions().get(0);
+				desc.setValue(descText);
+				
+			}
+		}
+			, IModelProvider.FORCESAVE);
+		
+		//Close project to force flush
+		appClientProj.close(new NullProgressMonitor());
+		//Re-open project
+		appClientProj.open(new NullProgressMonitor());
+		
+		
+		IModelProvider newProvider = ModelProviderManager.getModelProvider(appClientProj);
+		org.eclipse.jst.javaee.applicationclient.ApplicationClient sameClient = (org.eclipse.jst.javaee.applicationclient.ApplicationClient)newProvider.getModelObject();
+		Description desc = (Description)sameClient.getDescriptions().get(0);
+		Assert.assertEquals(descText, desc.getValue());
+	}
+	
+	private IDataModel getDDCreationDataModel(IProject project) {
+		Class dataModelClass = null;
+		if(J2EEProjectUtilities.isEARProject(project)){
+			dataModelClass = IEarCreateDeploymentFilesDataModelProperties.class;
+		} else if(J2EEProjectUtilities.isEJBProject(project)){
+			dataModelClass = IEJBCreateDeploymentFilesDataModelProperties.class;
+		} else if(J2EEProjectUtilities.isDynamicWebProject(project)){
+			dataModelClass = IWebCreateDeploymentFilesDataModelProperties.class;
+		} else if(J2EEProjectUtilities.isApplicationClientProject(project)){
+			dataModelClass = IAppClientCreateDeploymentFilesDataModelProperties.class;
+		}
+		IDataModel dataModel = DataModelFactory.createDataModel(dataModelClass);
+		dataModel.setProperty(ICreateDeploymentFilesDataModelProperties.TARGET_PROJECT, project);
+		return dataModel;
+	}
+
+	private IProject createWebProject(String projName, int vers, boolean createDD) throws ExecutionException {
+		String webVersionString = J2EEVersionUtil.convertVersionIntToString(vers);
+		IProjectFacet webFacet = ProjectFacetsManager.getProjectFacet(IWebFacetInstallDataModelProperties.DYNAMIC_WEB);
+		IProjectFacetVersion webFacetVersion = webFacet.getVersion(webVersionString);
+		IDataModel dataModel = WebProjectCreationOperationTest.getWebDataModel(projName, null, null, null, null, webFacetVersion, createDD);
+		dataModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
+		IProject webProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
+		return webProj;
+	}
+
+	private IProject createEjbProject(String projName, int vers, boolean createDD) throws ExecutionException {
+		String versionString = J2EEVersionUtil.convertVersionIntToString(vers);
+		IProjectFacet facet = ProjectFacetsManager.getProjectFacet(IEjbFacetInstallDataModelProperties.EJB);
+		IProjectFacetVersion facetVersion = facet.getVersion(versionString);
+		IDataModel dataModel = EJBProjectCreationOperationTest.getEJBDataModel(projName, null, null, null, facetVersion, false, createDD);
+		dataModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
+		IProject ejbProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
+		return ejbProj;
+	}
+
+	private IProject createEarProject(String projName, int vers, boolean createDD) throws ExecutionException {
+		String versionString = J2EEVersionUtil.convertVersionIntToString(vers);
+		IProjectFacet facet = ProjectFacetsManager.getProjectFacet(IEarFacetInstallDataModelProperties.ENTERPRISE_APPLICATION);
+		IProjectFacetVersion facetVersion = facet.getVersion(versionString);
+		IDataModel dataModel = EARProjectCreationOperationTest.getEARDataModel(projName, null, null, null, facetVersion, createDD);
+		dataModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
+		
+		IProject earProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
+		return earProj;
+	}
+
+	private IProject createAppClientProject(String projName , int vers, boolean createDD) throws ExecutionException {
+		String versionString = J2EEVersionUtil.convertVersionIntToString(vers);
+		IProjectFacet facet = ProjectFacetsManager.getProjectFacet(IAppClientFacetInstallDataModelProperties.APPLICATION_CLIENT);
+		IProjectFacetVersion facetVersion = facet.getVersion(versionString);
+		IDataModel dataModel = AppClientProjectCreationOperationTest.getAppClientCreationDataModel(projName, null, facetVersion, true, createDD);
+		dataModel.getDefaultOperation().execute( new NullProgressMonitor(), null);
+		IProject webProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
+		return webProj;
+	}
+
+	protected IDataModel setupJavaInstallAction(String aProjectName, String srcFolder) {
+		IDataModel dm = DataModelFactory.createDataModel(new JavaFacetInstallDataModelProvider());
+		dm.setProperty(IFacetDataModelProperties.FACET_PROJECT_NAME, aProjectName);
+		String jVersion = "5.0";
+		dm.setProperty(IFacetDataModelProperties.FACET_VERSION_STR, jVersion); //$NON-NLS-1$
+		dm.setStringProperty(IJavaFacetInstallDataModelProperties.SOURCE_FOLDER_NAME, srcFolder); //$NON-NLS-1$
+		return dm;
+	}
+
+	public IProject getProject() {
+		return ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECTNAME);
+	}
+
+	public IProject getProject(String projName) {
+		return ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
+	}
+
+	protected void tearDown() throws Exception {
+		// Don't delete these files
+	}
 }