fixed the User element and the form of the ApplicationData dataType.xsd definition.
[vamsas.git] / src / org / vamsas / test / simpleclient / VamsasArchive.java
index ceae705..91dc35e 100644 (file)
@@ -10,7 +10,6 @@ import java.io.PrintWriter;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.vamsas.client.simpleclient.*;
-import org.vamsas.objects.core.AppDataChoice;
 import org.vamsas.objects.core.ApplicationData;
 import org.vamsas.objects.core.User;
 import org.vamsas.objects.core.VAMSAS;
@@ -55,33 +54,35 @@ public class VamsasArchive {
         // open another and...
         ApplicationData appdata = new ApplicationData();
         appdata.setName("org.vamsas.test.simpleclient.VamsasArchive");
-        appdata.setAppDataChoice(new AppDataChoice());
-        appdata.getAppDataChoice().setData(new String("this is some test data.").getBytes());
+        appdata.setData(new String("this is some test data.").getBytes());
         User apuser = new User();
         apuser.setFullname("arnold Bugger esq");
         apuser.setOrganization("disOrganised");
         String appdata_ref = "vamsas:org.vamsas.test.simpleclient.VamsasArchive/"+apuser.getOrganization()+"/"+apuser.getFullname();
-        org.vamsas.client.simpleclient.VamsasArchive va = new org.vamsas.client.simpleclient.VamsasArchive(backup, true);
+
+        
+        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 = va.getVamsasDocument();
+        vadoc = doc; // putting original data into new archive.
         log.info("Got document. Adding stuff.");
-        
-        if (vread.getAppdataStream(appdata_ref)!=null) {
-          int i=0;
-          while (vread.getAppdataStream(appdata_ref+"/"+Integer.toString(++i))!=null)
+        if (vread!=null) {
+          if (vread.getAppdataStream(appdata_ref)!=null) {
+            int i=0;
+            while (vread.getAppdataStream(appdata_ref+"/"+Integer.toString(++i))!=null)
               ;
-          appdata_ref+="/"+Integer.toString(i);
+            appdata_ref+="/"+Integer.toString(i);
+          }
         }
         log.info("Writing an apdata reference using AppDataStream interface.");
-        apuser.setAppDataChoice(new AppDataChoice());
-        apuser.getAppDataChoice().setDataReference(appdata_ref);
+        apuser.setDataReference(appdata_ref);
         appdata.addUser(apuser);
-        // TODO: FIX CYCLIC __ensure+instance_ids
+        appdata.setVersion("noggin");
+        appdata.setUrn("program:/the.nog/");
         // TODO: FIX schema - User.addUser is unsatisfiable!
-        apuser.addUser(apuser);
         ObjectOutputStream apdos = new ObjectOutputStream(va.getAppDataStream(appdata_ref));
         apdos.writeObject(appdata_ref);
         apdos.writeObject(apuser); // some random content
@@ -90,11 +91,13 @@ public class VamsasArchive {
         log.info("Preparing to write new document.");
         doc.addApplicationData(appdata);
         doc.addVAMSAS(Core.getDemoVamsas());
+        
         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(backup, true); // TODO - refactor Reader class to have deserializing helpers
+        va = new org.vamsas.client.simpleclient.VamsasArchive(newf, true); // TODO - refactor Reader class to have deserializing helpers
         ArchiveReports.reportDocument(va.getVamsasDocument(), va.getOriginalArchiveReader(), true);
         // backup.delete(); // tidy up
       }