// Copyright 2012 Citrix Systems, Inc. Licensed under the // Apache License, Version 2.0 (the "License"); you may not use this // file except in compliance with the License. Citrix Systems, Inc. // reserves all rights not expressly granted by the License. // You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // Automatically generated by addcopyright.py at 04/03/2012 package com.cloud.test.utils; import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import org.apache.log4j.Logger; public class ProxyLoadTemp { public static final Logger s_logger= Logger.getLogger(ProxyLoadTemp.class.getClass()); public static int numThreads=0; public static ArrayList<ConsoleProxy> proxyList = new ArrayList<ConsoleProxy>(); public static long begin; public static long end; public static long sum=0; public ProxyLoadTemp(){ } public static void main (String[] args){ begin= System.currentTimeMillis(); Runtime.getRuntime().addShutdownHook(new ShutdownThread(new ProxyLoadTemp())); ConsoleProxy.proxyIp="172-16-1-101"; try { BufferedReader consoleInput = new BufferedReader(new FileReader("console.input")); boolean eof = false; s_logger.info("Started reading file"); while (!eof){ String line = consoleInput.readLine(); s_logger.info("Line is "+line); if (line == null){ s_logger.info("Line "+numThreads+" is null"); eof=true; } else{ String[] result=null; try { s_logger.info("Starting parsing line "+line); result= parseLine(line, "[,]"); s_logger.info("Line retrieved from the file is "+result[0]+" "+result[1]+" "+result[2]); ConsoleProxy proxy = new ConsoleProxy(result[0], result[1], result[2]); proxyList.add(proxy); new Thread(proxy).start(); numThreads++; } catch (Exception ex){ s_logger.warn(ex); } } } }catch(Exception e){ s_logger.warn(e); } } public static class ShutdownThread extends Thread { ProxyLoadTemp temp; public ShutdownThread(ProxyLoadTemp temp) { this.temp = temp; } public void run() { s_logger.info("Program was running in "+numThreads+" threads"); for (int j=0; j<proxyList.size(); j++){ long av=0; if (proxyList.get(j).getConnectionsMade()!=0){ av=proxyList.get(j).getResponseTime()/proxyList.get(j).getConnectionsMade(); } s_logger.info("Information for "+j+" thread: Number of requests sent is "+proxyList.get(j).getConnectionsMade()+". Average response time is "+av+" milliseconds"); sum=sum+av; } ProxyLoadTemp.end= System.currentTimeMillis(); s_logger.info("Summary for all"+numThreads+" threads: Average response time is "+sum/numThreads+" milliseconds"); s_logger.info("Test was running for "+(ProxyLoadTemp.end-ProxyLoadTemp.begin)/1000+" seconds"); } } public static String[] parseLine(String line, String del) throws Exception { String del1=del.substring(1, del.length()-1); if (line.contains(del1)!=true) { throw new Exception(); } else { String[] token = line.split(del); return token; } } }