[290033] ee6 model providers
diff --git a/tests/org.eclipse.jst.j2ee.core.tests/commonArchiveTests/org/eclipse/jst/j2ee/archive/emftests/GeneralEMFPopulationTest.java b/tests/org.eclipse.jst.j2ee.core.tests/commonArchiveTests/org/eclipse/jst/j2ee/archive/emftests/GeneralEMFPopulationTest.java
index 8d0594b..41fce29 100644
--- a/tests/org.eclipse.jst.j2ee.core.tests/commonArchiveTests/org/eclipse/jst/j2ee/archive/emftests/GeneralEMFPopulationTest.java
+++ b/tests/org.eclipse.jst.j2ee.core.tests/commonArchiveTests/org/eclipse/jst/j2ee/archive/emftests/GeneralEMFPopulationTest.java
@@ -81,6 +81,7 @@
     public static final int VERSION_1_3 = 1;
     public static final int VERSION_1_4 = 2;
     public static final int VERSION_5_0 = 3;
+    public static final int VERSION_6_0 = 3;
 
     public static final int APPLICATION = 0;
     public static final int APP_CLIENT = 1;
diff --git a/tests/org.eclipse.jst.j2ee.core.tests/commonArchiveTests/org/eclipse/jst/j2ee/archive/testutilities/EMFAttributeFeatureGenerator.java b/tests/org.eclipse.jst.j2ee.core.tests/commonArchiveTests/org/eclipse/jst/j2ee/archive/testutilities/EMFAttributeFeatureGenerator.java
index 20ad5fa..90046a2 100644
--- a/tests/org.eclipse.jst.j2ee.core.tests/commonArchiveTests/org/eclipse/jst/j2ee/archive/testutilities/EMFAttributeFeatureGenerator.java
+++ b/tests/org.eclipse.jst.j2ee.core.tests/commonArchiveTests/org/eclipse/jst/j2ee/archive/testutilities/EMFAttributeFeatureGenerator.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jst.j2ee.archive.testutilities;
 
+import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -24,6 +25,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
 import org.eclipse.jem.java.internal.impl.JavaClassImpl;
 import org.eclipse.jst.j2ee.common.CommonPackage;
 import org.eclipse.jst.j2ee.ejb.EjbPackage;
@@ -129,6 +131,8 @@
 			return createCollection(att);
 		else if (meta.getInstanceClassName().equals("java.lang.String"))
 			return  generateRandomAttributeString(att);
+		else if (meta.getInstanceClassName().equals("java.math.BigInteger"))
+			return  generateRandomBigInteger(att);
 		else if (meta.getInstanceClassName().equals("boolean"))
 			return  generateRandomBoolean(att);
 		else if (meta.getInstanceClassName().equals("java.util.List"))
@@ -145,6 +149,8 @@
 			case EcorePackage.EINTEGER_OBJECT:
 			case EcorePackage.EINT:
 				return generateRandomInteger(att);
+			case EcorePackage.EBIG_INTEGER:
+				return generateRandomBigInteger(att);
 			case EcorePackage.EFLOAT_OBJECT:
 			case EcorePackage.EFLOAT:
 				return generateRandomFloat(att);
@@ -153,6 +159,7 @@
 				return generateRandomChar(att);
 			case EcorePackage.ELONG_OBJECT:
 			case EcorePackage.ELONG:
+			case XMLTypePackage.LONG:
 				return generateRandomLong();
 			case EcorePackage.EBYTE_OBJECT:
 			case EcorePackage.EBYTE:
@@ -407,6 +414,10 @@
     	return new Integer(generateNumber(att));
     }
     
+    protected static Object generateRandomBigInteger(EAttributeDescriptor att) {
+    	return new BigInteger(new Long(generateNumber(att)).toString());
+    }
+    
     protected static char [] intToCharMapping = new char [] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };
     protected static char [] charToIntMapping = new char [] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
     protected static Object generateRandomQName(EAttributeDescriptor att) {
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE5ModelTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE5ModelTest.java
index 538310b..4f91dc7 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE5ModelTest.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE5ModelTest.java
@@ -33,7 +33,6 @@
 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;
@@ -42,15 +41,17 @@
 import org.eclipse.jst.j2ee.ejb.project.operations.IEjbFacetInstallDataModelProperties;
 import org.eclipse.jst.j2ee.internal.J2EEConstants;
 import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
+import org.eclipse.jst.j2ee.internal.common.CreationConstants;
 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.project.facet.IAppClientFacetInstallDataModelProperties;
 import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetInstallDataModelProperties;
-import org.eclipse.jst.j2ee.project.facet.IJ2EEModuleFacetInstallDataModelProperties;
 import org.eclipse.jst.j2ee.web.project.facet.IWebFacetInstallDataModelProperties;
 import org.eclipse.jst.javaee.application.Application;
 import org.eclipse.jst.javaee.application.internal.util.ApplicationResourceImpl;
+import org.eclipse.jst.javaee.applicationclient.ApplicationClient;
+import org.eclipse.jst.javaee.applicationclient.internal.util.ApplicationclientResourceImpl;
 import org.eclipse.jst.javaee.ejb.EJBJar;
 import org.eclipse.jst.javaee.ejb.internal.util.EjbResourceImpl;
 import org.eclipse.jst.javaee.web.WebApp;
@@ -67,6 +68,7 @@
 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.web.operations.WebProjectCreationOperationTest;
 
 public class JEE5ModelTest extends GeneralEMFPopulationTest {
 	
@@ -198,7 +200,7 @@
 	URI uri = URI.createURI(J2EEPlugin.getDefault().getJ2EEPreferences().getString(J2EEPreferences.Keys.EJB_CONTENT_FOLDER) + "/" + modelPathURI);
 	ProjectResourceSet resSet = getResourceSet(projName);
 	
-	resSet.getResource(uri,true);
+	
 	EjbResourceImpl ejbRes = (EjbResourceImpl) resSet.getResource(uri,true);
 	Assert.assertTrue(ejbRes.getContents().size() > 0);
 	
@@ -219,26 +221,26 @@
 	
 
 }
-//public void testAppClientModel() throws Exception {
-//	
-//	String projName = "TestEE5AppClientProject";//$NON-NLS-1$
-//	createAppClientProject(projName);
-//	
-//	EMFAttributeFeatureGenerator.reset();
-//	String modelPathURI = J2EEConstants.APP_CLIENT_DD_URI;
-//	URI uri = URI.createURI(CreationConstants.DEFAULT_APPCLIENT_SOURCE_FOLDER + "/" + modelPathURI);
-//	ProjectResourceSet resSet = getResourceSet(projName);
-//	
-//	ApplicationclientResourceImpl appClientRes = (ApplicationclientResourceImpl) resSet.getResource(uri,true);
-//	Assert.assertTrue(appClientRes.getContents().size() > 0);
-//	
-//	if (appClientRes.getContents().size() > 0) {
-//		ApplicationClient client = appClientRes.getApplicationClient();
-//		populateRoot((EObjectImpl)client);
-//		appClientRes.save(null);
-//	}
-//
-//}
+public void testAppClientModel() throws Exception {
+	
+	String projName = "TestEE5AppClientProject";//$NON-NLS-1$
+	createAppClientProject(projName);
+	
+	EMFAttributeFeatureGenerator.reset();
+	String modelPathURI = J2EEConstants.APP_CLIENT_DD_URI;
+	URI uri = URI.createURI(CreationConstants.DEFAULT_APPCLIENT_SOURCE_FOLDER + "/" + modelPathURI);
+	ProjectResourceSet resSet = getResourceSet(projName);
+	
+	ApplicationclientResourceImpl appClientRes = (ApplicationclientResourceImpl) resSet.getResource(uri,true);
+	Assert.assertTrue(appClientRes.getContents().size() > 0);
+	
+	if (appClientRes.getContents().size() > 0) {
+		ApplicationClient client = appClientRes.getApplicationClient();
+		populateRoot((EObjectImpl)client);
+		appClientRes.save(null);
+	}
+
+}
 public void testEarModel() throws Exception {
 	
 	String projName = "TestEE5EarProject";//$NON-NLS-1$
@@ -266,7 +268,7 @@
 	
 	EMFAttributeFeatureGenerator.reset();
 	String modelPathURI = J2EEConstants.WEBAPP_DD_URI;
-	URI uri = URI.createURI("web333/" + modelPathURI);
+	URI uri = URI.createURI(J2EEPlugin.getDefault().getJ2EEPreferences().getString(J2EEPreferences.Keys.WEB_CONTENT_FOLDER) + "/" + modelPathURI);
 	ProjectResourceSet resSet = getResourceSet(projName);
 	
 	WebResourceImpl webRes = (WebResourceImpl) resSet.getResource(uri,true);
@@ -287,18 +289,16 @@
 
 
 	private IProject createWebProject(String projName) throws ExecutionException {
-		IDataModel dataModel = DataModelFactory.createDataModel(IWebFacetInstallDataModelProperties.class);
-		String webVersionString = J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.WEB_2_5_ID);
-		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;
+		
+			String webVersionString = J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.WEB_2_5_ID);
+			IProjectFacet webFacet = ProjectFacetsManager.getProjectFacet(IWebFacetInstallDataModelProperties.DYNAMIC_WEB);
+			IProjectFacetVersion webFacetVersion = webFacet.getVersion(webVersionString);
+			IDataModel dataModel = WebProjectCreationOperationTest.getWebDataModel(projName, null, null, null, null,
+					webFacetVersion, true);
+			dataModel.getDefaultOperation().execute(new NullProgressMonitor(), null);
+			IProject webProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
+			return webProj;
+		
 	}
 	private IProject createEjbProject(String projName) throws ExecutionException {
 		IDataModel dataModel = DataModelFactory.createDataModel(IEjbFacetInstallDataModelProperties.class);
@@ -311,8 +311,8 @@
 				.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;
+		IProject ejbProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
+		return ejbProj;
 	}
 	private IProject createEarProject(String projName) throws ExecutionException {
 		IDataModel dataModel = DataModelFactory.createDataModel(IEarFacetInstallDataModelProperties.class);
@@ -354,8 +354,9 @@
 				.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");
+//		webmodel.setStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER,"web333"); //$NON-NLS-1$
+//        webmodel.setStringProperty(IWebFacetInstallDataModelProperties.SOURCE_FOLDER, "src444");
+        webmodel.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, true);
     }
     
     private void addVersionProperties(IDataModel dataModel, String projName, IProjectFacetVersion fv, String facetString){
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE6ModelTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE6ModelTest.java
new file mode 100644
index 0000000..9702d86
--- /dev/null
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/tests/JEE6ModelTest.java
@@ -0,0 +1,424 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jee.model.tests;
+import junit.framework.Assert;
+import junit.framework.Test;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+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.impl.EObjectImpl;
+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.project.facet.IJavaFacetInstallDataModelProperties;
+import org.eclipse.jst.common.project.facet.JavaFacetInstallDataModelProvider;
+import org.eclipse.jst.j2ee.archive.emftests.GeneralEMFPopulationTest;
+import org.eclipse.jst.j2ee.archive.testutilities.EMFAttributeFeatureGenerator;
+import org.eclipse.jst.j2ee.earcreation.IEarFacetInstallDataModelProperties;
+import org.eclipse.jst.j2ee.ejb.project.operations.IEjbFacetInstallDataModelProperties;
+import org.eclipse.jst.j2ee.internal.J2EEConstants;
+import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
+import org.eclipse.jst.j2ee.internal.common.CreationConstants;
+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.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.application.internal.util.ApplicationResourceImpl;
+import org.eclipse.jst.javaee.applicationclient.ApplicationClient;
+import org.eclipse.jst.javaee.applicationclient.internal.util.ApplicationclientResourceImpl;
+import org.eclipse.jst.javaee.ejb.EJBJar;
+import org.eclipse.jst.javaee.ejb.internal.util.EjbResourceImpl;
+import org.eclipse.jst.javaee.web.WebApp;
+import org.eclipse.jst.javaee.web.internal.util.WebResourceImpl;
+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;
+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.tests.SimpleTestSuite;
+import org.eclipse.wtp.j2ee.headless.tests.web.operations.WebProjectCreationOperationTest;
+
+public class JEE6ModelTest extends GeneralEMFPopulationTest {
+	
+	private static final String PROJECTNAME = "TestNewModels";
+	public JEE6ModelTest(String name) {
+		super(name);
+	}
+	
+	
+    public static Test suite() {
+        return new SimpleTestSuite(JEE6ModelTest.class);
+    }
+    /**
+	 * @param eObject
+	 */
+	
+    protected Object primCreateAttributeValue(EAttribute att, EObject eObject) {
+        if (att.getEAttributeType() == XMLTypePackage.eINSTANCE.getQName()) 
+        	return null;
+        else
+            return super.primCreateAttributeValue(att, eObject);
+    }
+    
+    
+	protected void setUp() throws Exception {
+		super.setUp();
+		final IWorkspace workspace = ResourcesPlugin.getWorkspace();
+		if(workspace.getRoot().getProject(PROJECTNAME).isAccessible()) return;
+        final IProjectDescription description = workspace
+                .newProjectDescription(PROJECTNAME);
+        description.setLocation(null);
+
+
+        // create the new project operation
+        IHeadlessRunnableWithProgress op = new IHeadlessRunnableWithProgress() {
+            public void run(IProgressMonitor monitor)
+           {
+                try {
+					createProject(description, workspace.getRoot().getProject(PROJECTNAME), monitor);
+				} catch (OperationCanceledException e) {
+					e.printStackTrace();
+				} catch (CoreException e) {
+					e.printStackTrace();
+				}
+            }
+        };
+        
+
+        // run the new project creation operation
+        try {
+        	op.run(new NullProgressMonitor());
+        } catch (InterruptedException e) {
+            return;
+        }
+	}
+    private void createProject(IProjectDescription description,
+            IProject projectHandle, IProgressMonitor monitor)
+            throws CoreException, OperationCanceledException {
+        try {
+            monitor.beginTask("", 2000); //$NON-NLS-1$
+
+            projectHandle.create(description, new SubProgressMonitor(monitor,
+                    1000));
+
+            if (monitor.isCanceled())
+                throw new OperationCanceledException();
+
+            projectHandle.open(IResource.BACKGROUND_REFRESH, new SubProgressMonitor(monitor, 1000));
+
+        } finally {
+            monitor.done();
+        }
+    }
+
+
+
+//    public void testNewEJBModelPopulation() throws Exception {
+//		
+//		EMFAttributeFeatureGenerator.reset();
+//		String newModelPathURI = "/testejbmodel.xml";
+//		URI uri = URI.createPlatformResourceURI("/" + getProject().getName() + newModelPathURI,false);
+//		ResourceSet resSet = getResourceSet();
+//		registerFactory(uri, resSet, new EjbResourceFactoryImpl());
+//
+//		EjbResourceImpl ejbRes = (EjbResourceImpl) resSet.createResource(uri);
+//		
+//		setVersion(J2EEVersionConstants.JEE_5_0_ID);
+//		
+//		EJBJarDeploymentDescriptor DDroot = EjbFactory.eINSTANCE.createEJBJarDeploymentDescriptor();
+//		EJBJar jar = EjbFactory.eINSTANCE.createEJBJar();
+//		ejbRes.getContents().add((EObjectImpl)DDroot);
+//		DDroot.setEjbJar(jar);
+//		populateRoot((EObjectImpl)jar);
+//		
+//		ejbRes.save(null);
+//		
+//
+//	}
+    
+//    public void testReadNewWebModel() throws Exception {
+//		
+//    	String projName = "TestEE5WebProject";//$NON-NLS-1$
+//    	createWebProject(projName);
+//    	
+//    	
+//    	EMFAttributeFeatureGenerator.reset();
+//		String modelPathURI = J2EEConstants.WEBAPP_DD_URI;
+//		URI uri = URI.createURI("web333/" + modelPathURI);
+//		ProjectResourceSet resSet = getResourceSet(projName);
+//		
+//
+//		WebResourceImpl webRes = (WebResourceImpl) resSet.getResource(uri,true);
+//		
+//		if (webRes.getContents().size() > 0) {
+//			WebAppDeploymentDescriptor ddRoot = (WebAppDeploymentDescriptor)webRes.getContents().get(0);
+//			Assert.assertTrue(ddRoot.getWebApp() != null);
+//		}
+//	
+//		
+//
+//	}
+public void testEJBModel() throws Exception {
+		
+	String projName = "TestEE6EjbProject";//$NON-NLS-1$
+	createEjbProject(projName);
+	
+	EMFAttributeFeatureGenerator.reset();
+	String modelPathURI = J2EEConstants.EJBJAR_DD_URI;
+	URI uri = URI.createURI(J2EEPlugin.getDefault().getJ2EEPreferences().getString(J2EEPreferences.Keys.EJB_CONTENT_FOLDER) + "/" + modelPathURI);
+	ProjectResourceSet resSet = getResourceSet(projName);
+	
+	
+	EjbResourceImpl ejbRes = (EjbResourceImpl) resSet.getResource(uri,true);
+	Assert.assertTrue(ejbRes.getContents().size() > 0);
+	
+	if (ejbRes.getContents().size() > 0) {
+		EJBJar jar = ejbRes.getEjbJar();
+		populateRoot((EObjectImpl)jar);
+		ejbRes.save(null);
+	}
+	ejbRes.unload();
+	// OK now load again using a new Resource
+	ejbRes = (EjbResourceImpl) resSet.getResource(uri,true);
+	Assert.assertTrue(ejbRes.getContents().size() > 0);
+	
+	if (ejbRes.getContents().size() > 0) {
+		EJBJar jar = ejbRes.getEjbJar();
+		jar.getDescriptions();
+	}
+	
+
+}
+public void testAppClientModel() throws Exception {
+	
+	String projName = "TestEE6AppClientProject";//$NON-NLS-1$
+	createAppClientProject(projName);
+	
+	EMFAttributeFeatureGenerator.reset();
+	String modelPathURI = J2EEConstants.APP_CLIENT_DD_URI;
+	URI uri = URI.createURI(CreationConstants.DEFAULT_APPCLIENT_SOURCE_FOLDER + "/" + modelPathURI);
+	ProjectResourceSet resSet = getResourceSet(projName);
+	
+	ApplicationclientResourceImpl appClientRes = (ApplicationclientResourceImpl) resSet.getResource(uri,true);
+	Assert.assertTrue(appClientRes.getContents().size() > 0);
+	
+	if (appClientRes.getContents().size() > 0) {
+		ApplicationClient client = appClientRes.getApplicationClient();
+		populateRoot((EObjectImpl)client);
+		appClientRes.save(null);
+	}
+
+}
+public void testEarModel() throws Exception {
+	
+	String projName = "TestEE6EarProject";//$NON-NLS-1$
+	createEarProject(projName);
+	
+	EMFAttributeFeatureGenerator.reset();
+	String modelPathURI = J2EEConstants.APPLICATION_DD_URI;
+	URI uri = URI.createURI(J2EEPlugin.getDefault().getJ2EEPreferences().getString(J2EEPreferences.Keys.APPLICATION_CONTENT_FOLDER) + "/" + modelPathURI);
+	ProjectResourceSet resSet = getResourceSet(projName);
+	
+	ApplicationResourceImpl earRes = (ApplicationResourceImpl) resSet.getResource(uri,true);
+	Assert.assertTrue(earRes.getContents().size() > 0);
+	
+	if (earRes.getContents().size() > 0) {
+		Application ear = earRes.getApplication();
+		populateRoot((EObjectImpl)ear);
+		earRes.save(null);
+	}
+
+}
+public void testWarModel() throws Exception {
+	
+	String projName = "TestEE6WarProject";//$NON-NLS-1$
+	createWebProject(projName);
+	
+	EMFAttributeFeatureGenerator.reset();
+	String modelPathURI = J2EEConstants.WEBAPP_DD_URI;
+	URI uri = URI.createURI(J2EEPlugin.getDefault().getJ2EEPreferences().getString(J2EEPreferences.Keys.WEB_CONTENT_FOLDER) + "/" + modelPathURI);
+	ProjectResourceSet resSet = getResourceSet(projName);
+	
+	WebResourceImpl webRes = (WebResourceImpl) resSet.getResource(uri,true);
+	Assert.assertTrue(webRes.getContents().size() > 0);
+	
+	if (webRes.getContents().size() > 0) {
+		WebApp ear = webRes.getWebApp();
+		populateRoot((EObjectImpl)ear);
+		webRes.save(null);
+	}
+
+}
+
+	private ProjectResourceSet getResourceSet(String projName) {
+		IProject proj = getProject(projName);
+		return (ProjectResourceSet)WorkbenchResourceHelperBase.getResourceSet(proj);
+	}
+
+
+	private IProject createWebProject(String projName) throws ExecutionException {
+		
+			String webVersionString = J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.WEB_3_0_ID);
+			IProjectFacet webFacet = ProjectFacetsManager.getProjectFacet(IWebFacetInstallDataModelProperties.DYNAMIC_WEB);
+			IProjectFacetVersion webFacetVersion = webFacet.getVersion(webVersionString);
+			IDataModel dataModel = WebProjectCreationOperationTest.getWebDataModel(projName, null, null, null, null,
+					webFacetVersion, true);
+			dataModel.getDefaultOperation().execute(new NullProgressMonitor(), null);
+			IProject webProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
+			return webProj;
+		
+	}
+	private IProject createEjbProject(String projName) throws ExecutionException {
+		IDataModel dataModel = DataModelFactory.createDataModel(IEjbFacetInstallDataModelProperties.class);
+		String versionString = J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.EJB_3_1_ID);
+		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 ejbProj = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
+		return ejbProj;
+	}
+	private IProject createEarProject(String projName) throws ExecutionException {
+		IDataModel dataModel = DataModelFactory.createDataModel(IEarFacetInstallDataModelProperties.class);
+		String versionString = J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.JEE_6_0_ID);
+		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) throws ExecutionException {
+		IDataModel dataModel = DataModelFactory.createDataModel(IAppClientFacetInstallDataModelProperties.class);
+		String versionString = J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.JEE_6_0_ID);
+		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 = "6.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");
+        webmodel.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, true);
+    }
+    
+    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 void testNewEARModelPopulation() throws Exception {
+//		
+//		EMFAttributeFeatureGenerator.reset();
+//		
+//		String newModelPathURI = "/testearmodel.xml";
+//		URI uri = URI.createPlatformResourceURI("/" + getProject().getName() + newModelPathURI,false);
+//		ResourceSet resSet = getResourceSet();
+//		registerFactory(uri, resSet, new ApplicationResourceFactoryImpl());
+//	
+//		ApplicationResourceImpl ejbRes = (ApplicationResourceImpl) resSet.createResource(uri);
+//		
+//		setVersion(J2EEVersionConstants.JEE_5_0_ID);
+//		
+//		ApplicationDeploymentDescriptor DDroot = ApplicationFactory.eINSTANCE.createApplicationDeploymentDescriptor();
+//		Application ear = ApplicationFactory.eINSTANCE.createApplication();
+//		ejbRes.getContents().add((EObjectImpl)DDroot);
+//		DDroot.setApplication(ear);
+//		populateRoot((EObjectImpl)ear);
+//		
+//		ejbRes.save(null);
+//		
+//	
+//	}
+	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
+	}
+
+	
+
+}
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 82b85fc..0266284 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
@@ -86,10 +86,7 @@
 
 	public static Test suite() {
 		SimpleTestSuite suite = new SimpleTestSuite(ModelProviderTest.class);
-		suite.addTestSuite(ModelProviderTest.class);
-		suite.addTestSuite(ModelProviderTest.class);
-		suite.addTestSuite(ModelProviderTest.class);
-		suite.addTestSuite(ModelProviderTest.class);
+		
 		return suite;
 	}
 
@@ -179,6 +176,35 @@
 		Assert.assertEquals(descText, desc.getValue());
 
 	}
+	public void testUseEar6Model() throws Exception {
+
+		String projName = "TestEE6EarProject";//$NON-NLS-1$
+		IProject earProj = createEarProject(projName, J2EEVersionConstants.JEE_6_0_ID, true);
+
+		final IModelProvider provider = ModelProviderManager.getModelProvider(earProj);
+
+		provider.modify(new Runnable() {
+			public void run() {
+				Application ear = (Application) provider.getModelObject();
+				Description desc = JavaeeFactory.eINSTANCE.createDescription();
+				desc.setValue(descText);
+				ear.getDescriptions().add(desc);
+			}
+		}, null);
+
+		// 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();
+		Assert.assertNotNull("Application Model Object should not be null", sameEar);
+
+		Description desc = (Description) sameEar.getDescriptions().get(0);
+		Assert.assertEquals(descText, desc.getValue());
+
+	}
 
 	public void testUseEar5NoDDModel() throws Exception {
 
@@ -271,6 +297,33 @@
 		Assert.assertEquals(descText, desc.getValue());
 
 	}
+	public void testUseWeb30Model() throws Exception {
+
+		String projName = "TestEE6WebProject";//$NON-NLS-1$
+		IProject webProj = createWebProject(projName, J2EEVersionConstants.WEB_3_0_ID, true);
+
+		final IModelProvider provider = ModelProviderManager.getModelProvider(webProj);
+
+		provider.modify(new Runnable() {
+			public void run() {
+				WebApp webApp = (WebApp) provider.getModelObject();
+				Description desc = JavaeeFactory.eINSTANCE.createDescription();
+				desc.setValue(descText);
+				webApp.getDescriptions().add(desc);
+			}
+		}, null);
+
+		// 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 testUseWeb25NoDDModel() throws Exception {
 		String projName = "TestEE5WebProject";//$NON-NLS-1$
@@ -361,6 +414,35 @@
 		Assert.assertNotNull(desc);
 
 	}
+	public void testUseEjb31Model() throws Exception {
+
+		String projName = "TestEE6EjbProject";//$NON-NLS-1$
+		IProject ejbProj = createEjbProject(projName, J2EEVersionConstants.EJB_3_1_ID, true);
+
+		final IModelProvider provider = ModelProviderManager.getModelProvider(ejbProj);
+
+		provider.modify(new Runnable() {
+			public void run() {
+				EJBJar ejbJar = (EJBJar) provider.getModelObject();
+				Description desc = JavaeeFactory.eINSTANCE.createDescription();
+				desc.setValue(descText);
+				ejbJar.getDescriptions().add(desc);
+			}
+		}, null);
+
+		// 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();
+		Assert.assertNotNull("EJBJar Model Object should not be null", sameEjbJar);
+
+		Description desc = findDescritprion(sameEjbJar.getDescriptions(), descText);
+		Assert.assertNotNull(desc);
+
+	}
 
 	private Description findDescritprion(List list, String descText2) {
 		for (Object object : list) {
@@ -489,6 +571,37 @@
 		Description desc = (Description) sameClient.getDescriptions().get(0);
 		Assert.assertEquals(descText, desc.getValue());
 	}
+	public void testUseAppClient6Model() throws Exception {
+
+		String projName = "TestEE6AppClientProject";//$NON-NLS-1$
+		IProject appClientProj = createAppClientProject(projName, J2EEVersionConstants.JEE_6_0_ID, true);
+		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();
+				Description desc = JavaeeFactory.eINSTANCE.createDescription();
+				desc.setValue(descText);
+				client.getDescriptions().add(desc);
+			}
+		}, null);
+
+		// 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());
+	}
 
 	public void testUseAppClient5NoDDModel() throws Exception {
 		String projName = "TestEE5AppClientProject";//$NON-NLS-1$
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/appclient/operations/AppClientProjectCreationOperationTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/appclient/operations/AppClientProjectCreationOperationTest.java
index bf79610..a823abe 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/appclient/operations/AppClientProjectCreationOperationTest.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/appclient/operations/AppClientProjectCreationOperationTest.java
@@ -199,13 +199,11 @@
         facetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, version);
         facetModel.setProperty(IAppClientFacetInstallDataModelProperties.CREATE_DEFAULT_MAIN_CLASS, createDefaultMainClass);
         
-        //this option only exists if JEE5
-        if(version == JavaEEFacetConstants.APP_CLIENT_5){
-            facetModel.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, createDD);
+        
+        facetModel.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, createDD);
             
-            IDataModel javaFacetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.JAVA);
-            javaFacetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.JAVA_5);
-        }
+        IDataModel javaFacetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.JAVA);
+        javaFacetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.JAVA_5);
         
     	return dm;
     }
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java
index 0338fbe..2a68672 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ear/operations/EARProjectCreationOperationTest.java
@@ -214,10 +214,9 @@
 			facetModel.setProperty(IEarFacetInstallDataModelProperties.JAVA_PROJECT_LIST, dependenciesJava);
 		}
 		
-        //this option only exists if JEE5
-        if(version == JavaEEFacetConstants.EAR_5){
-            facetModel.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, createDD);
-        }
+        
+        facetModel.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, createDD);
+        
 		
     	return dm;
     }
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ejb/operations/EJBProjectCreationOperationTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ejb/operations/EJBProjectCreationOperationTest.java
index 8081d44..659d670 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ejb/operations/EJBProjectCreationOperationTest.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/ejb/operations/EJBProjectCreationOperationTest.java
@@ -239,13 +239,11 @@
     		dm.setProperty(IJ2EEFacetProjectCreationDataModelProperties.ADD_TO_EAR, false);
     	}
     	
-        //this option only exists if JEE5
-        if(version == JavaEEFacetConstants.EJB_3){
             facetModel.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, createDD);
             
             IDataModel javaFacetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.JAVA);
             javaFacetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.JAVA_5);
-        }
+        
         
     	return dm;
 	}
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/j2ee/operations/JavaEEFacetConstants.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/j2ee/operations/JavaEEFacetConstants.java
index fc09809..3af1726 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/j2ee/operations/JavaEEFacetConstants.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/j2ee/operations/JavaEEFacetConstants.java
@@ -12,28 +12,33 @@
 	public static final IProjectFacetVersion APP_CLIENT_13 = APP_CLIENT_FACET.getVersion("1.3"); //$NON-NLS-1$
 	public static final IProjectFacetVersion APP_CLIENT_14 = APP_CLIENT_FACET.getVersion("1.4"); //$NON-NLS-1$
 	public static final IProjectFacetVersion APP_CLIENT_5 = APP_CLIENT_FACET.getVersion("5.0"); //$NON-NLS-1$
+	public static final IProjectFacetVersion APP_CLIENT_6 = APP_CLIENT_FACET.getVersion("6.0"); //$NON-NLS-1$
 	
 	public static final IProjectFacet EJB_FACET = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_EJB_MODULE); //$NON-NLS-1$
 	public static final IProjectFacetVersion EJB_11 = EJB_FACET.getVersion("1.1"); //$NON-NLS-1$
 	public static final IProjectFacetVersion EJB_2 = EJB_FACET.getVersion("2.0"); //$NON-NLS-1$
 	public static final IProjectFacetVersion EJB_21 = EJB_FACET.getVersion("2.1"); //$NON-NLS-1$
 	public static final IProjectFacetVersion EJB_3 = EJB_FACET.getVersion("3.0"); //$NON-NLS-1$
+	public static final IProjectFacetVersion EJB_31 = EJB_FACET.getVersion("3.1"); //$NON-NLS-1$
 	
 	public static final IProjectFacet WEB_FACET = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE); //$NON-NLS-1$
 	public static final IProjectFacetVersion WEB_22 = WEB_FACET.getVersion("2.2"); //$NON-NLS-1$
 	public static final IProjectFacetVersion WEB_23 = WEB_FACET.getVersion("2.3"); //$NON-NLS-1$
 	public static final IProjectFacetVersion WEB_24 = WEB_FACET.getVersion("2.4"); //$NON-NLS-1$
 	public static final IProjectFacetVersion WEB_25 = WEB_FACET.getVersion("2.5"); //$NON-NLS-1$
+	public static final IProjectFacetVersion WEB_30 = WEB_FACET.getVersion("3.0"); //$NON-NLS-1$
 	
 	public static final IProjectFacet CONNECTOR_FACET = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_CONNECTOR_MODULE); //$NON-NLS-1$
 	public static final IProjectFacetVersion CONNECTOR_1 = CONNECTOR_FACET.getVersion("1.0"); //$NON-NLS-1$
 	public static final IProjectFacetVersion CONNECTOR_15 = CONNECTOR_FACET.getVersion("1.5"); //$NON-NLS-1$
+	public static final IProjectFacetVersion CONNECTOR_16 = CONNECTOR_FACET.getVersion("1.6"); //$NON-NLS-1$
 	
 	public static final IProjectFacet EAR_FACET = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_EAR_MODULE); //$NON-NLS-1$
 	public static final IProjectFacetVersion EAR_12 = EAR_FACET.getVersion("1.2"); //$NON-NLS-1$
 	public static final IProjectFacetVersion EAR_13 = EAR_FACET.getVersion("1.3"); //$NON-NLS-1$
 	public static final IProjectFacetVersion EAR_14 = EAR_FACET.getVersion("1.4"); //$NON-NLS-1$
 	public static final IProjectFacetVersion EAR_5 = EAR_FACET.getVersion("5.0"); //$NON-NLS-1$
+	public static final IProjectFacetVersion EAR_6 = EAR_FACET.getVersion("6.0"); //$NON-NLS-1$
 	
 	public static final IProjectFacet JAVA_FACET = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_JAVA); //$NON-NLS-1$
 	public static final IProjectFacetVersion JAVA_13 = JAVA_FACET.getVersion("1.3"); //$NON-NLS-1$
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/plugin/AllPluginTests.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/plugin/AllPluginTests.java
index f4c8dee..abb97ef 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/plugin/AllPluginTests.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/plugin/AllPluginTests.java
@@ -25,6 +25,8 @@
 import org.eclipse.jst.j2ee.flexible.project.fvtests.ProjectMigrationTest;
 import org.eclipse.jst.jee.model.mergers.tests.MergersTestSuite;
 import org.eclipse.jst.jee.model.tests.AllAnnotationModelTests;
+import org.eclipse.jst.jee.model.tests.JEE5ModelTest;
+import org.eclipse.jst.jee.model.tests.JEE6ModelTest;
 import org.eclipse.jst.jee.model.tests.ModelProviderTest;
 import org.eclipse.wst.server.core.IRuntime;
 import org.eclipse.wst.server.core.IRuntimeType;
@@ -57,6 +59,8 @@
 	      addTest(org.eclipse.wtp.j2ee.headless.tests.utility.operations.AllTests.suite());
 	      addTest(org.eclipse.wtp.j2ee.headless.tests.j2ee.operations.SourceFolderUpdateTest.suite());
 	      addTest(org.eclipse.jst.j2ee.tests.modulecore.AllTests.suite());
+	      addTest(JEE5ModelTest.suite());
+	      addTest(JEE6ModelTest.suite());
 	      // model provider
 		  addTest(ModelProviderTest.suite());
 	      addTest(ProjectMigrationTest.suite());
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/web/operations/WebProjectCreationOperationTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/web/operations/WebProjectCreationOperationTest.java
index 9e2b297..6c0697e 100644
--- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/web/operations/WebProjectCreationOperationTest.java
+++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/wtp/j2ee/headless/tests/web/operations/WebProjectCreationOperationTest.java
@@ -428,13 +428,12 @@
     		facetModel.setStringProperty(IWebFacetInstallDataModelProperties.SOURCE_FOLDER, javaSrcDir);
     	}
     	
-    	//this option only exists if JEE5
-    	if(version == JavaEEFacetConstants.WEB_25){
+    	
     		facetModel.setBooleanProperty(IJ2EEFacetInstallDataModelProperties.GENERATE_DD, createDD);
     		
             IDataModel javaFacetModel = facetMap.getFacetDataModel(IJ2EEFacetConstants.JAVA);
             javaFacetModel.setProperty(IFacetDataModelProperties.FACET_VERSION, JavaEEFacetConstants.JAVA_5);
-    	}
+    	
     	
     	return dm;
     }