001: /*
002: * This file or a portion of this file is licensed under the terms of
003: * the Globus Toolkit Public License, found in file ../GTPL, or at
004: * http://www.globus.org/toolkit/download/license.html. This notice must
005: * appear in redistributions of this file, with or without modification.
006: *
007: * Redistributions of this Software, with or without modification, must
008: * reproduce the GTPL in: (1) the Software, or (2) the Documentation or
009: * some other similar material which is provided with the Software (if
010: * any).
011: *
012: * Copyright 1999-2004 University of Chicago and The University of
013: * Southern California. All rights reserved.
014: */
015: package org.griphyn.vdl.euryale;
016:
017: import org.griphyn.vdl.dax.*;
018: import org.griphyn.vdl.util.*;
019: import java.io.*;
020: import java.util.*;
021:
022: /**
023: * This class is used to test the <code>DAXParser</code> class and
024: * the input file index. It parses all the DAX documents specified
025: * in the commandline, creates the corresponding java objects, and
026: * generates an XML document from these objects. It also prints
027: * the input file list if the last definition in the document is
028: * a derivation.
029: *
030: * @author Kavitha Ranganathan
031: * @author Jens-S. Vöckler
032: * @author Yong Zhao
033: * @version $Revision: 289 $
034: *
035: * @see DAXParser
036: * @see org.griphyn.vdl.dax.ADAG
037: */
038:
039: public class DAXTest implements Callback {
040: long m_callback[] = null;
041:
042: public DAXTest() {
043: m_callback = new long[5];
044: }
045:
046: public void cb_document(java.util.Map attributes) {
047: m_callback[0]++;
048: System.out.print("free=" + Runtime.getRuntime().freeMemory());
049: System.out.println(" document callback: " + attributes);
050: }
051:
052: public void cb_filename(Filename filename) {
053: m_callback[1]++;
054: System.out.print("free=" + Runtime.getRuntime().freeMemory());
055: System.out.println(" filename callback: \""
056: + filename.getFilename() + "\"");
057: }
058:
059: public void cb_job(Job job) {
060: m_callback[2]++;
061: System.out.print("free=" + Runtime.getRuntime().freeMemory());
062: System.out.println(" job callback: " + job.getID());
063: }
064:
065: public void cb_parents(String child, java.util.List parents) {
066: m_callback[3]++;
067: System.out.print("free=" + Runtime.getRuntime().freeMemory());
068: System.out.println(" relationship callback: " + child + " "
069: + parents);
070: }
071:
072: public void cb_done() {
073: m_callback[4]++;
074: System.out.print("free=" + Runtime.getRuntime().freeMemory());
075: System.out.println(" done callback");
076: }
077:
078: private static String c_callback[] = { "documents", "filenames",
079: "jobs", "children", "dones" };
080:
081: protected void finalize() throws Throwable {
082: if (m_callback != null) {
083: System.out.print("CALL STATS: ");
084: for (int i = 0; i < m_callback.length; ++i) {
085: if (i > 0)
086: System.out.print(", ");
087: System.out.print(c_callback[i] + "=" + m_callback[i]);
088: }
089: System.out.println();
090: }
091: }
092:
093: static public void main(String[] args) throws IOException {
094: DAXTest me = new DAXTest();
095: if (args.length == 0) {
096: System.err.println("Usage: java " + me.getClass().getName()
097: + " [dax] ...");
098: return;
099: }
100:
101: // connect debug stream
102: // Logging.instance().register( "parser", System.err );
103: Logging.instance().register("app", System.err);
104:
105: DAXParser parser = new DAXParser(System
106: .getProperty("vds.schema.dax"));
107: parser.setCallback(me);
108:
109: for (int i = 0; i < args.length; i++) {
110: if (!parser.parse(args[i])) {
111: System.err
112: .println("Detected error while parsing XML, exiting\n");
113: System.exit(1);
114: }
115: }
116:
117: // done -- release references
118: parser = null;
119: me = null;
120: System.gc();
121: }
122: }
|