[103499] Fixing Junits
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/datamodel/properties/IJ2EEComponentExportDataModelProperties.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/datamodel/properties/IJ2EEComponentExportDataModelProperties.java
index 15912f5..1b55237 100644
--- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/datamodel/properties/IJ2EEComponentExportDataModelProperties.java
+++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/datamodel/properties/IJ2EEComponentExportDataModelProperties.java
@@ -37,7 +37,7 @@
     /**
      * Required, type String. The user defined name of the component to be exported.
      */
-  //  public static final String PROJECT_NAME = "IJ2EEComponentExportDataModelProperties.PROJECT_NAME"; //$NON-NLS-1$
+    public static final String PROJECT_NAME = "IJ2EEComponentExportDataModelProperties.PROJECT_NAME"; //$NON-NLS-1$
     /**
      * Required, type IPath.  The user defined export location including fully qualified Path and archive file
      * to be created name. 
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/J2EEArtifactExportOperation.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/J2EEArtifactExportOperation.java
index 881128d..24621e6 100644
--- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/J2EEArtifactExportOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/J2EEArtifactExportOperation.java
@@ -32,11 +32,13 @@
 import org.eclipse.core.runtime.jobs.ISchedulingRule;
 import org.eclipse.core.runtime.jobs.MultiRule;
 import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jst.common.componentcore.util.ComponentUtilities;
+import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.SaveFailureException;
 import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEComponentExportDataModelProperties;
 import org.eclipse.jst.j2ee.internal.plugin.LibCopyBuilder;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.resources.IFlexibleProject;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
@@ -59,13 +61,13 @@
 	}
 
 	public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-		setComponent(ComponentUtilities.getComponent(model.getStringProperty(IJ2EEComponentExportDataModelProperties.COMPONENT_NAME))[0]);
+
 		setDestinationPath(new Path(model.getStringProperty(IJ2EEComponentExportDataModelProperties.ARCHIVE_DESTINATION)));
 		setExportSource(model.getBooleanProperty(IJ2EEComponentExportDataModelProperties.EXPORT_SOURCE_FILES));
 		try {
 			setProgressMonitor(monitor);
 			// defect 240999
-			component.getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
+			getComponent().getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
 			if (model.getBooleanProperty(IJ2EEComponentExportDataModelProperties.RUN_BUILD)) {
 				runNecessaryBuilders(component, monitor);
 			}
@@ -93,9 +95,17 @@
 	}
 
 	protected IVirtualComponent getComponent() {
-		if (component == null)
-			component = ComponentUtilities.getComponent(model.getStringProperty(IJ2EEComponentExportDataModelProperties.COMPONENT_NAME))[0];
-		return component;
+		if (component == null) {
+			component = getComponent(model.getStringProperty(IJ2EEComponentExportDataModelProperties.COMPONENT_NAME),model.getStringProperty(IJ2EEComponentExportDataModelProperties.PROJECT_NAME));
+		}
+			return component;
+	}
+
+	private IVirtualComponent getComponent(String compName, String projName) {
+		IProject proj = ProjectUtilities.getProject(projName);
+		IFlexibleProject flexProj = ComponentCore.createFlexibleProject(proj);
+		IVirtualComponent comp = flexProj.getComponent(compName);
+		return comp;
 	}
 
 	protected IPath getDestinationPath() {
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactExportDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactExportDataModelProvider.java
index e85903b..82d6d17 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactExportDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactExportDataModelProvider.java
@@ -34,7 +34,7 @@
     }
 
     public String[] getPropertyNames() {
-        return new String[] { COMPONENT_NAME, ARCHIVE_DESTINATION, EXPORT_SOURCE_FILES, OVERWRITE_EXISTING, RUN_BUILD };
+        return new String[] { COMPONENT_NAME, PROJECT_NAME,  ARCHIVE_DESTINATION, EXPORT_SOURCE_FILES, OVERWRITE_EXISTING, RUN_BUILD };
     }
 
     protected abstract String getComponentID();
@@ -55,6 +55,20 @@
         }
         return super.getDefaultProperty(propertyName);
     }
+    public boolean propertySet(String propertyName, Object propertyValue) {
+		boolean set = super.propertySet(propertyName, propertyValue);
+		if (propertyName.equals(COMPONENT_NAME)) {
+			IVirtualComponent[] comps = ComponentUtilities.getAllWorkbenchComponents();
+			for (int i = 0; i < comps.length; i++) {
+				IVirtualComponent component = comps[i];
+				if (component.getName().equals(propertyValue)) {
+					setProperty(PROJECT_NAME,component.getProject().getName());
+					break;
+				}
+			}
+		}
+		return set;
+    }
 
     /**
      * Populate the resource name combo with connector projects that are not encrypted.