-/*
+/**
* Created on 14-Sep-2005
*
* TODO To change the template for this generated file go to
*/
package org.vamsas.test;
-import org.vamsas.client.*;
+import uk.ac.vamsas.client.*;
import java.awt.Event;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.io.IOException;
import java.util.Vector;
/**
* Toy vamsas command line client application demonstrating the API.
public class ExampleApplication {
private static ClientHandle app;
- private static UserHandle user;
+ private static UserHandle user; // TODO: make this something defined by the api
private static IClientFactory clientfactory;
private static IClient vorbaclient;
private static byte[] mydata;
System.out.println("Session "+evt.getPropertyName()+" is shutting down.");
// tell app to finalize its session data before shutdown.
}
- });
+ });
+ vorbaclient.addVorbaEventHandler(Events.DOCUMENT_FINALIZEAPPDATA,
+ new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+ System.out.println("Application received a DOCUMENT_FINALIZEAPPDATA event.");
+ // tell app to finalize its session data prior to the storage of the current session as an archive.
+ }
+ });
+
}
public static String
Usage="ExampleApplication <vamsasFileDirectory> <vamsasSessionURN> <action> [+<arguments>]\n"
return true; // incorrect arguments.
}
public static void main(String[] args) {
- if ((args.length<=2) || parseArgs(args)) {
+ if ((args.length<=2) || !parseArgs(args)) {
System.err.print(Usage);
}
// get IClientFactory
- clientfactory = new org.vamsas.client.SimpleClientFactory(args[0]);
+ try {
+ clientfactory = new uk.ac.vamsas.client.simpleclient.SimpleClientFactory(args[0]);
+ } catch (IOException e) {
+ System.err.println(e+"\n"+Usage);
+ System.exit(1);
+ }
// get an Iclient with session data
app = new ClientHandle("org.vamsas.test.ExampleApplication","0.1");
user = new UserHandle("arnolduser","deathsdoor");
- vorbaclient = clientfactory.getIClient(app, user);
+ try {
+ vorbaclient = clientfactory.getIClient(app, user);
+ } catch (NoDefaultSessionException e) {
+ System.err.println("There appear to be several sessions to choose from :");
+ String[] sessions = clientfactory.getCurrentSessions();
+ for (int s=0;s<sessions.length; s++)
+ System.err.println(sessions[s]);
+ System.exit(2);
+ }
addHandlers(vorbaclient);
+ try {
+ vorbaclient.joinSession();
+ }
+ catch (Exception se) {
+ se.printStackTrace();
+ System.err.println(se+" when joining session.\n"+Usage);
+ System.exit(1);
+ }
// register an update listener and a close listener.
// get document data
- processVamsasDocument(vorbaclient.getClientDocument());
+ try {
+ IClientDocument cdoc = vorbaclient.getClientDocument();
+ processVamsasDocument(cdoc);
+ } catch (Exception e) {
+ System.err.println("Unexpected exception when retrieving the client document for the first time!");
+ e.printStackTrace(System.err);
+ System.exit(1);
+ }
// Main application event loop - wait around and do stuff...
while (!isShuttingdown) {