refactoring org to uk
[vamsas.git] / src / org / vamsas / test / simpleclient / VamsasArchive.java
index 9b242c0..c98b4b7 100644 (file)
@@ -5,23 +5,24 @@ import java.io.ObjectOutputStream;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.vamsas.client.simpleclient.Lock;
-import org.vamsas.client.simpleclient.SessionFile;
-import org.vamsas.client.simpleclient.SimpleDocument;
-import org.vamsas.client.simpleclient.VamsasArchiveReader;
-import org.vamsas.client.simpleclient.VamsasFile;
-import org.vamsas.objects.core.ApplicationData;
-import org.vamsas.objects.core.User;
-import org.vamsas.objects.core.VAMSAS;
-import org.vamsas.objects.core.VamsasDocument;
 import org.vamsas.test.objects.Core;
 
+import uk.ac.vamsas.client.simpleclient.Lock;
+import uk.ac.vamsas.client.simpleclient.SessionFile;
+import uk.ac.vamsas.client.simpleclient.SimpleDocument;
+import uk.ac.vamsas.client.simpleclient.VamsasArchiveReader;
+import uk.ac.vamsas.client.simpleclient.VamsasFile;
+import uk.ac.vamsas.objects.core.ApplicationData;
+import uk.ac.vamsas.objects.core.User;
+import uk.ac.vamsas.objects.core.VAMSAS;
+import uk.ac.vamsas.objects.core.VamsasDocument;
+
 public class VamsasArchive {
   /**
    * test the org.vamsas.simpleclient.vamsasArchive class
    */
   static Log log = LogFactory.getLog(VamsasArchive.class);
-  public static ApplicationData makeDemoAppdata(org.vamsas.client.simpleclient.VamsasArchive va, String apname, String userName, String userOrg) {
+  public static ApplicationData makeDemoAppdata(uk.ac.vamsas.client.simpleclient.VamsasArchive va, String apname, String userName, String userOrg) {
     if (va==null)
       return null;
     VamsasArchiveReader vread=null;
@@ -79,7 +80,7 @@ public class VamsasArchive {
     apuser.setDataReference(appdata_ref);
     appdata.addUser(apuser);
     appdata.setVersion("noggin");
-    appdata.setUrn("program:/the.nog/");
+    //TODO: write instance appdata  appdata.setUrn("program:/the.nog/");
     try {
       ObjectOutputStream ost = new ObjectOutputStream(va.getAppDataStream(appdata_ref));
       ost.writeObject(appdata);
@@ -98,7 +99,7 @@ public class VamsasArchive {
       else
         av = new File("test/vamsas.zip");
       log.info("Opening archive "+av);
-      org.vamsas.client.simpleclient.VamsasArchive varchive = new org.vamsas.client.simpleclient.VamsasArchive(av, true);
+      uk.ac.vamsas.client.simpleclient.VamsasArchive varchive = new uk.ac.vamsas.client.simpleclient.VamsasArchive(av, true);
       
       VAMSAS[] roots = (VAMSAS[]) varchive.getOriginalRoots();
       
@@ -125,12 +126,18 @@ public class VamsasArchive {
         }
         while (newf.exists()); 
       } */
+      if (newf.exists()) {
+        log.info("Removing existing "+newf);
+        newf.delete();
+      }
+        
       log.info("Now writing new Archive into "+newf.getAbsolutePath());
-      org.vamsas.client.simpleclient.VamsasArchive va=null;
+      uk.ac.vamsas.client.simpleclient.VamsasArchive va=null;
       { // hold lock over deletion and write of new archive.
         //Lock wlock = sfile.getLock();
         //newf.delete(); // clear out old file.
-        va = new org.vamsas.client.simpleclient.VamsasArchive(newf, true, true); // , sfile);
+        sfile.getLock();
+        va = new uk.ac.vamsas.client.simpleclient.VamsasArchive(newf, true, true, sfile);
         // open another and...
         ApplicationData appdata = makeDemoAppdata(va, 
             "org.vamsas.test.simpleclient.VamsasArchive", "arnold Bugger esq", "disOrganised");
@@ -146,9 +153,11 @@ public class VamsasArchive {
       {
         Lock lock=sfile.getLock();
         if (lock==null)
-          while ((lock=sfile.getLock())==null)
+          while ((lock=sfile.getLock())==null) {
             log.info("Waiting for lock.");
-        VamsasArchiveReader vreader = new VamsasArchiveReader(newf);
+            Thread.sleep(100);
+          }
+        VamsasArchiveReader vreader = new VamsasArchiveReader(sfile.getVamsasFile());// lock); // cannot do new JarFile on a locked file. // newf);
         SimpleDocument sdoc = new SimpleDocument("testing new vamsas write");
         ArchiveReports.reportDocument(sdoc.getVamsasDocument(vreader), vreader, true, System.out);
         sfile.unLock();
@@ -162,7 +171,7 @@ public class VamsasArchive {
         log.info("Didn't cancel.");
       long t=System.currentTimeMillis()+200; while (t>System.currentTimeMillis());
       log.info("Now testing archive update.");
-      va = new org.vamsas.client.simpleclient.VamsasArchive(newf, false, true, sfile);
+      va = new uk.ac.vamsas.client.simpleclient.VamsasArchive(newf, false, true, sfile);
       doc = va.getVamsasDocument();
       doc.addVAMSAS(Core.getDemoVamsas());
       doc.addApplicationData(makeDemoAppdata(va, 
@@ -173,17 +182,22 @@ public class VamsasArchive {
         log.warn("No appdatas were transferred. This is wrong.");
       va.putVamsasDocument(doc);
       va.closeArchive();
+      sfile.unLock();
       log.info("Testing update: ");
       {
         Lock lock=sfile.getLock();
         if (lock==null)
           while ((lock=sfile.getLock())==null)
             log.info("Waiting for lock.");
+        // VamsasArchiveReader vreader = new VamsasArchiveReader(lock);
         VamsasArchiveReader vreader = new VamsasArchiveReader(newf);
+        
         SimpleDocument sdoc = new SimpleDocument("testing vamsas update");
-        ArchiveReports.reportDocument(sdoc.getVamsasDocument(vreader), vreader, true, System.out);
-        lock.release();
-        lock = null;
+        VamsasDocument finaldoc = sdoc.getVamsasDocument(vreader);
+        if (finaldoc!=null)
+          ArchiveReports.reportDocument(finaldoc, vreader, true, System.out);
+        else 
+          log.error("Null Document Read from "+newf);
       }
     } catch (Exception e) {
       e.printStackTrace(System.err);