[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);