/* * This file or a portion of this file is licensed under the terms of * the Globus Toolkit Public License, found in file ../GTPL, or at * http://www.globus.org/toolkit/download/license.html. This notice must * appear in redistributions of this file, with or without modification. * * Redistributions of this Software, with or without modification, must * reproduce the GTPL in: (1) the Software, or (2) the Documentation or * some other similar material which is provided with the Software (if * any). * * Copyright 1999-2004 University of Chicago and The University of * Southern California. All rights reserved. */ package org.griphyn.vdl.euryale; import org.griphyn.vdl.dax.*; import org.griphyn.vdl.util.*; import java.io.*; import java.util.*; /** * This class is used to test the <code>DAXParser</code> class and * the input file index. It parses all the DAX documents specified * in the commandline, creates the corresponding java objects, and * generates an XML document from these objects. It also prints * the input file list if the last definition in the document is * a derivation. * * @author Kavitha Ranganathan * @author Jens-S. Vöckler * @author Yong Zhao * @version $Revision$ * * @see DAXParser * @see org.griphyn.vdl.dax.ADAG */ public class DAXTest implements Callback { long m_callback[] = null; public DAXTest() { m_callback = new long[5]; } public void cb_document( java.util.Map attributes ) { m_callback[0]++; System.out.print( "free=" + Runtime.getRuntime().freeMemory() ); System.out.println( " document callback: " + attributes ); } public void cb_filename( Filename filename ) { m_callback[1]++; System.out.print( "free=" + Runtime.getRuntime().freeMemory() ); System.out.println( " filename callback: \"" + filename.getFilename() + "\"" ); } public void cb_job( Job job ) { m_callback[2]++; System.out.print( "free=" + Runtime.getRuntime().freeMemory() ); System.out.println( " job callback: " + job.getID() ); } public void cb_parents( String child, java.util.List parents ) { m_callback[3]++; System.out.print( "free=" + Runtime.getRuntime().freeMemory() ); System.out.println( " relationship callback: " + child + " " + parents ); } public void cb_done() { m_callback[4]++; System.out.print( "free=" + Runtime.getRuntime().freeMemory() ); System.out.println( " done callback" ); } private static String c_callback[] = { "documents", "filenames", "jobs", "children", "dones" }; protected void finalize() throws Throwable { if ( m_callback != null ) { System.out.print( "CALL STATS: " ); for ( int i=0; i<m_callback.length; ++i ) { if ( i > 0 ) System.out.print( ", " ); System.out.print( c_callback[i] + "=" + m_callback[i] ); } System.out.println(); } } static public void main(String[] args) throws IOException { DAXTest me = new DAXTest(); if (args.length == 0) { System.err.println( "Usage: java " + me.getClass().getName() + " [dax] ..." ); return; } // connect debug stream // Logging.instance().register( "parser", System.err ); Logging.instance().register( "app", System.err ); DAXParser parser = new DAXParser(System.getProperty("vds.schema.dax")); parser.setCallback(me); for (int i = 0; i < args.length; i++) { if ( ! parser.parse(args[i]) ) { System.err.println( "Detected error while parsing XML, exiting\n" ); System.exit(1); } } // done -- release references parser = null; me = null; System.gc(); } }