[nobug] model-provider patches
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddComponentToEnterpriseApplicationOp.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddComponentToEnterpriseApplicationOp.java
index ff978e0..df7c4b8 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddComponentToEnterpriseApplicationOp.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddComponentToEnterpriseApplicationOp.java
@@ -42,19 +42,14 @@
 import org.eclipse.jst.jee.application.ICommonApplication;
 import org.eclipse.jst.jee.application.ICommonModule;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.common.componentcore.ArtifactEdit;
 import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
-import org.eclipse.wst.common.componentcore.internal.ArtifactEditModel;
 import org.eclipse.wst.common.componentcore.internal.ReferencedComponent;
 import org.eclipse.wst.common.componentcore.internal.StructureEdit;
 import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
 import org.eclipse.wst.common.componentcore.internal.operation.CreateReferenceComponentsOp;
-import org.eclipse.wst.common.componentcore.internal.util.ComponentUtilities;
 import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.internal.emfworkbench.integration.EditModel;
-import org.eclipse.wst.common.internal.emfworkbench.validateedit.IValidateEditContext;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
 import org.eclipse.wst.common.project.facet.core.IProjectFacet;
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
@@ -300,20 +295,6 @@
 	}
 	
 	protected IStatus validateEdit() {
-		IStatus status = super.validateEdit();
-		if (status.isOK()) {
-			IValidateEditContext validator = (IValidateEditContext) UIContextDetermination.createInstance(IValidateEditContext.CLASS_KEY);
-			IVirtualComponent sourceComp = (IVirtualComponent) model.getProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT);
-			IProject project = sourceComp.getProject();
-			ArtifactEdit edit = null;
-			try {
-				edit = ComponentUtilities.getArtifactEditForWrite(sourceComp);
-				status = validator.validateState((EditModel) edit.getAdapter(ArtifactEditModel.ADAPTER_TYPE));
-			} finally {
-				if (edit != null)
-					edit.dispose();
-			}
-		}
-		return status;
+		return validateEditEAR();
 	}
 }
diff --git a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/project/facet/EarCreateDeploymentFilesOperation.java b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/project/facet/EarCreateDeploymentFilesOperation.java
index 657ea84..7b12a66 100644
--- a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/project/facet/EarCreateDeploymentFilesOperation.java
+++ b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/project/facet/EarCreateDeploymentFilesOperation.java
@@ -25,29 +25,30 @@
 		super(model);
 	}
 	
-	protected void createDeploymentFiles(IProject project, IProgressMonitor monitor) {
+	protected void createDeploymentFiles(IProject project, final IProgressMonitor monitor) {
 		final IVirtualComponent component = ComponentCore.createComponent(project);
 		final IModelProvider provider = ModelProviderManager.getModelProvider(project);
 			provider.modify(new Runnable(){
 				public void run() {
+					IVirtualReference[] componentReferences = J2EEProjectUtilities.getJ2EEModuleReferences(component);
+					if(componentReferences != null && componentReferences.length > 0){					
+						final IDataModel dataModel = DataModelFactory.createDataModel(new AddComponentToEnterpriseApplicationDataModelProvider());
+						dataModel.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, component);
+						List modList = (List) dataModel.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
+						for(int i = 0; i < componentReferences.length; i++) {
+							IVirtualComponent referencedComponent = componentReferences[i].getReferencedComponent();
+							modList.add(referencedComponent);
+						}
+						dataModel.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, modList);
+						try {
+							dataModel.getDefaultOperation().execute(monitor, null);
+						} catch (ExecutionException e) {
+							Logger.getLogger().logError(e);
+						}
+					}
 				}
 			}, IModelProvider.FORCESAVE);
-			IVirtualReference[] componentReferences = J2EEProjectUtilities.getJ2EEModuleReferences(component);
-			if(componentReferences != null && componentReferences.length > 0){					
-				final IDataModel dataModel = DataModelFactory.createDataModel(new AddComponentToEnterpriseApplicationDataModelProvider());
-				dataModel.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, component);
-				List modList = (List) dataModel.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
-				for(int i = 0; i < componentReferences.length; i++) {
-					IVirtualComponent referencedComponent = componentReferences[i].getReferencedComponent();
-					modList.add(referencedComponent);
-				}
-				dataModel.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, modList);
-				try {
-					dataModel.getDefaultOperation().execute(monitor, null);
-				} catch (ExecutionException e) {
-					Logger.getLogger().logError(e);
-				}
-			}	
+				
 		
 	}