205602 EAR import not importing manifest file
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentSaveStrategyImpl.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentSaveStrategyImpl.java index f3e8c72..ac44bd8 100644 --- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentSaveStrategyImpl.java +++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentSaveStrategyImpl.java
@@ -12,6 +12,7 @@ import java.io.FileNotFoundException; import java.io.IOException; +import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -22,19 +23,26 @@ import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jem.util.emf.workbench.WorkbenchByteArrayOutputStream; +import org.eclipse.jem.util.logger.proxy.Logger; import org.eclipse.jem.workbench.utility.JemProjectUtilities; import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive; import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile; import org.eclipse.jst.j2ee.commonarchivecore.internal.File; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.SaveFailureException; +import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest; import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil; import org.eclipse.jst.j2ee.datamodel.properties.IEARComponentImportDataModelProperties; import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEComponentImportDataModelProperties; +import org.eclipse.jst.j2ee.internal.J2EEConstants; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; +import org.eclipse.wst.common.componentcore.resources.IVirtualFile; +import org.eclipse.wst.common.componentcore.resources.IVirtualFolder; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; import org.eclipse.wst.common.frameworks.internal.DoNotUseMeThisWillBeDeletedPost15; @@ -243,5 +251,24 @@ updateProjectClasspath(anArchive, component); } } + + public void save(ArchiveManifest aManifest) throws SaveFailureException { + IVirtualFolder rootFolder = vComponent.getRootFolder(); + IVirtualFile vFile = rootFolder.getFile(new Path(J2EEConstants.MANIFEST_URI)); + IFile iFile = vFile.getUnderlyingFile(); + validateEdit(iFile); + OutputStream out = new WorkbenchByteArrayOutputStream(iFile); + try { + aManifest.write(out); + } catch (IOException e) { + Logger.getLogger().logError(e); + } finally { + try { + out.close(); + } catch (IOException e) { + Logger.getLogger().logError(e); + } + } + } }