package org.vamsas.test.simpleclient;
-import java.io.BufferedInputStream;
import java.io.File;
-import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
-import java.io.PrintWriter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.vamsas.client.simpleclient.*;
+import org.vamsas.client.simpleclient.VamsasArchiveReader;
import org.vamsas.objects.core.ApplicationData;
import org.vamsas.objects.core.User;
import org.vamsas.objects.core.VAMSAS;
else
log.info(av+" has been backed up as "+backup);
if (backup!=null) {
- log.info("Backup "+backup+" is being written to.");
+ File newf=new File(av.getAbsolutePath()+"_new.zip");
+ log.info("Now writing new Archive "+newf.getAbsolutePath());
+ org.vamsas.client.simpleclient.VamsasArchive va = new org.vamsas.client.simpleclient.VamsasArchive(newf, true);
// open another and...
ApplicationData appdata = new ApplicationData();
appdata.setName("org.vamsas.test.simpleclient.VamsasArchive");
String appdata_ref = "vamsas:org.vamsas.test.simpleclient.VamsasArchive/"+apuser.getOrganization()+"/"+apuser.getFullname();
- File newf=new File(av.getAbsolutePath()+"_new.zip");
- org.vamsas.client.simpleclient.VamsasArchive va = new org.vamsas.client.simpleclient.VamsasArchive(newf, true);
- log.info("Getting the document from the backup-original.");
- VamsasDocument vadoc;
VamsasArchiveReader vread = va.getOriginalArchiveReader();
- vadoc = doc; // putting original data into new archive.
- log.info("Got document. Adding stuff.");
if (vread!=null) {
+ log.info("Reading (and avoiding references to) original data in "+newf);
if (vread.getAppdataStream(appdata_ref)!=null) {
int i=0;
while (vread.getAppdataStream(appdata_ref+"/"+Integer.toString(++i))!=null)
appdata_ref+="/"+Integer.toString(i);
}
}
+
+ log.info("Adding new data stuff.");
log.info("Writing an apdata reference using AppDataStream interface.");
apuser.setDataReference(appdata_ref);
appdata.addUser(apuser);
appdata.setVersion("noggin");
appdata.setUrn("program:/the.nog/");
- // TODO: FIX schema - User.addUser is unsatisfiable!
ObjectOutputStream apdos = new ObjectOutputStream(va.getAppDataStream(appdata_ref));
apdos.writeObject(appdata_ref);
apdos.writeObject(apuser); // some random content
log.info("Preparing to write new document.");
doc.addApplicationData(appdata);
doc.addVAMSAS(Core.getDemoVamsas());
-
+ // TODO: ensure all jar entries are transferred over (at least those that are referenced - make a flag for 'tidy zip manifest'.
va.putVamsasDocument(doc); // gets stream and puts it.
// TODO: verify that the vxml stream close method overridden ?
va.closeArchive();
log.info("Dump of new vamsas document :");
va = new org.vamsas.client.simpleclient.VamsasArchive(newf, true); // TODO - refactor Reader class to have deserializing helpers
ArchiveReports.reportDocument(va.getVamsasDocument(), va.getOriginalArchiveReader(), true);
+ log.info("Cancelling write (which was necessary to dump new vamsas document!)");
+ va.cancelArchive();
// backup.delete(); // tidy up
}
log.info("Now Cancelling write to original archive "+av);