mstover1 2002/05/30 18:34:57 Modified: docs running.html src_1/org/apache/jmeter/config LoginConfig.java src_1/org/apache/jmeter/engine JMeterEngine.java RemoteJMeterEngine.java RemoteJMeterEngineImpl.java StandardJMeterEngine.java src_1/org/apache/jmeter/gui/action RemoteStart.java Start.java src_1/org/apache/jmeter/gui/util NumberFieldErrorListener.java src_1/org/apache/jmeter/protocol/ftp/sampler FTPSampler.java src_1/org/apache/jmeter/protocol/http/proxy Daemon.java src_1/org/apache/jmeter/protocol/jdbc/sampler JDBCSampler.java src_1/org/apache/jmeter/resources messages.properties messages_ja.properties messages_no.properties src_1/org/apache/jmeter/threads JMeterThread.java Added: src_1/org/apache/jmeter/engine JMeterEngineException.java Log: Fixing JDBC and FTP access to login info Making JMeter test engine recover from errors More internationalization Fixing problem with JDK 1.2 Revision Changes Path 1.40 +0 -0 jakarta-jmeter/docs/running.html Index: running.html =================================================================== RCS file: /home/cvs/jakarta-jmeter/docs/running.html,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- running.html 30 Apr 2002 02:41:32 -0000 1.39 +++ running.html 31 May 2002 01:34:56 -0000 1.40 @@ -243,7 +243,7 @@ <br > </br> -$Id: running.html,v 1.39 2002/04/30 02:41:32 mstover1 Exp $ +$Id: running.html,v 1.40 2002/05/31 01:34:56 mstover1 Exp $ </font> <br > 1.3 +4 -6 jakarta-jmeter/src_1/org/apache/jmeter/config/LoginConfig.java Index: LoginConfig.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/config/LoginConfig.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- LoginConfig.java 29 Apr 2002 17:08:06 -0000 1.2 +++ LoginConfig.java 31 May 2002 01:34:56 -0000 1.3 @@ -68,8 +68,6 @@ public class LoginConfig extends AbstractTestElement implements Serializable { - public final static String USERNAME = "username"; - public final static String PASSWORD = "password"; /************************************************************ * Constructor for the LoginConfig object @@ -85,7 +83,7 @@ ***********************************************************/ public void setUsername(String username) { - setProperty(USERNAME, username); + setProperty(ConfigTestElement.USERNAME, username); } /************************************************************ @@ -95,7 +93,7 @@ ***********************************************************/ public void setPassword(String password) { - setProperty(PASSWORD, password); + setProperty(ConfigTestElement.PASSWORD, password); } @@ -106,7 +104,7 @@ ***********************************************************/ public String getUsername() { - return (String)this.getProperty(USERNAME); + return (String)this.getProperty(ConfigTestElement.USERNAME); } /************************************************************ @@ -116,7 +114,7 @@ ***********************************************************/ public String getPassword() { - return (String)this.getProperty(PASSWORD); + return (String)this.getProperty(ConfigTestElement.PASSWORD); } } 1.3 +2 -2 jakarta-jmeter/src_1/org/apache/jmeter/engine/JMeterEngine.java Index: JMeterEngine.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/engine/JMeterEngine.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JMeterEngine.java 29 Apr 2002 17:08:07 -0000 1.2 +++ JMeterEngine.java 31 May 2002 01:34:56 -0000 1.3 @@ -61,7 +61,7 @@ * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache * *@author Michael Stover - *@created $Date: 2002/04/29 17:08:07 $ + *@created $Date: 2002/05/31 01:34:56 $ *@version 1.0 ***********************************************************/ @@ -70,7 +70,7 @@ void configure(ListedHashTree testPlan); - void runTest(); + void runTest() throws JMeterEngineException; void stopTest(); 1.4 +1 -1 jakarta-jmeter/src_1/org/apache/jmeter/engine/RemoteJMeterEngine.java Index: RemoteJMeterEngine.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/engine/RemoteJMeterEngine.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- RemoteJMeterEngine.java 21 May 2002 03:36:43 -0000 1.3 +++ RemoteJMeterEngine.java 31 May 2002 01:34:56 -0000 1.4 @@ -69,7 +69,7 @@ { void configure(ListedHashTree testTree) throws RemoteException; - void runTest() throws RemoteException; + void runTest() throws RemoteException,JMeterEngineException; void stopTest() throws RemoteException; 1.5 +1 -1 jakarta-jmeter/src_1/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java Index: RemoteJMeterEngineImpl.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- RemoteJMeterEngineImpl.java 23 May 2002 15:47:04 -0000 1.4 +++ RemoteJMeterEngineImpl.java 31 May 2002 01:34:56 -0000 1.5 @@ -108,7 +108,7 @@ * *@exception RemoteException Description of Exception ***********************************************************/ - public void runTest() throws RemoteException + public void runTest() throws RemoteException,JMeterEngineException { backingEngine.runTest(); } 1.9 +44 -34 jakarta-jmeter/src_1/org/apache/jmeter/engine/StandardJMeterEngine.java Index: StandardJMeterEngine.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/engine/StandardJMeterEngine.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- StandardJMeterEngine.java 28 May 2002 18:23:46 -0000 1.8 +++ StandardJMeterEngine.java 31 May 2002 01:34:56 -0000 1.9 @@ -54,12 +54,12 @@ */ package org.apache.jmeter.engine; -import java.rmi.RemoteException; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.HashSet; import java.util.Iterator; import java.util.Set; -import org.apache.jmeter.samplers.RemoteSampleListener; import org.apache.jmeter.testelement.TestListener; import org.apache.jmeter.threads.JMeterThread; import org.apache.jmeter.threads.JMeterThreadMonitor; @@ -67,14 +67,13 @@ import org.apache.jmeter.threads.ThreadGroup; import org.apache.jmeter.util.ListedHashTree; import org.apache.jmeter.util.SearchByClass; -import org.apache.jmeter.engine.ConvertListeners; /************************************************************ * !ToDo (Class description) * *@author $Author: mstover1 $ - *@created $Date: 2002/05/28 18:23:46 $ - *@version $Revision: 1.8 $ + *@created $Date: 2002/05/31 01:34:56 $ + *@version $Revision: 1.9 $ ***********************************************************/ public class StandardJMeterEngine implements JMeterEngine,JMeterThreadMonitor { @@ -111,39 +110,50 @@ /************************************************************ * !ToDo (Method description) ***********************************************************/ - public void runTest() + public void runTest() throws JMeterEngineException { - System.out.println("Running the test!"); - running = true; - SearchByClass searcher = new SearchByClass(ThreadGroup.class); - testListeners = new SearchByClass(TestListener.class); - getTestTree().traverse(testListeners); - getTestTree().traverse(searcher); - TestCompiler.initialize(); - //for each thread group, generate threads - // hand each thread the sampler controller - // and the listeners, and the timer - JMeterThread[] threads; - Iterator iter = searcher.getSearchResults().iterator(); - System.out.println("found " + searcher.getSearchResults().size() + " threadgroups"); - notifyTestListenersOfStart(); - while(iter.hasNext()) + try { - ThreadGroup group = (ThreadGroup)iter.next(); - threads = new JMeterThread[group.getNumThreads()]; - System.out.println("number of threads = "+group.getNumThreads()); - for(int i = 0;running && i < threads.length; i++) + System.out.println("Running the test!"); + running = true; + SearchByClass searcher = new SearchByClass(ThreadGroup.class); + testListeners = new SearchByClass(TestListener.class); + getTestTree().traverse(testListeners); + getTestTree().traverse(searcher); + TestCompiler.initialize(); + //for each thread group, generate threads + // hand each thread the sampler controller + // and the listeners, and the timer + JMeterThread[] threads; + Iterator iter = searcher.getSearchResults().iterator(); + System.out.println("found " + searcher.getSearchResults().size() + " threadgroups"); + notifyTestListenersOfStart(); + while(iter.hasNext()) { - System.out.println("starting a thread:tree list = "+searcher.getSubTree(group).list()); - threads[i] = new JMeterThread(cloneTree(searcher.getSubTree(group)),this); - threads[i].setInitialDelay((int)(((float)(group.getRampUp() * 1000) / - (float)group.getNumThreads()) * (float)i)); - threads[i].setThreadName(group.getName()+"-"+(i+1)); - Thread newThread = new Thread(threads[i]); - newThread.setName(group.getName()+(i+1)); - allThreads.add(threads[i]); - newThread.start(); + ThreadGroup group = (ThreadGroup)iter.next(); + threads = new JMeterThread[group.getNumThreads()]; + System.out.println("number of threads = "+group.getNumThreads()); + for(int i = 0;running && i < threads.length; i++) + { + System.out.println("starting a thread:tree list = "+searcher.getSubTree(group).list()); + threads[i] = new JMeterThread(cloneTree(searcher.getSubTree(group)),this); + threads[i].setInitialDelay((int)(((float)(group.getRampUp() * 1000) / + (float)group.getNumThreads()) * (float)i)); + threads[i].setThreadName(group.getName()+"-"+(i+1)); + Thread newThread = new Thread(threads[i]); + newThread.setName(group.getName()+(i+1)); + allThreads.add(threads[i]); + newThread.start(); + } } + } + catch(Exception err) + { + stopTest(); + StringWriter string = new StringWriter(); + PrintWriter writer = new PrintWriter(string); + err.printStackTrace(writer); + throw new JMeterEngineException(string.toString()); } } 1.1 jakarta-jmeter/src_1/org/apache/jmeter/engine/JMeterEngineException.java Index: JMeterEngineException.java =================================================================== package org.apache.jmeter.engine; import java.io.Serializable; /** * @author mstover * * To change this generated comment edit the template variable "typecomment": * Window>Preferences>Java>Templates. */ public class JMeterEngineException extends Exception implements Serializable { public JMeterEngineException() { super(); } public JMeterEngineException(String msg) { super(msg); } } 1.5 +8 -2 jakarta-jmeter/src_1/org/apache/jmeter/gui/action/RemoteStart.java Index: RemoteStart.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/action/RemoteStart.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- RemoteStart.java 28 May 2002 17:30:18 -0000 1.4 +++ RemoteStart.java 31 May 2002 01:34:57 -0000 1.5 @@ -63,12 +63,13 @@ import org.apache.jmeter.threads.ThreadGroup; import org.apache.jmeter.util.JMeterUtils; import org.apache.jmeter.util.ListedHashTree; +import javax.swing.JOptionPane; /**************************************** * Title: Description: Copyright: Copyright (c) 2001 Company: * *@author Michael Stover - *@created $Date: 2002/05/28 17:30:18 $ + *@created $Date: 2002/05/31 01:34:57 $ *@version 1.0 ***************************************/ @@ -151,6 +152,11 @@ convertSubTree(testTree); testTree.add(testTree.getArray()[0],gui.getMainFrame()); engine.configure(testTree); - engine.runTest(); + try { + engine.runTest(); + } catch(JMeterEngineException e) { + JOptionPane.showMessageDialog(gui.getMainFrame(),e.getMessage(), + JMeterUtils.getResString("Error Occurred"),JOptionPane.ERROR_MESSAGE); + } } } 1.9 +13 -7 jakarta-jmeter/src_1/org/apache/jmeter/gui/action/Start.java Index: Start.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/action/Start.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Start.java 29 May 2002 22:41:53 -0000 1.8 +++ Start.java 31 May 2002 01:34:57 -0000 1.9 @@ -54,14 +54,15 @@ */ package org.apache.jmeter.gui.action; import java.awt.event.ActionEvent; -import java.util.*; -import org.apache.jmeter.engine.*; +import java.util.HashSet; +import java.util.Set; + +import javax.swing.JOptionPane; +import org.apache.jmeter.engine.JMeterEngineException; +import org.apache.jmeter.engine.StandardJMeterEngine; import org.apache.jmeter.gui.GuiPackage; -import org.apache.jmeter.testelement.TestPlan; -import org.apache.jmeter.threads.ThreadGroup; +import org.apache.jmeter.util.JMeterUtils; import org.apache.jmeter.util.ListedHashTree; -import org.apache.jmeter.gui.JMeterGUIComponent; -import org.apache.jmeter.testelement.TestElement; /**************************************** * Title: Apache JMeter Description: Copyright: Copyright (c) 2000 Company: @@ -132,7 +133,12 @@ testTree.add(testTree.getArray()[0],gui.getMainFrame()); engine.configure(testTree); gui.getMainFrame().setRunning(true); - engine.runTest(); + try { + engine.runTest(); + } catch(JMeterEngineException e) { + JOptionPane.showMessageDialog(gui.getMainFrame(),e.getMessage(), + JMeterUtils.getResString("Error Occurred"),JOptionPane.ERROR_MESSAGE); + } } } 1.3 +8 -5 jakarta-jmeter/src_1/org/apache/jmeter/gui/util/NumberFieldErrorListener.java Index: NumberFieldErrorListener.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/gui/util/NumberFieldErrorListener.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- NumberFieldErrorListener.java 29 May 2002 22:52:35 -0000 1.2 +++ NumberFieldErrorListener.java 31 May 2002 01:34:57 -0000 1.3 @@ -54,11 +54,14 @@ */ package org.apache.jmeter.gui.util; -import java.awt.event.*; -import javax.swing.*; -import javax.swing.text.JTextComponent; import java.awt.Component; import java.awt.TextComponent; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; + +import javax.swing.JOptionPane; +import javax.swing.text.JTextComponent; +import org.apache.jmeter.util.JMeterUtils; /** * @author mstover @@ -98,8 +101,8 @@ } catch(NumberFormatException nfe) { - JOptionPane.showMessageDialog(source, "You must enter a valid number", - "Invalid data", JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(source, JMeterUtils.getResString("You must enter a valid number"), + JMeterUtils.getResString("Invalid data"), JOptionPane.WARNING_MESSAGE); new FocusRequester(source); } } 1.7 +4 -4 jakarta-jmeter/src_1/org/apache/jmeter/protocol/ftp/sampler/FTPSampler.java Index: FTPSampler.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/ftp/sampler/FTPSampler.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- FTPSampler.java 17 May 2002 01:29:34 -0000 1.6 +++ FTPSampler.java 31 May 2002 01:34:57 -0000 1.7 @@ -68,8 +68,8 @@ * A sampler which understands FTP file requests * *@author $Author: mstover1 $ - *@created $Date: 2002/05/17 01:29:34 $ - *@version $Revision: 1.6 $ + *@created $Date: 2002/05/31 01:34:57 $ + *@version $Revision: 1.7 $ ***********************************************************/ public class FTPSampler extends AbstractSampler @@ -94,12 +94,12 @@ public String getUsername() { - return getPropertyAsString(LoginConfig.USERNAME); + return getPropertyAsString(ConfigTestElement.USERNAME); } public String getPassword() { - return getPropertyAsString(LoginConfig.PASSWORD); + return getPropertyAsString(ConfigTestElement.PASSWORD); } public void setServer(String newServer) 1.4 +0 -1 jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/proxy/Daemon.java Index: Daemon.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/http/proxy/Daemon.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Daemon.java 29 Apr 2002 17:08:11 -0000 1.3 +++ Daemon.java 31 May 2002 01:34:57 -0000 1.4 @@ -168,7 +168,6 @@ { endIt = new Socket(InetAddress.getLocalHost().getHostName(),daemonPort); endIt.getOutputStream().write(5); - endIt.shutdownOutput(); } catch(IOException e) { 1.8 +4 -4 jakarta-jmeter/src_1/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java Index: JDBCSampler.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- JDBCSampler.java 23 May 2002 15:47:06 -0000 1.7 +++ JDBCSampler.java 31 May 2002 01:34:57 -0000 1.8 @@ -71,8 +71,8 @@ * A sampler which understands JDBC database requests * *@author $Author: mstover1 $ - *@created $Date: 2002/05/23 15:47:06 $ - *@version $Revision: 1.7 $ + *@created $Date: 2002/05/31 01:34:57 $ + *@version $Revision: 1.8 $ ***********************************************************/ public class JDBCSampler extends AbstractSampler implements TestListener @@ -232,12 +232,12 @@ public String getUsername() { - return getPropertyAsString(LoginConfig.USERNAME); + return getPropertyAsString(ConfigTestElement.USERNAME); } public String getPassword() { - return getPropertyAsString(LoginConfig.PASSWORD); + return getPropertyAsString(ConfigTestElement.PASSWORD); } public String getDriver() 1.13 +4 -1 jakarta-jmeter/src_1/org/apache/jmeter/resources/messages.properties Index: messages.properties =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/resources/messages.properties,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- messages.properties 29 May 2002 22:41:53 -0000 1.12 +++ messages.properties 31 May 2002 01:34:57 -0000 1.13 @@ -232,4 +232,7 @@ minute=minute http_url_rewriting_modifier_title=HTTP URL-Rewriting Modifier session_argument_name=Session Argument Name -path_extension_choice=Path Extension (use ";" as separator) \ No newline at end of file +path_extension_choice=Path Extension (use ";" as separator) +you_must_enter_a_valid_number=You must enter a valid number +invalid_data=Invalid data +error_occurred=Error Occurred \ No newline at end of file 1.12 +4 -1 jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_ja.properties Index: messages_ja.properties =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_ja.properties,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- messages_ja.properties 29 May 2002 22:41:53 -0000 1.11 +++ messages_ja.properties 31 May 2002 01:34:57 -0000 1.12 @@ -226,4 +226,7 @@ minute=minute http_url_rewriting_modifier_title=HTTP URL-Rewriting Modifier session_argument_name=Session Argument Name -path_extension_choice=Path Extension (use ";" as separator) \ No newline at end of file +path_extension_choice=Path Extension (use ";" as separator) +you_must_enter_a_valid_number=You must enter a valid number +invalid_data=Invalid data +error_occurred=Error Occurred \ No newline at end of file 1.12 +4 -1 jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_no.properties Index: messages_no.properties =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/resources/messages_no.properties,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- messages_no.properties 29 May 2002 22:41:53 -0000 1.11 +++ messages_no.properties 31 May 2002 01:34:57 -0000 1.12 @@ -225,4 +225,7 @@ minute=minute http_url_rewriting_modifier_title=HTTP URL-Rewriting Modifier session_argument_name=Session Argument Name -path_extension_choice=Path Extension (use ";" as separator) \ No newline at end of file +path_extension_choice=Path Extension (use ";" as separator) +you_must_enter_a_valid_number=You must enter a valid number +invalid_data=Invalid data +error_occurred=Error Occurred \ No newline at end of file 1.12 +27 -21 jakarta-jmeter/src_1/org/apache/jmeter/threads/JMeterThread.java Index: JMeterThread.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src_1/org/apache/jmeter/threads/JMeterThread.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- JMeterThread.java 28 May 2002 18:23:46 -0000 1.11 +++ JMeterThread.java 31 May 2002 01:34:57 -0000 1.12 @@ -70,8 +70,8 @@ * timing, add listeners for sampling events and to stop the sampling process. * *@author $Author: mstover1 $ - *@created $Date: 2002/05/28 18:23:46 $ - *@version $Revision: 1.11 $ + *@created $Date: 2002/05/31 01:34:57 $ + *@version $Revision: 1.12 $ ***************************************/ public class JMeterThread implements Runnable, java.io.Serializable { static Map samplers = new HashMap(); @@ -101,27 +101,33 @@ * !ToDo (Method description) ***************************************/ public void run() { - testTree.traverse(compiler); - running = true; - //listeners = controller.getListeners(); - Sampler entry = null; - rampUpDelay(); - System.out.println("Thread "+Thread.currentThread().getName()+" started"); - while (running) { - while (controller.hasNext() && running) { - SamplePackage pack = compiler.configureSampler(controller.next()); - delay(pack.getTimers()); - SampleResult result = pack.getSampler().sample(null); - result.setThreadName(threadName); - result.setTimeStamp(System.currentTimeMillis()); - checkAssertions(pack.getAssertions(), result); - notifyListeners(pack.getSampleListeners(), result); - } - if (controller.isDone()) { - running = false; + try + { + testTree.traverse(compiler); + running = true; + //listeners = controller.getListeners(); + Sampler entry = null; + rampUpDelay(); + System.out.println("Thread "+Thread.currentThread().getName()+" started"); + while (running) { + while (controller.hasNext() && running) { + SamplePackage pack = compiler.configureSampler(controller.next()); + delay(pack.getTimers()); + SampleResult result = pack.getSampler().sample(null); + result.setThreadName(threadName); + result.setTimeStamp(System.currentTimeMillis()); + checkAssertions(pack.getAssertions(), result); + notifyListeners(pack.getSampleListeners(), result); + } + if (controller.isDone()) { + running = false; + } } } - monitor.threadFinished(this); + finally + { + monitor.threadFinished(this); + } } /**************************************** * !ToDo (Method description)
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>