[175139] IModel api additions
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 d1aad50..3fb41c3 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
@@ -26,6 +26,7 @@
 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.client.ApplicationClient;
 import org.eclipse.jst.j2ee.earcreation.IEarFacetInstallDataModelProperties;
 import org.eclipse.jst.j2ee.ejb.project.operations.IEjbFacetInstallDataModelProperties;
 import org.eclipse.jst.j2ee.internal.J2EEConstants;
@@ -457,4 +458,71 @@
 	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);
+			final IModelProvider provider = ModelProviderManager.getModelProvider(appClientProj);
+			
+			// Test getting model through path api.
+			ApplicationClient client = (ApplicationClient)provider.getModelObject(new Path(J2EEConstants.APP_CLIENT_DD_URI));
+			
+			
+			provider.modify(new Runnable() {
+				public void run() {
+					ApplicationClient client = (ApplicationClient)provider.getModelObject();
+	//				if (ear.getDescriptions().isEmpty())
+	//					ear.getDescriptions().add(CommonFactory.eINSTANCE.createDescription());
+					client.setDescription(descText);
+					
+				}
+			}
+				, null);
+			
+			//Close project to force flush
+			appClientProj.close(new NullProgressMonitor());
+			//Re-open project
+			appClientProj.open(new NullProgressMonitor());
+			
+			
+			IModelProvider newProvider = ModelProviderManager.getModelProvider(appClientProj);
+			ApplicationClient sameEar = (ApplicationClient)newProvider.getModelObject();
+			org.eclipse.jst.j2ee.common.Description desc = (org.eclipse.jst.j2ee.common.Description)sameEar.getDescriptions().get(0);
+			Assert.assertEquals(descText, desc.getValue());
+		}
+
+	public void testUseAppClient5Model() throws Exception {
+	
+			String projName = "TestEE5AppClientProject";//$NON-NLS-1$
+			IProject appClientProj = createAppClientProject(projName, J2EEVersionConstants.JEE_5_0_ID);
+			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);
+					
+				}
+			}
+				, 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());
+		}
 }