[264403] Performance issues with EAR and Web export containing binary jars
diff --git a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/internal/web/archive/operations/WebComponentExportOperation.java b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/internal/web/archive/operations/WebComponentExportOperation.java
index 38aae57..136167a 100644
--- a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/internal/web/archive/operations/WebComponentExportOperation.java
+++ b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/internal/web/archive/operations/WebComponentExportOperation.java
@@ -49,11 +49,12 @@
 				CommonarchiveFactory caf = ((CommonarchivePackage) EPackage.Registry.INSTANCE.getEPackage(CommonarchivePackage.eNS_URI)).getCommonarchiveFactory();
 				WebComponentLoadStrategyImpl ls = new WebComponentLoadStrategyImpl(getComponent());
 				ls.setExportSource(isExportSource());
+				ls.setReadOnly(true);
 				setModuleFile(caf.openWARFile(ls, getDestinationPath().toOSString()));
+				getModuleFile().getOptions().setIsReadOnly(true);
 				ls.setProgressMonitor(subMonitor);
 				getModuleFile().saveAsNoReopen(getDestinationPath().toOSString());
 			}
-			
 		} catch (SaveFailureException ex) {
 			throw ex;
 		} catch (Exception e) {
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentExportOperation.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentExportOperation.java
index 2a1bd22..5a26386 100644
--- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentExportOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentExportOperation.java
@@ -17,7 +17,7 @@
 import org.eclipse.core.runtime.SubProgressMonitor;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.SaveFailureException;
-import org.eclipse.jst.j2ee.componentcore.EnterpriseArtifactEdit;
+import org.eclipse.jst.j2ee.componentcore.util.EARArtifactEdit;
 import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
 import org.eclipse.jst.j2ee.internal.archive.JavaEEArchiveUtilities;
 import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
@@ -43,10 +43,10 @@
 				archiveFromComponent = JavaEEArchiveUtilities.INSTANCE.openArchive(getComponent());
 				saveArchive(archiveFromComponent, getDestinationPath().toOSString(), subMonitor);
 			} else {
-				EnterpriseArtifactEdit artifactEdit = null;
+				EARArtifactEdit artifactEdit = null;
 				try {
-					artifactEdit = (EnterpriseArtifactEdit) ComponentUtilities.getArtifactEditForRead(getComponent());
-					EARFile archive = (EARFile) artifactEdit.asArchive(isExportSource());
+					artifactEdit = (EARArtifactEdit) ComponentUtilities.getArtifactEditForRead(getComponent());
+					EARFile archive = (EARFile) artifactEdit.asArchive(isExportSource(), true, true);
 					String destination = getDestinationPath().toOSString();
 					archive.setURI(destination);
 					setModuleFile(archive);