Archivist archivist, ReadableArchive sourceArchive, ApplicationHolder holder) throws IOException {
//Note in copying of deployment plan to the portable archive,
//we should make sure the manifest in the deployment plan jar
//file does not overwrite the one in the original archive
if (deploymentPlan != null) {
DeploymentPlanArchive dpa = new DeploymentPlanArchive();
dpa.setParentArchive(sourceArchive);
dpa.open(deploymentPlan.toURI());
// need to revisit for ear case
WritableArchive targetArchive = archiveFactory.createArchive(
sourceArchive.getURI());
if (archivist instanceof ApplicationArchivist) {
((ApplicationArchivist)archivist).copyInto(holder.app, dpa, targetArchive, false);