VamsasArchive tested. Locked IO routines to be implemented in ArchiveFile
[vamsas.git] / src / org / vamsas / client / simpleclient / VamsasSession.java
index e74c458..ef76d71 100644 (file)
@@ -1,6 +1,43 @@
 package org.vamsas.client.simpleclient;
 
 import java.io.File;
+/**
+ * 
+ * Vamsas client is intialised with a path to create live session directories. 
+ * This path may contain a vamsas.properties file 
+ * that sets additional parameters (otherwise client 
+ * just uses the one on the classpath).
+ * 
+ * A vamsas session consists of :
+ *  SessionDir - translates to urn of a live session.
+ *  Contains: Vamsas Document (as a jar), Session client list file, 
+ *  both of which may be locked, and additional 
+ *  temporary versions of these files when write 
+ *  operations are taking place.
+ * 
+ * Zip file entries
+ *  - vamsasdocument.xml : core info
+ *  one or more:
+ *  - <applicationname>.version.sessionnumber.raw (string given in vamsasdocument.xml applicationData entry)
+ *  
+ * Lockfile
+ *  - filename given in the vamsasdocument.xml. Should be checked for validity by any client and rewritten if necessary. 
+ *    The lockfile can point to the jar itself.
+ * Mode of operation.
+ * Initially - documentHandler either:
+ *  - creates a zip for a new session for the client
+ *  - connect to an existing session zip 
+ *   1. reads session urn file
+ *   2. waits for lock
+ *   3. examines session - decide whether to create new application data slice or connect to one stored in session.
+ *   4. writes info into session file
+ *   5. releases lock and generates local client events.
+ *   6. Creates Watcher thread to generate events.
+ * 
+ * During the session
+ *  - Update watcher checks for file change - 
+ * 
+ */
 
 public class VamsasSession {
   /**