refactoring org to uk
[vamsas.git] / src / org / vamsas / test / simpleclient / ArchiveClient.java
index f0b2e16..dec872a 100644 (file)
@@ -13,32 +13,33 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.exolab.castor.xml.MarshalException;
 import org.exolab.castor.xml.ValidationException;
-import org.vamsas.client.ClientHandle;
-import org.vamsas.client.IVorbaIdFactory;
-import org.vamsas.client.SessionHandle;
-import org.vamsas.client.UserHandle;
-import org.vamsas.client.Vobject;
-import org.vamsas.client.VorbaId;
-import org.vamsas.client.simpleclient.AppDataOutputStream;
-import org.vamsas.client.simpleclient.FileWatcher;
-import org.vamsas.client.simpleclient.IdFactory;
-import org.vamsas.client.simpleclient.SessionFile;
-import org.vamsas.client.simpleclient.SimpleDocBinding;
-import org.vamsas.client.simpleclient.SimpleDocument;
-import org.vamsas.client.simpleclient.VamsasArchive;
-import org.vamsas.client.simpleclient.VamsasArchiveReader;
-import org.vamsas.client.simpleclient.VamsasFile;
-import org.vamsas.objects.core.AppData;
-import org.vamsas.objects.core.ApplicationData;
-import org.vamsas.objects.core.User;
-import org.vamsas.objects.core.VamsasDocument;
-import org.vamsas.objects.utils.AppDataReference;
-import org.vamsas.objects.utils.DocumentStuff;
-import org.vamsas.objects.utils.ProvenanceStuff;
-import org.vamsas.objects.utils.SeqSet;
-import org.vamsas.objects.utils.document.VersionEntries;
 import org.vamsas.test.objects.Core;
 
+import uk.ac.vamsas.client.ClientHandle;
+import uk.ac.vamsas.client.IVorbaIdFactory;
+import uk.ac.vamsas.client.SessionHandle;
+import uk.ac.vamsas.client.UserHandle;
+import uk.ac.vamsas.client.Vobject;
+import uk.ac.vamsas.client.VorbaId;
+import uk.ac.vamsas.client.simpleclient.AppDataOutputStream;
+import uk.ac.vamsas.client.simpleclient.FileWatcher;
+import uk.ac.vamsas.client.simpleclient.IdFactory;
+import uk.ac.vamsas.client.simpleclient.SessionFile;
+import uk.ac.vamsas.client.simpleclient.SimpleDocBinding;
+import uk.ac.vamsas.client.simpleclient.SimpleDocument;
+import uk.ac.vamsas.client.simpleclient.VamsasArchive;
+import uk.ac.vamsas.client.simpleclient.VamsasArchiveReader;
+import uk.ac.vamsas.client.simpleclient.VamsasFile;
+import uk.ac.vamsas.objects.core.AppData;
+import uk.ac.vamsas.objects.core.ApplicationData;
+import uk.ac.vamsas.objects.core.User;
+import uk.ac.vamsas.objects.core.VamsasDocument;
+import uk.ac.vamsas.objects.utils.AppDataReference;
+import uk.ac.vamsas.objects.utils.DocumentStuff;
+import uk.ac.vamsas.objects.utils.ProvenanceStuff;
+import uk.ac.vamsas.objects.utils.SeqSet;
+import uk.ac.vamsas.objects.utils.document.VersionEntries;
+
 /**
  * @author jimp
  *  test the VamsasFile routines for watching, reading and updating a vamsas document jar file.
@@ -101,7 +102,7 @@ public class ArchiveClient extends IdFactory {
     watchForChange=true;
     long endtime=System.currentTimeMillis()+time;
     try {
-      org.vamsas.client.simpleclient.Lock doclock;
+      uk.ac.vamsas.client.simpleclient.Lock doclock;
       do {
         doclock=watcher.getChangedState();
         if (doclock==null)
@@ -110,9 +111,9 @@ public class ArchiveClient extends IdFactory {
       if (doclock==null)
         return null;
       else {
-        doclock = vsess.getLock(doclock);
-        VamsasArchiveReader varc = new VamsasArchiveReader(vsess.getVamsasFile());
-        return _getReadonly(varc);
+        return getUpdateable(vsess.getLock(doclock));
+        /*VamsasArchiveReader varc = new VamsasArchiveReader(vsess.getVamsasFile());
+        return _getReadonly(varc);*/
       }
     } catch (Exception e) {
       log.error("Whilst watching file "+vsess.getVamsasFile(), e);
@@ -175,12 +176,15 @@ public class ArchiveClient extends IdFactory {
   }
   
   public ClientDoc getUpdateable() {
+    return getUpdateable(null);
+  }
+  public ClientDoc getUpdateable(uk.ac.vamsas.client.simpleclient.Lock lock) {
+    getVorbaIdHash().clear();
     valid();
     try {
       // patiently wait for a lock on the document.
       long tries=5000;
-      org.vamsas.client.simpleclient.Lock lock;
-      while (((lock=vsess.getLock())==null || !lock.isLocked()) && --tries>0) {
+      while (lock==null && ((lock=vsess.getLock())==null || !lock.isLocked()) && --tries>0) {
 //        Thread.sleep(1);
         log.debug("Trying to get a document lock for the "+tries+"'th time.");
       }
@@ -227,6 +231,7 @@ public class ArchiveClient extends IdFactory {
       cdoc.updateDocumentRoots();
       cdoc.iohandler.putVamsasDocument(cdoc.doc);
       cdoc.iohandler.closeArchive();
+      this.extantids.clear();// we forget our ids after we close the document.
       cdoc.iohandler=null;
       cdoc = null;
       vsess.unLock();
@@ -263,7 +268,7 @@ public class ArchiveClient extends IdFactory {
       int u=5;
       while (--u>0) {
         System.out.println("Watch for more... ("+u+" left)");
-        ClientDoc ucdoc = client.watch(50000);
+        ClientDoc ucdoc = client.watch(0000);
         if (ucdoc!=null) {
           System.out.println("****\nUpdate detected at "+new Date());
           ArchiveReports.reportDocument(ucdoc.doc, ucdoc.getReader(), true, System.out);
@@ -279,7 +284,7 @@ public class ArchiveClient extends IdFactory {
     }
     System.out.println("Finished at "+new Date());
   }
-  public org.vamsas.client.Vobject getObject(VorbaId id) {
+  public uk.ac.vamsas.client.Vobject getObject(VorbaId id) {
     Hashtable idhash = this.getVorbaIdHash();
     if (idhash!=null && idhash.containsKey(id))
       return (Vobject) idhash.get(id);