Example Metrics Query Client


/* 
 * Stand alone java client that opens up a URL connection, reads an object stream and 
 * outputs the result (will be a java ArrayList of 'Path|Metric's ) 
 * Usage: java -cp . ExampleMetricQueryClient "http://localhost:8800/\$3-69-ARBN/metrics/query?format=java&paths=Agent(3-69-ARBN):SpokeTime|IpFlow(blatz,stout):CapacityMax" 
 * Must specify 'format=java' as the default is a string of xml printed out to browser 
 */ 
package org.cougaar.core.examples.metrics;
import java.net.URL; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.ObjectInputStream; 
import java.io.ByteArrayInputStream; 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.Map;

// This example requires quoSumo.jar, qos.jar and core.jar 
public class ExampleMetricQueryClient 
{ 
  // One arg here - the query string "http://host..." see usage above 
  public static void main( String args[] ) throws IOException 
  { 
    String url = null; 
    try { 
      url=args[0]; 
      URL servlet_url = new URL(url); 
  
      // open up input stream and read object 
      try { 
 // open url connection from string url 
 InputStream in = servlet_url.openStream(); 
 ObjectInputStream ois = new ObjectInputStream(in); 
  
 // read in java object - this a java client only 
 HashMap propertylist = (HashMap)ois.readObject(); 
 ois.close();

 if (propertylist == null) { 
     System.out.println("Null Property List returned"); 
     return; 
 } 
 // can do anything with it here, we just print it out for now 
 Iterator itr = propertylist.entrySet().iterator(); 
 while (itr.hasNext()) { 
     Map.Entry entry = (Map.Entry) itr.next(); 
     System.out.println(entry.getKey() +"->"+ entry.getValue()); 
 } 
      } catch (Exception e) { 
 System.out.println("Error reading input stream for url " + url + " Make sure the stream is open. " + e); 
 e.printStackTrace(); 
      } 
    } catch(Exception e){ 
      System.out.println("Unable to acquire URL, Exception: " + e); 
    } 
  } 
}