simple test of locked IO based on ArchiveWatcher. Extend this to quickly incorporate...
[vamsas.git] / src / org / vamsas / test / simpleclient / ArchiveClient.java
1 /**
2  * 
3  */
4 package org.vamsas.test.simpleclient;
5
6 import java.io.File;
7
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10 import org.vamsas.client.ClientHandle;
11 import org.vamsas.client.UserHandle;
12 import org.vamsas.client.simpleclient.FileWatcher;
13 import org.vamsas.client.simpleclient.SessionFile;
14 import org.vamsas.client.simpleclient.VamsasArchive;
15 import org.vamsas.client.simpleclient.VamsasFile;
16
17 /**
18  * @author jimp
19  *  test the VamsasFile routines for watching, reading and updating a vamsas document jar file.
20  */
21 public class ArchiveClient {
22   Log log = LogFactory.getLog(ArchiveClient.class);
23   UserHandle user=null;
24   ClientHandle me = new ClientHandle("ArchiveClient","0.01");
25   VamsasFile vsess;
26   
27   /**
28    * @param user
29    * @param vsess
30    */
31   public ArchiveClient(UserHandle user, VamsasFile vsess) {
32     super();
33     this.user = user;
34     this.vsess = vsess;
35   }
36   public ArchiveClient(String username, String organization, String vsess) {
37     super();
38     this.user = new UserHandle(username, organization);
39     try {
40       this.vsess = new VamsasFile(new File(vsess));
41     } catch (Exception e) {
42       log.error("Couldn't open session on file "+vsess,e);
43       this.vsess=null;
44     }
45   }
46   public void valid() {
47     if (vsess==null)
48       throw new Error("ArchiveClient instance is invalid!.");
49   }
50   /**
51    * 
52    * @param time - length of time to watch for.
53    * @return IO interface for session document.
54    */
55   public VamsasArchive watch(long time) {
56     valid();
57     // wait around watching for a change.
58     VamsasArchive varch=null;
59     // FileWatcher w = new FileWatcher(vsess);
60     return varch;
61   }
62   
63   /**
64    * @param args
65    */
66   public static void usage() {
67     throw new Error("Usage: Username Organization VamsasFile [command,args]*");
68   }
69   public static void main(String[] args) {
70     // really simple.
71     if (args.length<3)
72       usage();
73     ArchiveClient client = new ArchiveClient(args[0],args[1], args[2]);
74     
75   }
76
77 }