cvs commit: jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config DataSourceElement.java
mstover12005/09/01 10:21:07 Modified:src/core/org/apache/jmeter/gui/util Tag: rel-2-1 MenuFactory.java src/core/org/apache/jmeter/testbeans/gui Tag: rel-2-1 TestBeanGUI.java src/core/org/apache/jmeter/threads/gui Tag: rel-2-1 ThreadGroupGui.java src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config Tag: rel-2-1 DataSourceElement.java Log: Fixing some bugs (like #36465) Revision ChangesPath No revision No revision 1.33.2.1 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/gui/util/MenuFactory.java Index: MenuFactory.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/MenuFactory.java,v retrieving revision 1.33 retrieving revision 1.33.2.1 diff -u -r1.33 -r1.33.2.1 --- MenuFactory.java 12 Jul 2005 20:50:45 - 1.33 +++ MenuFactory.java 1 Sep 2005 17:21:06 - 1.33.2.1 @@ -81,7 +81,7 @@ // MENU_ADD_xxx - controls which items are in the ADD menu // MENU_PARENT_xxx - controls which items are in the Insert Parent menu private static final String[] MENU_ADD_CONTROLLER = new String[] { MenuFactory.CONTROLLERS, MenuFactory.SAMPLERS, - MenuFactory.CONFIG_ELEMENTS, MenuFactory.TIMERS, MenuFactory.LISTENERS, MenuFactory.PRE_PROCESSORS, + MenuFactory.ASSERTIONS, MenuFactory.CONFIG_ELEMENTS, MenuFactory.TIMERS, MenuFactory.LISTENERS, MenuFactory.PRE_PROCESSORS, MenuFactory.POST_PROCESSORS }; private static final String[] MENU_PARENT_CONTROLLER = new String[] { MenuFactory.CONTROLLERS }; No revision No revision 1.22.2.1 +27 -4 jakarta-jmeter/src/core/org/apache/jmeter/testbeans/gui/TestBeanGUI.java Index: TestBeanGUI.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testbeans/gui/TestBeanGUI.java,v retrieving revision 1.22 retrieving revision 1.22.2.1 diff -u -r1.22 -r1.22.2.1 --- TestBeanGUI.java 12 Jul 2005 20:51:01 - 1.22 +++ TestBeanGUI.java 1 Sep 2005 17:21:06 - 1.22.2.1 @@ -38,6 +38,7 @@ import org.apache.jmeter.assertions.Assertion; import org.apache.jmeter.assertions.gui.AbstractAssertionGui; import org.apache.jmeter.config.ConfigElement; +import org.apache.jmeter.config.ConfigTestElement; import org.apache.jmeter.config.gui.AbstractConfigGui; import org.apache.jmeter.control.Controller; import org.apache.jmeter.control.gui.AbstractControllerGui; @@ -48,6 +49,7 @@ import org.apache.jmeter.processor.PreProcessor; import org.apache.jmeter.processor.gui.AbstractPostProcessorGui; import org.apache.jmeter.processor.gui.AbstractPreProcessorGui; +import org.apache.jmeter.reporters.AbstractListenerElement; import org.apache.jmeter.samplers.Sampler; import org.apache.jmeter.samplers.gui.AbstractSamplerGui; import org.apache.jmeter.testbeans.BeanInfoSupport; @@ -134,7 +136,7 @@ } // Dummy for JUnit test - public TestBeanGUI() { + TestBeanGUI() { log.warn(Only for use in testing); } @@ -267,7 +269,28 @@ { return MenuFactory.getDefaultTimerMenu(); } - return MenuFactory.getDefaultControllerMenu(); +else if(Sampler.class.isAssignableFrom(testBeanClass)) +{ +return MenuFactory.getDefaultSamplerMenu(); +} +else if(ConfigTestElement.class.isAssignableFrom(testBeanClass)) +{ +return MenuFactory.getDefaultConfigElementMenu(); +} +else if(Assertion.class.isAssignableFrom(testBeanClass)) +{ +return MenuFactory.getDefaultAssertionMenu(); +} +else if(PostProcessor.class.isAssignableFrom(testBeanClass) || +PreProcessor.class.isAssignableFrom(testBeanClass)) +{ +return MenuFactory.getDefaultExtractorMenu(); +} +else if(AbstractListenerElement.class.isAssignableFrom(testBeanClass)) +{ +return MenuFactory.getDefaultVisualizerMenu(); +} +else return MenuFactory.getDefaultControllerMenu(); } /* No revision No revision 1.29.2.1 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/threads/gui/ThreadGroupGui.java Index: ThreadGroupGui.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/gui/ThreadGroupGui.java,v retrieving
cvs commit: jakarta-jmeter/bin jmeter-report
mstover12005/09/01 14:21:48 Added: bin jmeter-report Log: unix shell script for running report app Revision ChangesPath 1.1 jakarta-jmeter/bin/jmeter-report Index: jmeter-report === #! /bin/sh ## $Id$ ## Copyright 2001-2004 The Apache Software Foundation ## ## Licensed under the Apache License, Version 2.0 (the License); ## you may not use this file except in compliance with 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. # The following should be reasonably good values for most tests running # on Sun JVMs. Following is the analysis on which it is based. If it's total # gibberish to you, please study my article at # http://www.atg.com/portal/myatg/developer?paf_dm=fullpaf_gear_id=1100010detailArticle=trueid=9606 # # JMeter objects can generally be grouped into three life-length groups: # # - Per-sample objects (results, DOMs,...). An awful lot of those. # Life length of milliseconds to a few seconds. # # - Per-run objects (threads, listener data structures,...). Not that many # of those unless we use the table or tree listeners on heavy runs. # Life length of minutes to several hours, from creation to start of next run. # # - Per-work-session objects (test plans, GUIs,...). # Life length: for the life of the JVM. # This is the base heap size -- you may increase or decrease it to fit your # system's memory availablity: HEAP=-Xms256m -Xmx256m # There's an awful lot of per-sample objects allocated during test run, so we # need a large eden to avoid too frequent scavenges -- you'll need to tune this # down proportionally if you reduce the HEAP values above: NEW=-XX:NewSize=128m -XX:MaxNewSize=128m # This ratio and target have been proven OK in tests with a specially high # amount of per-sample objects (the HtmlParserHTMLParser tests): # SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50% # Think about it: trying to keep per-run objects in tenuring definitely # represents a cost, but where's the benefit? They won't disappear before # the test is over, and at that point we will no longer care about performance. # # So we will have JMeter do an explicit Full GC before starting a test run, # but then we won't make any effort (or spend any CPU) to keep objects # in tenuring longer than the life of per-sample objects -- which is hopefully # shorter than the period between two scavenges): # TENURING=-XX:MaxTenuringThreshold=2 # This evacuation ratio is OK (see the comments for SURVIVOR) during test # runs -- no so sure about operations that bring a lot of long-lived information into # memory in a short period of time, such as loading tests or listener data files. # Increase it if you experience OutOfMemory problems during those operations # without having gone through a lot of Full GC-ing just before the OOM: # EVACUATION=-XX:MaxLiveObjectEvacuationRatio=20% # Avoid the RMI-induced Full GCs to run too frequently -- once every ten minutes # should be more than enough: RMIGC=-Dsun.rmi.dgc.client.gcInterval=60 -Dsun.rmi.dgc.server.gcInterval=60 # PermSize is a scam. Leave it like this: PERM=-XX:PermSize=64m -XX:MaxPermSize=64m # Finally, some tracing to help in case things go astray: DEBUG=-verbose:gc -XX:+PrintTenuringDistribution SERVER=-server ARGS=$SERVER $HEAP $NEW $SURVIVOR $TENURING $EVACUATION $RMIGC $PERM $DEBUG java -server -jar `dirname $0`/ApacheJMeter.jar report $@ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter build.xml
mstover12005/09/01 14:22:10 Modified:.build.xml Log: Revision ChangesPath 1.217 +3 -3 jakarta-jmeter/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-jmeter/build.xml,v retrieving revision 1.216 retrieving revision 1.217 diff -u -r1.216 -r1.217 --- build.xml 31 Aug 2005 18:10:48 - 1.216 +++ build.xml 1 Sep 2005 21:22:09 - 1.217 @@ -895,7 +895,7 @@ /target target name=install depends=package description=Install JMeter. (Compiles code and creates jars) -fixcrlf srcdir=. eol=lf includes=**/jmeter,**/jmeter-server/ +fixcrlf srcdir=. eol=lf includes=**/jmeter,**/jmeter-server,**/jmeter-report/ /target target name=all depends=clean,install - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/bin upgrade.properties
mstover12005/09/01 14:31:12 Modified:src/core/org/apache/jmeter/testbeans/gui TestBeanGUI.java src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config DataSourceElement.java bin upgrade.properties Added: lib/junit test.jar Log: MERGE from 2-1 Revision ChangesPath 1.23 +27 -4 jakarta-jmeter/src/core/org/apache/jmeter/testbeans/gui/TestBeanGUI.java Index: TestBeanGUI.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testbeans/gui/TestBeanGUI.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- TestBeanGUI.java 12 Jul 2005 20:51:01 - 1.22 +++ TestBeanGUI.java 1 Sep 2005 21:31:12 - 1.23 @@ -38,6 +38,7 @@ import org.apache.jmeter.assertions.Assertion; import org.apache.jmeter.assertions.gui.AbstractAssertionGui; import org.apache.jmeter.config.ConfigElement; +import org.apache.jmeter.config.ConfigTestElement; import org.apache.jmeter.config.gui.AbstractConfigGui; import org.apache.jmeter.control.Controller; import org.apache.jmeter.control.gui.AbstractControllerGui; @@ -48,6 +49,7 @@ import org.apache.jmeter.processor.PreProcessor; import org.apache.jmeter.processor.gui.AbstractPostProcessorGui; import org.apache.jmeter.processor.gui.AbstractPreProcessorGui; +import org.apache.jmeter.reporters.AbstractListenerElement; import org.apache.jmeter.samplers.Sampler; import org.apache.jmeter.samplers.gui.AbstractSamplerGui; import org.apache.jmeter.testbeans.BeanInfoSupport; @@ -134,7 +136,7 @@ } // Dummy for JUnit test - public TestBeanGUI() { + TestBeanGUI() { log.warn(Only for use in testing); } @@ -267,7 +269,28 @@ { return MenuFactory.getDefaultTimerMenu(); } - return MenuFactory.getDefaultControllerMenu(); +else if(Sampler.class.isAssignableFrom(testBeanClass)) +{ +return MenuFactory.getDefaultSamplerMenu(); +} +else if(ConfigTestElement.class.isAssignableFrom(testBeanClass)) +{ +return MenuFactory.getDefaultConfigElementMenu(); +} +else if(Assertion.class.isAssignableFrom(testBeanClass)) +{ +return MenuFactory.getDefaultAssertionMenu(); +} +else if(PostProcessor.class.isAssignableFrom(testBeanClass) || +PreProcessor.class.isAssignableFrom(testBeanClass)) +{ +return MenuFactory.getDefaultExtractorMenu(); +} +else if(AbstractListenerElement.class.isAssignableFrom(testBeanClass)) +{ +return MenuFactory.getDefaultVisualizerMenu(); +} +else return MenuFactory.getDefaultControllerMenu(); } /* 1.2 +14 -0 jakarta-jmeter/lib/junit/test.jar Binary file 1.7 +3 -0 jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java Index: DataSourceElement.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config/DataSourceElement.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- DataSourceElement.java12 Jul 2005 20:51:05 - 1.6 +++ DataSourceElement.java1 Sep 2005 21:31:12 - 1.7 @@ -22,6 +22,7 @@ import org.apache.jmeter.config.ConfigElement; import org.apache.jmeter.engine.event.LoopIterationEvent; import org.apache.jmeter.testbeans.TestBean; +import org.apache.jmeter.testbeans.TestBeanHelper; import org.apache.jmeter.testelement.AbstractTestElement; import org.apache.jmeter.testelement.TestListener; import org.apache.jorphan.logging.LoggingManager; @@ -89,6 +90,8 @@ public void testStarted() { if (!started[0]) { try { +this.setRunningVersion(true); +TestBeanHelper.prepare(this); initPool(); } catch (Exception e) { log.error(Unable to start database connection pool., e); 1.8 +19 -2 jakarta-jmeter/bin/upgrade.properties Index: upgrade.properties === RCS file: /home/cvs/jakarta-jmeter/bin/upgrade.properties,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- upgrade.properties16 Jun 2005 22:34:28 - 1.7 +++ upgrade.properties1 Sep 2005 21:31:12 - 1.8 @@ -36,4 +36,21
cvs commit: jakarta-jmeter/src/jorphan/org/apache/jorphan/gui ComponentUtil.java
mstover12005/08/31 07:16:33 Modified:src/core/org/apache/jmeter NewDriver.java JMeter.java src/core/org/apache/jmeter/util JMeterUtils.java src/jorphan/org/apache/jorphan/gui ComponentUtil.java Added: src/core/org/apache/jmeter Splash.java Log: Adding JMeter Splash screen Revision ChangesPath 1.12 +3 -2 jakarta-jmeter/src/core/org/apache/jmeter/NewDriver.java Index: NewDriver.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/NewDriver.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- NewDriver.java12 Aug 2005 23:57:17 - 1.11 +++ NewDriver.java31 Aug 2005 14:16:33 - 1.12 @@ -135,6 +135,7 @@ *the command line arguments */ public static void main(String[] args) { + Thread.currentThread().setContextClassLoader(loader); if (System.getProperty(log4j.configuration) == null) { File conf = new File(jmDir, bin + File.separator + log4j.conf); 1.42 +17 -2 jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java Index: JMeter.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- JMeter.java 12 Jul 2005 20:50:38 - 1.41 +++ JMeter.java 31 Aug 2005 14:16:33 - 1.42 @@ -17,7 +17,15 @@ package org.apache.jmeter; +import java.awt.Canvas; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Graphics; +import java.awt.Image; import java.awt.event.ActionEvent; +import java.awt.font.FontRenderContext; +import java.awt.geom.Rectangle2D; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -29,6 +37,12 @@ import java.util.List; import java.util.Properties; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.SwingUtilities; +import javax.swing.border.BevelBorder; +import javax.swing.border.SoftBevelBorder; + import org.apache.commons.cli.avalon.CLArgsParser; import org.apache.commons.cli.avalon.CLOption; import org.apache.commons.cli.avalon.CLOptionDescriptor; @@ -51,8 +65,6 @@ import org.apache.jmeter.gui.tree.JMeterTreeModel; import org.apache.jmeter.plugin.JMeterPlugin; import org.apache.jmeter.plugin.PluginManager; -// import org.apache.jmeter.processor.gui.AbstractPostProcessorGui; -// import org.apache.jmeter.processor.gui.AbstractPreProcessorGui; import org.apache.jmeter.reporters.ResultCollector; import org.apache.jmeter.reporters.Summariser; import org.apache.jmeter.samplers.Remoteable; @@ -237,8 +249,11 @@ startServer(JMeterUtils.getPropDefault(server_port, 0)); startBSH(); } else if (parser.getArgumentById(NONGUI_OPT) == null) { + Splash splash = new Splash(); + splash.showSplash(); startGui(parser.getArgumentById(TESTFILE_OPT)); startBSH(); + splash.removeSplash(); } else { startNonGui(parser.getArgumentById(TESTFILE_OPT), parser.getArgumentById(LOGFILE_OPT), parser .getArgumentById(REMOTE_OPT)); 1.1 jakarta-jmeter/src/core/org/apache/jmeter/Splash.java Index: Splash.java === package org.apache.jmeter; import java.awt.Canvas; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.font.FontRenderContext; import java.awt.geom.Rectangle2D; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.border.BevelBorder; import javax.swing.border.SoftBevelBorder; import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.gui.ComponentUtil; class Splash { public Splash() { } JFrame splash; void showSplash() { splash = new JFrame(); JPanel borderedPanel = new JPanel(); BevelBorder b = new SoftBevelBorder(BevelBorder.RAISED, Color.LIGHT_GRAY,Color.DARK_GRAY); borderedPanel.setBorder(b); SplashCanvas image = new SplashCanvas(borderedPanel.getFont
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/gui/util MenuFactory.java
mstover12005/08/31 08:43:26 Modified:src/core/org/apache/jmeter/threads/gui ThreadGroupGui.java src/core/org/apache/jmeter Splash.java JMeter.java src/core/org/apache/jmeter/gui/util MenuFactory.java Log: Assertions should be addable to controllers and threadgroups Revision ChangesPath 1.30 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/threads/gui/ThreadGroupGui.java Index: ThreadGroupGui.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/gui/ThreadGroupGui.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- ThreadGroupGui.java 12 Jul 2005 20:50:48 - 1.29 +++ ThreadGroupGui.java 31 Aug 2005 15:43:26 - 1.30 @@ -180,7 +180,7 @@ public JPopupMenu createPopupMenu() { JPopupMenu pop = new JPopupMenu(); pop.add(MenuFactory.makeMenus(new String[] { MenuFactory.CONTROLLERS, MenuFactory.LISTENERS, - MenuFactory.SAMPLERS, MenuFactory.TIMERS, MenuFactory.CONFIG_ELEMENTS, MenuFactory.PRE_PROCESSORS, + MenuFactory.SAMPLERS, MenuFactory.ASSERTIONS,MenuFactory.TIMERS, MenuFactory.CONFIG_ELEMENTS, MenuFactory.PRE_PROCESSORS, MenuFactory.POST_PROCESSORS }, JMeterUtils.getResString(Add), Add)); MenuFactory.addEditMenu(pop, true); MenuFactory.addFileMenu(pop); 1.2 +2 -2 jakarta-jmeter/src/core/org/apache/jmeter/Splash.java Index: Splash.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/Splash.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Splash.java 31 Aug 2005 14:16:33 - 1.1 +++ Splash.java 31 Aug 2005 15:43:26 - 1.2 @@ -73,8 +73,8 @@ g.drawImage(icon,0,0,icon.getWidth(null),icon.getHeight(null),null); g.setColor(Color.BLACK); g.setFont(font); - g.drawChars(versionNotice.toCharArray(),0,versionNotice.length(),10,115); - g.drawChars(copyRight.toCharArray(),0,copyRight.length(),10,120 + (int)versionRect.getHeight()); + g.drawChars(versionNotice.toCharArray(),0,versionNotice.length(),10,icon.getHeight(null) + 10); + g.drawChars(copyRight.toCharArray(),0,copyRight.length(),10,icon.getHeight(null) + 20 + (int)versionRect.getHeight()); } public SplashCanvas(Font f) 1.43 +1 -1 jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java Index: JMeter.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- JMeter.java 31 Aug 2005 14:16:33 - 1.42 +++ JMeter.java 31 Aug 2005 15:43:26 - 1.43 @@ -267,7 +267,7 @@ e.printStackTrace(); System.out.println(An error occurred: + e.getMessage()); System.exit(-1); - } + } } /** 1.34 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/gui/util/MenuFactory.java Index: MenuFactory.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/MenuFactory.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- MenuFactory.java 12 Jul 2005 20:50:45 - 1.33 +++ MenuFactory.java 31 Aug 2005 15:43:26 - 1.34 @@ -81,7 +81,7 @@ // MENU_ADD_xxx - controls which items are in the ADD menu // MENU_PARENT_xxx - controls which items are in the Insert Parent menu private static final String[] MENU_ADD_CONTROLLER = new String[] { MenuFactory.CONTROLLERS, MenuFactory.SAMPLERS, - MenuFactory.CONFIG_ELEMENTS, MenuFactory.TIMERS, MenuFactory.LISTENERS, MenuFactory.PRE_PROCESSORS, + MenuFactory.ASSERTIONS, MenuFactory.CONFIG_ELEMENTS, MenuFactory.TIMERS, MenuFactory.LISTENERS, MenuFactory.PRE_PROCESSORS, MenuFactory.POST_PROCESSORS }; private static final String[] MENU_PARENT_CONTROLLER = new String[] { MenuFactory.CONTROLLERS }; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/components/org/apache/jmeter/assertions CompareAssertion.java
mstover12005/08/30 08:17:27 Modified:src/components/org/apache/jmeter/visualizers ViewResultsFullVisualizer.java src/protocol/http/org/apache/jmeter/protocol/http/control Cookie.java CookieManager.java src/core/org/apache/jmeter/resources messages.properties src/components/org/apache/jmeter/assertions CompareAssertion.java Added: src/components/org/apache/jmeter/visualizers TreeNodeRenderer.java ComparisonVisualizer.java src/core/org/apache/jmeter/assertions CompareAssertionResult.java Log: Cookies now differentiate based on port as well as host New ComparisonVisualizer for viewing falied comparison assertion results side-by-side. Revision ChangesPath 1.53 +1 -13 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java Index: ViewResultsFullVisualizer.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java,v retrieving revision 1.52 retrieving revision 1.53 diff -u -r1.52 -r1.53 --- ViewResultsFullVisualizer.java12 Jul 2005 20:50:29 - 1.52 +++ ViewResultsFullVisualizer.java30 Aug 2005 15:17:20 - 1.53 @@ -585,7 +585,7 @@ treeModel = new DefaultTreeModel(root); jTree = new JTree(treeModel); - jTree.setCellRenderer(new ResultsNodeRenderer()); + jTree.setCellRenderer(new TreeNodeRenderer()); jTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); jTree.addTreeSelectionListener(this); jTree.setRootVisible(false); @@ -642,18 +642,6 @@ return resultsPane; } - - private class ResultsNodeRenderer extends DefaultTreeCellRenderer { - public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, - boolean leaf, int row, boolean focus) { - super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, focus); - if (!((SampleResult) ((DefaultMutableTreeNode) value).getUserObject()).isSuccessful()) { - this.setForeground(Color.red); - } - return this; - } - } - private static class LocalHTMLEditorKit extends HTMLEditorKit { private static final ViewFactory defaultFactory = new LocalHTMLFactory(); 1.1 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/TreeNodeRenderer.java Index: TreeNodeRenderer.java === package org.apache.jmeter.visualizers; import java.awt.Color; import java.awt.Component; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; import org.apache.jmeter.samplers.SampleResult; public class TreeNodeRenderer extends DefaultTreeCellRenderer { public TreeNodeRenderer() { super(); } public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean focus) { super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, focus); Object obj = ((DefaultMutableTreeNode) value).getUserObject(); if(obj instanceof SampleResult) { if (!((SampleResult) obj).isSuccessful()) { this.setForeground(Color.red); } } return this; } } 1.1 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/ComparisonVisualizer.java Index: ComparisonVisualizer.java === package org.apache.jmeter.visualizers; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayout; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JTextPane; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; import org.apache.jmeter.assertions.AssertionResult; import
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/testbeans/gui TableEditor.java
mstover12005/08/30 11:49:37 Modified:src/components/org/apache/jmeter/assertions CompareAssertionResources.properties CompareAssertionBeanInfo.java CompareAssertion.java src/core/org/apache/jmeter/testbeans TestBeanHelper.java src/core/org/apache/jmeter/testbeans/gui TableEditor.java Added: src/components/org/apache/jmeter/assertions SubstitutionElement.java Log: CompareAssertion regex filters now can take a substitution string that is substituted in for the regex matches in the response data. Revision ChangesPath 1.3 +2 -2 jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertionResources.properties Index: CompareAssertionResources.properties === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertionResources.properties,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- CompareAssertionResources.properties 29 Aug 2005 18:48:02 - 1.2 +++ CompareAssertionResources.properties 30 Aug 2005 18:49:37 - 1.3 @@ -5,5 +5,5 @@ compareTime.displayName=Compare Time compareTime.shortDescription=Verify that all Samplers' return times are within a given number of milliseconds comparison_filters.displayName=Comparison Filters -stringsToSkip.displayName=Regular Expression Filters -stringsToSkip.shortDescription=Regular expressions to match elements of response data to be ignored when comparing \ No newline at end of file +stringsToSkip.displayName=Regular Expression Substitutions +stringsToSkip.shortDescription=Regular expressions to match elements of response data to be substituted when comparing \ No newline at end of file 1.3 +5 -4 jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertionBeanInfo.java Index: CompareAssertionBeanInfo.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertionBeanInfo.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- CompareAssertionBeanInfo.java 29 Aug 2005 18:48:02 - 1.2 +++ CompareAssertionBeanInfo.java 30 Aug 2005 18:49:37 - 1.3 @@ -1,7 +1,7 @@ package org.apache.jmeter.assertions; import java.beans.PropertyDescriptor; -import java.util.Arrays; +import java.util.ArrayList; import org.apache.jmeter.testbeans.BeanInfoSupport; import org.apache.jmeter.testbeans.gui.TableEditor; @@ -22,10 +22,11 @@ p.setValue(NOT_EXPRESSION, Boolean.FALSE); p = property(stringsToSkip); p.setPropertyEditorClass(TableEditor.class); - p.setValue(TableEditor.CLASSNAME,java.lang.String); - p.setValue(TableEditor.HEADERS,new String[]{Regex String}); + p.setValue(TableEditor.CLASSNAME,org.apache.jmeter.assertions.SubstitutionElement); + p.setValue(TableEditor.HEADERS,new String[]{Regex String,Substitution}); + p.setValue(TableEditor.OBJECT_PROPERTIES,new String[]{regex,substitute}); p.setValue(NOT_UNDEFINED,Boolean.TRUE); - p.setValue(DEFAULT,Arrays.asList(new String[]{One,Two})); + p.setValue(DEFAULT,new ArrayList()); p.setValue(MULTILINE,Boolean.TRUE); } 1.5 +6 -5 jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertion.java Index: CompareAssertion.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertion.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- CompareAssertion.java 30 Aug 2005 15:17:26 - 1.4 +++ CompareAssertion.java 30 Aug 2005 18:49:37 - 1.5 @@ -25,7 +25,7 @@ transient List responses; - private static final Substitution emptySub = new StringSubstitution(); + private StringSubstitution emptySub = new StringSubstitution(); transient boolean iterationDone = false; @@ -33,7 +33,7 @@ private long compareTime = -1; - CollectionString stringsToSkip; + CollectionSubstitutionElement stringsToSkip; public CompareAssertion() { super(); @@ -122,9 +122,10 @@ if (stringsToSkip == null || stringsToSkip.size() == 0) { return content; } else { - for (String regex : stringsToSkip) { + for (SubstitutionElement regex : stringsToSkip
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/testelement/property AbstractProperty.java
mstover12005/08/29 11:48:03 Modified:src/components/org/apache/jmeter/assertions CompareAssertionResources.properties CompareAssertionBeanInfo.java CompareAssertion.java src/core/org/apache/jmeter/samplers DataStrippingSampleSender.java SampleSenderFactory.java src/core/org/apache/jmeter/testbeans TestBeanHelper.java BeanInfoSupport.java src/core/org/apache/jmeter/testbeans/gui GenericTestBeanCustomizer.java src/core/org/apache/jmeter/reporters ResultCollector.java src/jorphan/org/apache/jorphan/gui ObjectTableModel.java src/core/org/apache/jmeter/save SaveService.java OldSaveService.java src/core/org/apache/jmeter/testelement/property AbstractProperty.java Added: src/core/org/apache/jmeter/testbeans/gui TableEditor.java TestBeanPropertyEditor.java Log: New support for Collections in TestBean framework. fix for reading back CSV-formatted jtl files with non-default settings. Revision ChangesPath 1.2 +4 -1 jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertionResources.properties Index: CompareAssertionResources.properties === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertionResources.properties,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- CompareAssertionResources.properties 15 Aug 2005 20:33:07 - 1.1 +++ CompareAssertionResources.properties 29 Aug 2005 18:48:02 - 1.2 @@ -3,4 +3,7 @@ compareContent.displayName=Compare Content compareContent.shortDescription=Verify that all Samplers within the Controller return the same data compareTime.displayName=Compare Time -compareTime.shortDescription=Verify that all Samplers' return times are within a given number of milliseconds \ No newline at end of file +compareTime.shortDescription=Verify that all Samplers' return times are within a given number of milliseconds +comparison_filters.displayName=Comparison Filters +stringsToSkip.displayName=Regular Expression Filters +stringsToSkip.shortDescription=Regular expressions to match elements of response data to be ignored when comparing \ No newline at end of file 1.2 +12 -1 jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertionBeanInfo.java Index: CompareAssertionBeanInfo.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertionBeanInfo.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- CompareAssertionBeanInfo.java 15 Aug 2005 20:33:07 - 1.1 +++ CompareAssertionBeanInfo.java 29 Aug 2005 18:48:02 - 1.2 @@ -1,14 +1,17 @@ package org.apache.jmeter.assertions; import java.beans.PropertyDescriptor; +import java.util.Arrays; import org.apache.jmeter.testbeans.BeanInfoSupport; +import org.apache.jmeter.testbeans.gui.TableEditor; public class CompareAssertionBeanInfo extends BeanInfoSupport { public CompareAssertionBeanInfo() { super(CompareAssertion.class); createPropertyGroup(compareChoices, new String[] { compareContent, compareTime }); + createPropertyGroup(comparison_filters, new String[]{stringsToSkip}); PropertyDescriptor p = property(compareContent); p.setValue(NOT_UNDEFINED, Boolean.TRUE); p.setValue(DEFAULT, Boolean.TRUE); @@ -16,7 +19,15 @@ p = property(compareTime); p.setValue(NOT_UNDEFINED, Boolean.TRUE); p.setValue(DEFAULT, new Long(-1)); - p.setValue(NOT_EXPRESSION, Boolean.FALSE); + p.setValue(NOT_EXPRESSION, Boolean.FALSE); + p = property(stringsToSkip); + p.setPropertyEditorClass(TableEditor.class); + p.setValue(TableEditor.CLASSNAME,java.lang.String); + p.setValue(TableEditor.HEADERS,new String[]{Regex String}); + p.setValue(NOT_UNDEFINED,Boolean.TRUE); + p.setValue(DEFAULT,Arrays.asList(new String[]{One,Two})); + p.setValue(MULTILINE,Boolean.TRUE); + } } 1.2 +17 -0 jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertion.java Index: CompareAssertion.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org
cvs commit: jakarta-jmeter/src/components/org/apache/jmeter/assertions CompareAssertion.java
mstover12005/08/29 14:04:12 Modified:src/core/org/apache/jmeter/testbeans TestBeanHelper.java src/components/org/apache/jmeter/assertions CompareAssertion.java Log: the compare assertion can now take a list of regular expressions to filter out of the strings it compares Revision ChangesPath 1.5 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/testbeans/TestBeanHelper.java Index: TestBeanHelper.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testbeans/TestBeanHelper.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- TestBeanHelper.java 29 Aug 2005 18:48:02 - 1.4 +++ TestBeanHelper.java 29 Aug 2005 21:04:11 - 1.5 @@ -120,7 +120,7 @@ JMeterProperty propVal = iter.next(); try { - values.add(Converter.convert(propVal.getObjectValue(), Class.forName(type))); + values.add(Converter.convert(propVal.getStringValue(), Class.forName(type))); } catch(Exception e) { 1.3 +26 -3 jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertion.java Index: CompareAssertion.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/assertions/CompareAssertion.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- CompareAssertion.java 29 Aug 2005 18:48:02 - 1.2 +++ CompareAssertion.java 29 Aug 2005 21:04:12 - 1.3 @@ -12,13 +12,18 @@ import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.testbeans.TestBean; import org.apache.jmeter.testelement.AbstractTestElement; +import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; +import org.apache.oro.text.regex.StringSubstitution; +import org.apache.oro.text.regex.Substitution; +import org.apache.oro.text.regex.Util; public class CompareAssertion extends AbstractTestElement implements Assertion, TestBean, Serializable, LoopIterationListener { static Logger log = LoggingManager.getLoggerForClass(); transient List responses; + private static final Substitution emptySub = new StringSubstitution(); transient boolean iterationDone = false; @@ -26,7 +31,7 @@ private long compareTime = -1; - Collection stringsToSkip; + CollectionString stringsToSkip; public CompareAssertion() { super(); @@ -102,6 +107,7 @@ result.setFailureMessage(Unsupported Encoding Exception: +sResult.getDataEncoding()); return; } + currentContent = filterString(currentContent); if (prevContent != null) { success = prevContent.equals(currentContent); @@ -119,7 +125,7 @@ message.append(sResult.toString()); message.append(\n\n); message.append(currentContent); - message.append(/n/n); + message.append(\n\n); message.append(==\n\n); result.setFailureMessage(message.toString()); break; @@ -130,6 +136,23 @@ } } + private String filterString(String content) + { + if(stringsToSkip == null || stringsToSkip.size() == 0) + { + return content; + } + else + { + for(String regex : stringsToSkip) + { + log.info(replacing regex: + regex); + content = Util.substitute(JMeterUtils.getMatcher(),JMeterUtils.getPatternCache().getPattern(regex),emptySub,content,Util.SUBSTITUTE_ALL); + } + } + return content; + } + /* * (non-Javadoc) * @@ -189,7 +212,7 @@ * @param stringsToSkip The stringsToSkip to set. */ public void setStringsToSkip(Collection stringsToSkip
cvs commit: jakarta-jmeter build.xml
mstover12005/08/25 14:05:00 Modified:src/core/org/apache/jmeter/samplers SampleSenderFactory.java SampleSaveConfiguration.java src/core/org/apache/jmeter/services FileServer.java src/core/org/apache/jmeter/resources messages.properties src/core/org/apache/jmeter/save SaveServiceConstants.java OldSaveService.java src/core/org/apache/jmeter/save/converters SampleResultConverter.java bin jmeter.properties src/core/org/apache/jmeter/visualizers SamplingStatCalculator.java .build.xml Added: src/core/org/apache/jmeter/samplers DataStrippingSampleSender.java Log: New SampleSender that strips response bytes. Add content length to set of recorded sample result attributes. Revision ChangesPath 1.3 +3 -1 jakarta-jmeter/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java Index: SampleSenderFactory.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SampleSenderFactory.java 12 Jul 2005 20:50:56 - 1.2 +++ SampleSenderFactory.java 25 Aug 2005 21:04:59 - 1.3 @@ -43,9 +43,11 @@ } else if (type.equalsIgnoreCase(Batch)) { BatchSampleSender b = new BatchSampleSender(listener); return b; - } else { + } else if(type.equalsIgnoreCase(Full)) { StandardSampleSender s = new StandardSampleSender(listener); return s; + } else { + return new DataStrippingSampleSender(listener); } } } 1.11 +18 -2 jakarta-jmeter/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java Index: SampleSaveConfiguration.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- SampleSaveConfiguration.java 23 Aug 2005 15:20:13 - 1.10 +++ SampleSaveConfiguration.java 25 Aug 2005 21:04:59 - 1.11 @@ -131,6 +131,8 @@ * be saved. **/ public static final String SAVE_SUCCESSFUL_PROP = jmeter.save.saveservice.successful; + + public static final String SAVE_CONTENT_LENGTH = jmeter.save.saveservice.content_length; /*** * The name of the property indicating whether the thread name should be @@ -190,7 +192,7 @@ code = _code, message = _message, threadName = _threadName, dataType = _dataType, encoding = _encoding, assertions = _assertions, subresults = _subresults, responseData = _responseData, samplerData = _samplerData, xml = _xml, fieldNames = _fieldNames, responseHeaders = _responseHeaders, - requestHeaders = _requestHeaders, responseDataOnError = _responseDataOnError; + requestHeaders = _requestHeaders, responseDataOnError = _responseDataOnError, contentLength = _contentLength; private boolean saveAssertionResultsFailureMessage = _saveAssertionResultsFailureMessage; @@ -206,7 +208,7 @@ // Defaults from properties: private static final boolean _time, _timestamp, _success, _label, _code, _message, _threadName, _xml, _responseData, _dataType, _encoding, _assertions, _latency, _subresults, _samplerData, _fieldNames, - _responseHeaders, _requestHeaders; + _responseHeaders, _requestHeaders, _contentLength; private static final boolean _responseDataOnError; @@ -270,6 +272,8 @@ _success = TRUE.equalsIgnoreCase(props.getProperty(SAVE_SUCCESSFUL_PROP, TRUE)); _threadName = TRUE.equalsIgnoreCase(props.getProperty(SAVE_THREAD_NAME_PROP, TRUE)); + + _contentLength = TRUE.equalsIgnoreCase(props.getProperty(SAVE_CONTENT_LENGTH,TRUE)); _time = TRUE.equalsIgnoreCase(props.getProperty(SAVE_TIME_PROP, TRUE)); @@ -639,4 +643,16 @@ public String getDelimiter() { return delimiter; } + + /** + * @param contentLength The contentLength to set. + */ + public void setContentLength(boolean contentLength
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/control ReplaceableController.java
mstover12005/08/24 11:18:26 Modified:src/components/org/apache/jmeter/control ModuleController.java IncludeController.java src/core/org/apache/jmeter/gui/action AbstractAction.java src/core/org/apache/jmeter/util JMeterVersion.java src/core/org/apache/jmeter/control ReplaceableController.java Log: Making fixes for sake of include controller Revision ChangesPath 1.11 +7 -18 jakarta-jmeter/src/components/org/apache/jmeter/control/ModuleController.java Index: ModuleController.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/ModuleController.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ModuleController.java 12 Jul 2005 20:51:02 - 1.10 +++ ModuleController.java 24 Aug 2005 18:18:22 - 1.11 @@ -31,6 +31,7 @@ import org.apache.jmeter.testelement.property.JMeterProperty; import org.apache.jmeter.testelement.property.NullProperty; import org.apache.jorphan.collections.HashTree; +import org.apache.jorphan.collections.ListedHashTree; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; @@ -75,21 +76,6 @@ } /** - * Get the controller which this object is pointing to. - * - * @return the controller which this node points to - * @see org.apache.jmeter.testelement.TestElement - * @see org.apache.jmeter.control.ReplaceableController#getReplacement() - */ - public TestElement getReplacement() { - if (selectedNode != null) { - return selectedNode.getTestElement(); - } else { - return this; - } - } - - /** * Sets the (@link JMeterTreeNode) which represents the controller which * this object is pointing to. Used for building the test case upon * execution. @@ -167,12 +153,15 @@ * @param tree - *The current tree under which the nodes will be added */ - public void replace(HashTree tree) { + public HashTree getReplacementSubTree() { if (!selectedNode.isEnabled()) { selectedNode = cloneTreeNode(selectedNode); selectedNode.setEnabled(true); } + HashTree tree = new ListedHashTree(); + tree.add(selectedNode); createSubTree(tree, selectedNode); + return tree; } private void createSubTree(HashTree tree, JMeterTreeNode node) { 1.3 +4 -7 jakarta-jmeter/src/components/org/apache/jmeter/control/IncludeController.java Index: IncludeController.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/IncludeController.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- IncludeController.java24 Aug 2005 17:33:09 - 1.2 +++ IncludeController.java24 Aug 2005 18:18:22 - 1.3 @@ -94,12 +94,9 @@ * The way ReplaceableController works is clone is called first, * followed by replace(HashTree) and finally getReplacement(). */ -public void replace(HashTree tree) { +public HashTree getReplacementSubTree() { log.info(- replace(HashTree) --); -ListedHashTree col = (ListedHashTree)this.SUBTREE.get(this.SUB); -JMeterTreeNode newnode = new JMeterTreeNode(this.SUB, -GuiPackage.getInstance().getTreeModel()); -tree.add(newnode,new HashTree(col)); +return SUBTREE; } public TestElement getReplacement() { 1.17 +10 -6 jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AbstractAction.java Index: AbstractAction.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AbstractAction.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- AbstractAction.java 12 Jul 2005 20:50:26 - 1.16 +++ AbstractAction.java 24 Aug 2005 18:18:25 - 1.17 @@ -55,16 +55,20 @@ protected void convertSubTree(HashTree tree) { Iterator iter = new LinkedList(tree.list()).iterator(); while (iter.hasNext()) { - JMeterTreeNode item = (JMeterTreeNode) iter.next(); + Object o = iter.next(); + if(o instanceof TestElement) + continue; //hey, no need to convert + JMeterTreeNode item
cvs commit: jakarta-jmeter build.xml
mstover12005/08/23 08:20:13 Modified:src/core/org/apache/jmeter/engine PreCompiler.java StandardJMeterEngine.java src/core/org/apache/jmeter/engine/util ValueReplacer.java src/core/org/apache/jmeter/testelement/property FunctionProperty.java src/core/org/apache/jmeter/gui GuiPackage.java SavePropertyDialog.java src/core/org/apache/jmeter/samplers SampleSaveConfiguration.java src/core/org/apache/jmeter/testelement TestPlan.java xdocschanges.xml test/src/org/apache/jmeter/save TestSaveService.java src/core/org/apache/jmeter/config Arguments.java Argument.java .build.xml Log: MERGE from 2-1 Revision ChangesPath 1.25 +14 -10 jakarta-jmeter/src/core/org/apache/jmeter/engine/PreCompiler.java Index: PreCompiler.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/PreCompiler.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- PreCompiler.java 12 Jul 2005 20:50:36 - 1.24 +++ PreCompiler.java 23 Aug 2005 15:20:12 - 1.25 @@ -52,21 +52,25 @@ * @see HashTreeTraverser#addNode(Object, HashTree) */ public void addNode(Object node, HashTree subTree) { +if(node instanceof TestElement) +{ +try { +replacer.replaceValues((TestElement) node); +} catch (InvalidVariableException e) { +log.error(invalid variables, e); +} +} if (node instanceof TestPlan) { - Map args = ((TestPlan) node).getUserDefinedVariables(); +((TestPlan)node).prepareForPreCompile(); //A hack to make user-defined variables in the testplan element more dynamic +Map args = ((TestPlan) node).getUserDefinedVariables(); replacer.setUserDefinedVariables(args); JMeterVariables vars = new JMeterVariables(); vars.putAll(args); JMeterContextService.getContext().setVariables(vars); - } else if (node instanceof TestElement) { - try { - replacer.replaceValues((TestElement) node); - } catch (InvalidVariableException e) { - log.error(invalid variables, e); - } - } + } if (node instanceof Arguments) { +((Arguments)node).setRunningVersion(true); Map args = ((Arguments) node).getArgumentsAsMap(); replacer.addVariables(args); JMeterContextService.getContext().getVariables().putAll(args); 1.62 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java Index: StandardJMeterEngine.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java,v retrieving revision 1.61 retrieving revision 1.62 diff -u -r1.61 -r1.62 --- StandardJMeterEngine.java 17 Aug 2005 17:58:56 - 1.61 +++ StandardJMeterEngine.java 23 Aug 2005 15:20:12 - 1.62 @@ -301,7 +301,7 @@ if (((TestPlan) plan[0]).isSerialized()) { serialized = true; } - JMeterContextService.startTest(); +JMeterContextService.startTest(); compileTree(); /** * Notification of test listeners needs to happen after function @@ -359,9 +359,9 @@ log.info(Continue on error); } +ListedHashTree threadGroupTree = (ListedHashTree) searcher.getSubTree(group); +threadGroupTree.add(group, testLevelElements); for (int i = 0; running i threads.length; i++) { - ListedHashTree threadGroupTree = (ListedHashTree) searcher.getSubTree(group); - threadGroupTree.add(group, testLevelElements); threads[i] = new JMeterThread(cloneTree(threadGroupTree), this, notifier); threads[i].setThreadNum(i); threads[i].setThreadGroup(group); 1.18 +4 -4 jakarta-jmeter/src/core/org/apache/jmeter/engine/util/ValueReplacer.java Index: ValueReplacer.java === RCS file: /home/cvs/jakarta
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/testelement TestPlan.java
mstover12005/08/18 10:21:52 Modified:src/core/org/apache/jmeter/testelement/property Tag: rel-2-1 FunctionProperty.java src/core/org/apache/jmeter/engine Tag: rel-2-1 StandardJMeterEngine.java PreCompiler.java src/core/org/apache/jmeter/config Tag: rel-2-1 Arguments.java Argument.java src/core/org/apache/jmeter/testelement Tag: rel-2-1 TestPlan.java Log: Make TestPlan variables and user-Defined Variables capable of using functions in their values that are evaluated once at test start. Revision ChangesPath No revision No revision 1.18.2.1 +4 -4 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/FunctionProperty.java Index: FunctionProperty.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/FunctionProperty.java,v retrieving revision 1.18 retrieving revision 1.18.2.1 diff -u -r1.18 -r1.18.2.1 --- FunctionProperty.java 12 Jul 2005 20:50:25 - 1.18 +++ FunctionProperty.java 18 Aug 2005 17:21:51 - 1.18.2.1 @@ -70,12 +70,12 @@ JMeterContext ctx = JMeterContextService.getContext();// Expensive, so // do // once - if (!isRunningVersion() || !ctx.isSamplingStarted()) { + if (!isRunningVersion() /*|| !ctx.isSamplingStarted()*/) { log.debug(Not running version, return raw function string); return function.getRawParameters(); } else { log.debug(Running version, executing function); - int iter = ctx.getVariables().getIteration(); + int iter = ctx.getVariables() != null ? ctx.getVariables().getIteration() : -1; if (iter testIteration) { testIteration = -1; } No revision No revision 1.60.2.2 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java Index: StandardJMeterEngine.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java,v retrieving revision 1.60.2.1 retrieving revision 1.60.2.2 diff -u -r1.60.2.1 -r1.60.2.2 --- StandardJMeterEngine.java 17 Aug 2005 15:02:26 - 1.60.2.1 +++ StandardJMeterEngine.java 18 Aug 2005 17:21:51 - 1.60.2.2 @@ -301,7 +301,7 @@ if (((TestPlan) plan[0]).isSerialized()) { serialized = true; } - JMeterContextService.startTest(); +JMeterContextService.startTest(); compileTree(); /** * Notification of test listeners needs to happen after function @@ -359,9 +359,9 @@ log.info(Continue on error); } +ListedHashTree threadGroupTree = (ListedHashTree) searcher.getSubTree(group); +threadGroupTree.add(group, testLevelElements); for (int i = 0; running i threads.length; i++) { - ListedHashTree threadGroupTree = (ListedHashTree) searcher.getSubTree(group); - threadGroupTree.add(group, testLevelElements); threads[i] = new JMeterThread(cloneTree(threadGroupTree), this, notifier); threads[i].setThreadNum(i); threads[i].setThreadGroup(group); 1.24.2.1 +14 -10 jakarta-jmeter/src/core/org/apache/jmeter/engine/PreCompiler.java Index: PreCompiler.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/PreCompiler.java,v retrieving revision 1.24 retrieving revision 1.24.2.1 diff -u -r1.24 -r1.24.2.1 --- PreCompiler.java 12 Jul 2005 20:50:36 - 1.24 +++ PreCompiler.java 18 Aug 2005 17:21:51 - 1.24.2.1 @@ -52,21 +52,25 @@ * @see HashTreeTraverser#addNode(Object, HashTree) */ public void addNode(Object node, HashTree subTree) { +if(node instanceof TestElement) +{ +try { +replacer.replaceValues((TestElement) node); +} catch (InvalidVariableException e) { +log.error(invalid variables, e); +} +} if (node instanceof TestPlan
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/gui SavePropertyDialog.java
mstover12005/08/18 13:38:49 Modified:src/core/org/apache/jmeter/testelement/property Tag: rel-2-1 FunctionProperty.java src/core/org/apache/jmeter/engine/util Tag: rel-2-1 ValueReplacer.java src/core/org/apache/jmeter/samplers Tag: rel-2-1 SampleSaveConfiguration.java src/core/org/apache/jmeter/gui Tag: rel-2-1 SavePropertyDialog.java Log: Fixing a few more bugs including element names not supporting functions anymore (now they do again). Also, save dialog was improperly handling saveResponseData and saveSamplerData Revision ChangesPath No revision No revision 1.18.2.2 +3 -2 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/FunctionProperty.java Index: FunctionProperty.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/FunctionProperty.java,v retrieving revision 1.18.2.1 retrieving revision 1.18.2.2 diff -u -r1.18.2.1 -r1.18.2.2 --- FunctionProperty.java 18 Aug 2005 17:21:51 - 1.18.2.1 +++ FunctionProperty.java 18 Aug 2005 20:38:48 - 1.18.2.2 @@ -74,6 +74,7 @@ log.debug(Not running version, return raw function string); return function.getRawParameters(); } else { +if(!ctx.isSamplingStarted()) return function.execute(); log.debug(Running version, executing function); int iter = ctx.getVariables() != null ? ctx.getVariables().getIteration() : -1; if (iter testIteration) { No revision No revision 1.17.2.1 +4 -4 jakarta-jmeter/src/core/org/apache/jmeter/engine/util/ValueReplacer.java Index: ValueReplacer.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/util/ValueReplacer.java,v retrieving revision 1.17 retrieving revision 1.17.2.1 diff -u -r1.17 -r1.17.2.1 --- ValueReplacer.java12 Jul 2005 20:50:51 - 1.17 +++ ValueReplacer.java18 Aug 2005 20:38:48 - 1.17.2.1 @@ -120,8 +120,8 @@ } if (val instanceof StringProperty) { // Must not convert TestElement.gui_class etc - // TODO but perhaps we want to convert TestElement.name ? - if (!val.getName().startsWith(TestElement.)) { + if (!val.getName().equals(TestElement.GUI_CLASS) +!val.getName().equals(TestElement.TEST_CLASS)) { val = transform.transformValue(val); if (log.isDebugEnabled()) { log.debug(Replacement result: + val); No revision No revision 1.9.2.1 +10 -0 jakarta-jmeter/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java Index: SampleSaveConfiguration.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -u -r1.9 -r1.9.2.1 --- SampleSaveConfiguration.java 12 Jul 2005 20:50:56 - 1.9 +++ SampleSaveConfiguration.java 18 Aug 2005 20:38:49 - 1.9.2.1 @@ -476,6 +476,11 @@ public boolean saveResponseData(SampleResult res) { return responseData || TestPlan.getFunctionalMode() || (responseDataOnError !res.isSuccessful()); } + +public boolean saveResponseData() +{ +return responseData; +} /** * @param responseData @@ -492,6 +497,11 @@ return samplerData || TestPlan.getFunctionalMode() // as per 2.0 branch || (responseDataOnError !res.isSuccessful()); } + +public boolean saveSamplerData() +{ +return samplerData; +} /** * @param samplerData No revision No revision 1.4.2.1 +1 -1 jakarta-jmeter/src/core/org/apache/jmeter/gui/SavePropertyDialog.java Index: SavePropertyDialog.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/SavePropertyDialog.java,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -u -r1.4 -r1.4.2.1 --- SavePropertyDialog.java 12 Jul 2005
cvs commit: jakarta-jmeter/test/src/org/apache/jorphan/util - New directory
mstover12005/08/17 08:02:23 jakarta-jmeter/test/src/org/apache/jorphan/util - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/test/src/org/apache/jorphan/util TestJorphanUtils.java
mstover12005/08/17 08:02:26 Modified:src/protocol/http/org/apache/jmeter/protocol/http/sampler Tag: rel-2-1 AccessLogSampler.java src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog Tag: rel-2-1 LogFilter.java SharedTCLogParser.java SessionFilter.java Filter.java TCLogParser.java src/components/org/apache/jmeter/config Tag: rel-2-1 CSVDataSet.java src/core/org/apache/jmeter/engine Tag: rel-2-1 StandardJMeterEngine.java src/core/org/apache/jmeter/services Tag: rel-2-1 FileServer.java src/jorphan/org/apache/jorphan/util Tag: rel-2-1 JOrphanUtils.java Added: src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog Tag: rel-2-1 OrderPreservingLogParser.java test/src/org/apache/jorphan/util Tag: rel-2-1 TestJorphanUtils.java Log: CSVDataSet handles blank columns in csv file New log parsers - shared log parser (multiple threads take turns on the same access log), order preserving parser (multiple threads take turns on the same access log AND the ordering in the log is preserved) Improvements to session filter Revision ChangesPath No revision No revision 1.21.2.3 +19 -3 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java Index: AccessLogSampler.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java,v retrieving revision 1.21.2.2 retrieving revision 1.21.2.3 diff -u -r1.21.2.2 -r1.21.2.3 --- AccessLogSampler.java 16 Aug 2005 17:48:15 - 1.21.2.2 +++ AccessLogSampler.java 17 Aug 2005 15:02:25 - 1.21.2.3 @@ -25,6 +25,7 @@ import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.testbeans.TestBean; import org.apache.jmeter.testelement.TestCloneable; +import org.apache.jmeter.testelement.ThreadListener; import org.apache.jmeter.threads.JMeterContextService; import org.apache.jorphan.logging.LoggingManager; import org.apache.jorphan.util.JMeterException; @@ -65,7 +66,7 @@ * @author Peter Lin * @version $Revision$ last updated $Date$ */ -public class AccessLogSampler extends HTTPSampler implements TestBean { +public class AccessLogSampler extends HTTPSampler implements TestBean,ThreadListener { private static Logger log = LoggingManager.getLoggerForClass(); public static final String DEFAULT_CLASS = org.apache.jmeter.protocol.http.util.accesslog.TCLogParser; @@ -300,6 +301,10 @@ { instantiateParser(); s.PARSER = (LogParser)((TestCloneable)PARSER).clone(); +if(filter != null) +{ +s.PARSER.setFilter(s.filter); +} } } catch (Exception e) { log.warn(Could not clone cloneable filter, e); @@ -318,6 +323,7 @@ if (PARSER != null) { PARSER.close(); } +filter = null; started = false; super.testEnded(); } @@ -331,4 +337,14 @@ started = true; super.testStarted(); } + +/* (non-Javadoc) + * @see org.apache.jmeter.testelement.AbstractTestElement#threadFinished() + */ +public void threadFinished() { +if(PARSER instanceof ThreadListener) +((ThreadListener)PARSER).threadFinished(); +if(filter instanceof ThreadListener) +((ThreadListener)filter).threadFinished(); +} } No revision No revision 1.13.2.1 +9 -8 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/LogFilter.java Index: LogFilter.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/LogFilter.java,v retrieving revision 1.13 retrieving revision 1.13.2.1 diff -u -r1.13 -r1.13.2.1 --- LogFilter.java12 Jul 2005 20:50:58 - 1.13 +++ LogFilter.java17 Aug 2005 15:02:26 - 1.13.2.1 @@ -22,6 +22,7 @@ import java.util.ArrayList; import org.apache.jmeter.junit.JMeterTestCase; +import org.apache.jmeter.testelement.TestElement; import org.apache.jmeter.util.JMeterUtils; import org.apache.oro.text.regex.Pattern; import
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler AccessLogSampler.java
mstover12005/08/17 10:58:57 Modified:src/components/org/apache/jmeter/config CSVDataSet.java src/core/org/apache/jmeter/services FileServer.java src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog LogFilter.java TCLogParser.java SessionFilter.java Filter.java src/core/org/apache/jmeter/engine StandardJMeterEngine.java src/jorphan/org/apache/jorphan/util JOrphanUtils.java src/protocol/http/org/apache/jmeter/protocol/http/sampler AccessLogSampler.java Added: src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog SharedTCLogParser.java OrderPreservingLogParser.java test/src/org/apache/jorphan/util TestJorphanUtils.java Log: MERGE from 2-1 Revision ChangesPath 1.6 +1 -1 jakarta-jmeter/src/components/org/apache/jmeter/config/CSVDataSet.java Index: CSVDataSet.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/config/CSVDataSet.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- CSVDataSet.java 15 Aug 2005 20:33:08 - 1.5 +++ CSVDataSet.java 17 Aug 2005 17:58:56 - 1.6 @@ -62,7 +62,7 @@ String delim = getDelimiter(); if (delim.equals(\\t)) delim = \t;// Make it easier to enter a Tab - String[] lineValues = JOrphanUtils.split(server.readLine(getFilename()), delim); + String[] lineValues = JOrphanUtils.split(server.readLine(getFilename()), delim,false); for (int a = 0; a vars.length a lineValues.length; a++) { this.getThreadContext().getVariables().put(vars[a], lineValues[a]); } 1.10 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/services/FileServer.java Index: FileServer.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/services/FileServer.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- FileServer.java 12 Jul 2005 20:51:08 - 1.9 +++ FileServer.java 17 Aug 2005 17:58:56 - 1.10 @@ -72,7 +72,6 @@ } public void setBasedir(String basedir) throws IOException { - log.info(Setting basedir to: + basedir); if (filesOpen()) { throw new IOException(Files are still open, cannot change base directory); } @@ -90,7 +89,6 @@ } public synchronized void reserveFile(String filename) { - log.info(filename = + filename + base = + base); if (!files.containsKey(filename)) { Object[] file = new Object[] { new File(base, filename), null }; files.put(filename, file); @@ -151,7 +149,7 @@ */ public synchronized void closeFile(String name) throws IOException { Object[] file = (Object[]) files.get(name); - if (file[1] != null) { + if (file != null file.length == 2 file[1] != null) { ((Reader) file[1]).close(); file[1] = null; } @@ -171,6 +169,8 @@ /** * Method will get a random file in a base directory + * TODO hey, not sure this method belongs here. FileServer is for threadsafe + * File access relative to current test's base directory. * * @param basedir * @return 1.14 +9 -8 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/LogFilter.java Index: LogFilter.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/LogFilter.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- LogFilter.java12 Jul 2005 20:50:58 - 1.13 +++ LogFilter.java17 Aug 2005 17:58:56 - 1.14 @@ -22,6 +22,7 @@ import java.util.ArrayList; import org.apache.jmeter.junit.JMeterTestCase; +import org.apache.jmeter.testelement.TestElement; import org.apache.jmeter.util.JMeterUtils; import org.apache.oro.text.regex.Pattern; import org.apache.oro.text.regex.Perl5Compiler; @@ -207,7 +208,7 @@ * @param path * @return boolean */ - public boolean isFiltered(String path) { + public boolean isFiltered(String path,TestElement el) { // we do a quick check to see if any
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog SharedTCLogParser.java
mstover12005/08/16 10:48:15 Modified:src/protocol/http/org/apache/jmeter/protocol/http/sampler Tag: rel-2-1 AccessLogSampler.java Added: src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog Tag: rel-2-1 SharedTCLogParser.java Log: Fixing Access Log Sampler - adding a new parser that allows a shared file to be accessed synchronously from multiple threads. Previous option of independent threads running the same file still exists. Revision ChangesPath No revision No revision 1.21.2.2 +7 -3 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java Index: AccessLogSampler.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java,v retrieving revision 1.21.2.1 retrieving revision 1.21.2.2 diff -u -r1.21.2.1 -r1.21.2.2 --- AccessLogSampler.java 11 Aug 2005 21:59:36 - 1.21.2.1 +++ AccessLogSampler.java 16 Aug 2005 17:48:15 - 1.21.2.2 @@ -295,8 +295,12 @@ if (TestCloneable.class.isAssignableFrom(Class.forName(filterClassName))) { initFilter(); s.filter = (Filter) ((TestCloneable) filter).clone(); -instantiateParser(); } + if(TestCloneable.class.isAssignableFrom(Class.forName(parserClassName))) +{ +instantiateParser(); +s.PARSER = (LogParser)((TestCloneable)PARSER).clone(); +} } catch (Exception e) { log.warn(Could not clone cloneable filter, e); } No revision No revision 1.1.2.1 +92 -0 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/Attic/SharedTCLogParser.java - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/util JMeterVersion.java
mstover12005/08/15 13:33:08 Modified:src/core/org/apache/jmeter/engine/event LoopIterationListener.java src/components/org/apache/jmeter/control TransactionController.java ForeachController.java ThroughputController.java OnceOnlyController.java InterleaveControl.java src/core/org/apache/jmeter/control WhileController.java RunTime.java IfController.java LoopController.java GenericController.java src/protocol/jms/org/apache/jmeter/protocol/jms/sampler JMSSampler.java SubscriberSampler.java PublisherSampler.java src/core/org/apache/jmeter/samplers SampleResult.java src/components/org/apache/jmeter/modifiers CounterConfig.java UserParameters.java src/core/org/apache/jmeter/assertions AssertionResult.java src/core/org/apache/jmeter/threads JMeterThread.java bin/testfiles RenderTreeTest.jmx Test Plan_out.jmx GuiTest_2.jmx src/core/org/apache/jmeter/visualizers SamplingStatCalculator.java src/components/org/apache/jmeter/timers ConstantTimer.java src/components/org/apache/jmeter/config CSVDataSet.java src/core/org/apache/jmeter/util JMeterVersion.java Added: src/components/org/apache/jmeter/assertions CompareAssertionResources.properties CompareAssertionBeanInfo.java CompareAssertion.java Log: Modifying inheritance structure of Controllers Added LoopIterationEnd event New CompareAssertion Revision ChangesPath 1.5 +2 -1 jakarta-jmeter/src/core/org/apache/jmeter/engine/event/LoopIterationListener.java Index: LoopIterationListener.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/event/LoopIterationListener.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- LoopIterationListener.java12 Jul 2005 20:50:42 - 1.4 +++ LoopIterationListener.java15 Aug 2005 20:33:06 - 1.5 @@ -20,4 +20,5 @@ public interface LoopIterationListener { public void iterationStart(LoopIterationEvent iterEvent); + public void iterationEnd(LoopIterationEvent iterEvent); } 1.6 +4 -4 jakarta-jmeter/src/components/org/apache/jmeter/control/TransactionController.java Index: TransactionController.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/TransactionController.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- TransactionController.java12 Jul 2005 20:51:02 - 1.5 +++ TransactionController.java15 Aug 2005 20:33:06 - 1.6 @@ -67,7 +67,7 @@ /** * @see org.apache.jmeter.control.Controller#next() */ - public Sampler next() { + public Sampler doNext() { Sampler returnValue = null; if (isFirst()) // must be the start of the subtree { @@ -79,7 +79,7 @@ calls++; - returnValue = super.next(); + returnValue = super.doNext(); if (returnValue == null) // Must be the end of the controller { 1.7 +5 -5 jakarta-jmeter/src/components/org/apache/jmeter/control/ForeachController.java Index: ForeachController.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/ForeachController.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ForeachController.java12 Jul 2005 20:51:02 - 1.6 +++ ForeachController.java15 Aug 2005 20:33:06 - 1.7 @@ -116,12 +116,12 @@ } // Prevent entry if nothing to do - public Sampler next() { + public Sampler doNext() { if (emptyList()) { reInitialize(); return null; } - return super.next(); + return super.doNext(); } /** @@ -152,7 +152,7 @@ resetLoopCount(); return null; } else { - return next(); + return doNext(); } } 1.19 +11 -4 jakarta-jmeter/src/components/org/apache/jmeter/control/ThroughputController.java Index
cvs commit: jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler JDBCSamplerBeanInfo.java JDBCSamplerResources_es.properties JDBCSamplerResources.properties JDBCSampler.java
mstover12005/08/15 14:02:42 Modified:xdocschanges.xml src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler JDBCSamplerBeanInfo.java JDBCSamplerResources_es.properties JDBCSamplerResources.properties JDBCSampler.java Log: MERGE from 2-1 Revision ChangesPath 1.39 +3 -1 jakarta-jmeter/xdocs/changes.xml Index: changes.xml === RCS file: /home/cvs/jakarta-jmeter/xdocs/changes.xml,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- changes.xml 10 Aug 2005 14:28:31 - 1.38 +++ changes.xml 15 Aug 2005 21:02:42 - 1.39 @@ -56,6 +56,7 @@ liBug 35525 - Added Spanish localisation/li liBug 30379 - allow server.rmi.port to be overridden/li liCSVRead - allow next to be appended to column number/li +lienhanced the monitor listener to save the calculated stats/li /ul h4Bug fixes:/h4 ul @@ -83,6 +84,7 @@ liFixed screen borders for LDAP config GUI elements/li liBug 31184 - make sure encoding is specified in JDBC sampler/li liTCP sampler - only share sockets with same host:port details; correct the manual/li +liExtract src attribute for embed tags in JTidy and Html Parsers/li /ul h3Version 2.0.3/h3 1.6 +5 -3 jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerBeanInfo.java Index: JDBCSamplerBeanInfo.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerBeanInfo.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- JDBCSamplerBeanInfo.java 12 Jul 2005 20:50:54 - 1.5 +++ JDBCSamplerBeanInfo.java 15 Aug 2005 21:02:42 - 1.6 @@ -40,15 +40,17 @@ createPropertyGroup(varName, new String[] { dataSource }); - createPropertyGroup(sql, new String[] { queryOnly, query }); + createPropertyGroup(sql, new String[] { queryType, query }); PropertyDescriptor p = property(dataSource); p.setValue(NOT_UNDEFINED, Boolean.TRUE); p.setValue(DEFAULT, ); - p = property(queryOnly); + p = property(queryType); p.setValue(NOT_UNDEFINED, Boolean.TRUE); - p.setValue(DEFAULT, new Boolean(true)); + p.setValue(DEFAULT, JDBCSampler.SELECT); + p.setValue(NOT_OTHER,Boolean.TRUE); + p.setValue(TAGS,new String[]{JDBCSampler.SELECT,Update Statement}); p = property(query); p.setValue(NOT_UNDEFINED, Boolean.TRUE); 1.2 +2 -2 jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerResources_es.properties Index: JDBCSamplerResources_es.properties === RCS file: /home/cvs/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerResources_es.properties,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- JDBCSamplerResources_es.properties10 Jul 2005 19:23:47 - 1.1 +++ JDBCSamplerResources_es.properties15 Aug 2005 21:02:42 - 1.2 @@ -4,7 +4,7 @@ displayName=Petici\u00F3n JDBC query.displayName=Query query.shortDescription=Query SQL a enviar a la base de datos -queryOnly.displayName=Solo Query -queryOnly.shortDescription=is true, se lanzar\u00E1 como una query y no como un update/inser. Si no, se lanza como update. +queryType.displayName=Solo Query +queryType.shortDescription=is true, se lanzar\u00E1 como una query y no como un update/inser. Si no, se lanza como update. sql.displayName=Query SQL varName.displayName=Nombre de Variable Ligada al Pool 1.4 +2 -2 jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerResources.properties Index: JDBCSamplerResources.properties === RCS file: /home/cvs/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerResources.properties,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- JDBCSamplerResources.properties 15 Apr 2005 19:55:37 - 1.3 +++ JDBCSamplerResources.properties 15 Aug 2005 21:02:42 - 1.4 @@ -3,7 +3,7 @@ sql.displayName=SQL Query query.displayName=Query query.shortDescription=SQL Query to send to database -queryOnly.displayName=Query Only -queryOnly.shortDescription=If true, will run as a query and not as an update/insert. Otherwise, run as update
cvs commit: jakarta-jmeter/xdocs changes.xml
mstover12005/07/12 13:42:21 Modified:xdocschanges.xml Log: Couple additions/modifications to changes doc page Revision ChangesPath 1.36 +4 -2 jakarta-jmeter/xdocs/changes.xml Index: changes.xml === RCS file: /home/cvs/jakarta-jmeter/xdocs/changes.xml,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- changes.xml 10 Jul 2005 22:47:36 - 1.35 +++ changes.xml 12 Jul 2005 20:42:21 - 1.36 @@ -30,10 +30,12 @@ h3Version 2.1/h3 h4New functionality:/h4 ul +liNew Test Script file format - smaller, more compact, more readable/li +liNew Sample Result file format - smaller, more compact/li liXSchema Assertion/li liXML Tree display/li -liNew JMX and Results format. Previous formats still available./li liCSV DataSet Config item/li +liNew JDBC Connection Pool Config Element/li liSynchronisation Timer/li lisetProperty function/li liSave response data on error/li - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/bin jmeter.properties
mstover12005/06/30 06:49:14 Modified:bin jmeter.properties Log: Should default to the new file format Revision ChangesPath 1.122 +2 -2 jakarta-jmeter/bin/jmeter.properties Index: jmeter.properties === RCS file: /home/cvs/jakarta-jmeter/bin/jmeter.properties,v retrieving revision 1.121 retrieving revision 1.122 diff -u -r1.121 -r1.122 --- jmeter.properties 14 Jun 2005 23:47:46 - 1.121 +++ jmeter.properties 30 Jun 2005 13:49:14 - 1.122 @@ -29,7 +29,7 @@ # Save test plans and test logs in 2.0 format #file_format=2.0 # Just test plans (jmx) -file_format.testplan=2.0 +#file_format.testplan=2.0 # Just test logs (jtl) #file_format.testlog=2.0 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/resources messages.properties
mstover12005/06/30 08:36:02 Modified:src/components/org/apache/jmeter/control ModuleController.java src/components/org/apache/jmeter/control/gui ModuleControllerGui.java src/core/org/apache/jmeter/resources messages.properties Log: Fixing bug 23248 - module controller can't remember stuff between save and reload. Revision ChangesPath 1.9 +20 -18 jakarta-jmeter/src/components/org/apache/jmeter/control/ModuleController.java Index: ModuleController.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/ModuleController.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ModuleController.java 21 Oct 2004 22:22:45 - 1.8 +++ ModuleController.java 30 Jun 2005 15:36:02 - 1.9 @@ -18,8 +18,9 @@ package org.apache.jmeter.control; +import java.util.ArrayList; import java.util.Enumeration; -import java.util.Vector; +import java.util.List; import javax.swing.tree.TreeNode; @@ -30,6 +31,8 @@ import org.apache.jmeter.testelement.property.JMeterProperty; import org.apache.jmeter.testelement.property.NullProperty; import org.apache.jorphan.collections.HashTree; +import org.apache.jorphan.logging.LoggingManager; +import org.apache.log.Logger; /** * The goal of ModuleController is to add modularity to JMeter. The general idea @@ -50,7 +53,7 @@ extends GenericController implements ReplaceableController { - +private static final Logger log = LoggingManager.getLoggerForClass(); private static final String NODE_PATH = ModuleController.node_path; private JMeterTreeNode selectedNode = null; @@ -114,13 +117,14 @@ * @return JMeterTreeNode */ public JMeterTreeNode getSelectedNode() -{ +{ +if(selectedNode == null) restoreSelected(); return selectedNode; } private void setNodePath() { -Vector nodePath = new Vector(); +List nodePath = new ArrayList(); if (selectedNode != null) { TreeNode[] path = selectedNode.getPath(); @@ -128,17 +132,17 @@ { nodePath.add(((JMeterTreeNode) path[i]).getName()); } -nodePath.add(selectedNode.getName()); +//nodePath.add(selectedNode.getName()); } setProperty(new CollectionProperty(NODE_PATH, nodePath)); } -private Vector getNodePath() +public List getNodePath() { JMeterProperty prop = getProperty(NODE_PATH); if (!(prop instanceof NullProperty)) { -return (Vector) ((CollectionProperty) prop).getObjectValue(); +return (List) ((CollectionProperty) prop).getObjectValue(); } else { @@ -150,7 +154,7 @@ { if (selectedNode == null) { -Vector nodePath = getNodePath(); +List nodePath = getNodePath(); if (nodePath != null nodePath.size() 0) { GuiPackage gp = GuiPackage.getInstance(); @@ -158,25 +162,23 @@ { JMeterTreeNode root = (JMeterTreeNode) gp.getTreeModel().getRoot(); -nodePath.remove(0); -traverse(root, nodePath); +traverse(root, nodePath,1); } } } } -private void traverse(JMeterTreeNode node, Vector nodePath) +private void traverse(JMeterTreeNode node, List nodePath,int level) { -if (node != null nodePath.size() 0) +if (node != null nodePath.size() level) { for (int i = 0; i node.getChildCount(); i++) { JMeterTreeNode cur = (JMeterTreeNode) node.getChildAt(i); -if (cur.getName().equals(nodePath.elementAt(0).toString())) +if (cur.getName().equals(nodePath.get(level).toString())) { -selectedNode = cur; -nodePath.remove(0); -traverse(cur, nodePath); +if(nodePath.size() == (level + 1)) selectedNode = cur; +traverse(cur, nodePath,level + 1); } } } 1.18 +39 -6 jakarta-jmeter/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java Index: ModuleControllerGui.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/gui
cvs commit: jakarta-jmeter/xdocs/usermanual component_reference.xml
mstover12005/06/10 07:03:57 Modified:src/components/org/apache/jmeter/timers ConstantThroughputTimerResources_ja.properties ConstantThroughputTimerResources_zh_TW.properties xdocs/usermanual component_reference.xml Log: updating resources for the ConstantThroughputTimer, adding documentation for jdbc connection pool. Revision ChangesPath 1.4 +7 -2 jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimerResources_ja.properties Index: ConstantThroughputTimerResources_ja.properties === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimerResources_ja.properties,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ConstantThroughputTimerResources_ja.properties14 Dec 2004 00:37:13 - 1.3 +++ ConstantThroughputTimerResources_ja.properties10 Jun 2005 14:03:57 - 1.4 @@ -1,5 +1,10 @@ #Stored by I18NEdit, may be edited! displayName=\u5B9A\u6570\u30B9\u30EB\u30FC\u30D7\u30C3\u30C8\u30BF\u30A4\u30DE +delay.displayName=Delay before each affected sampler throughput.displayName=\u30BF\u30FC\u30B2\u30C3\u30C8\u30B9\u30EB\u30FC\u30D7\u30C3\u30C8(\u30B5\u30F3\u30D7\u30EB\u6570/\u30DF\u30EA\u79D2) -legacyMode.displayName=Legacy Mode -legacyMode.shortDescription=The Constant Throughput Timer used to delay each thread as though it was the only thread in the test. Now, it calculates the delay taking into account the number of threads in the test. +throughput.shortDescription=Maximum number of samples you want to obtain per minute, per thread, from all affected samplers. +calcMode.displayName=Calculate Throughput based on +calcMode.shortDescription=The Constant Throughput Timer used to delay each thread as though it was the only thread in the test. Now, it calculates the delay taking into account the number of active threads in the test or the thread group. +calcMode.1=this thread only +calcMode.2=all active threads +calcMode.3=all active threads in current thread group \ No newline at end of file 1.2 +5 -2 jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimerResources_zh_TW.properties Index: ConstantThroughputTimerResources_zh_TW.properties === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimerResources_zh_TW.properties,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ConstantThroughputTimerResources_zh_TW.properties 2 May 2005 11:40:33 - 1.1 +++ ConstantThroughputTimerResources_zh_TW.properties 10 Jun 2005 14:03:57 - 1.2 @@ -1,7 +1,10 @@ #Stored by I18NEdit, may be edited! delay.displayName=\u6BCF\u500B\u53D6\u6A23\u9593\u7684\u5EF6\u9072\u6642\u9593 displayName=\u56FA\u5B9A\u6642\u9694 -legacyMode.displayName=\u50B3\u7D71\u6A21\u5F0F -legacyMode.shortDescription=\u50C5\u542B\u6E2C\u8A66\u4E2D\u7684\u57F7\u884C\u7DD2. \u70BA\u6E2C\u8A66\u4E2D\u57F7\u884C\u7DD2\u4E2D\u7684\u5EF6\u9072\u6642\u9694 +calcMode.displayName=Calculate Throughput based on +calcMode.shortDescription=The Constant Throughput Timer used to delay each thread as though it was the only thread in the test. Now, it calculates the delay taking into account the number of active threads in the test or the thread group. +calcMode.1=this thread only +calcMode.2=all active threads +calcMode.3=all active threads in current thread group throughput.displayName=\u76EE\u6A19\u8655\u7406\u91CF(\u6BCF\u5206\u9418\u53D6\u6A23\u6578) throughput.shortDescription=\u5728\u6240\u6709\u53D6\u6A23\u4E2D\uFF0C\u6BCF\u57F7\u884C\u7DD2\u6BCF\u5206\u9418\u5167\u7684\u6700\u5927\u53D6\u6A23\u6578 1.116 +23 -3 jakarta-jmeter/xdocs/usermanual/component_reference.xml Index: component_reference.xml === RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/component_reference.xml,v retrieving revision 1.115 retrieving revision 1.116 diff -u -r1.115 -r1.116 --- component_reference.xml 5 Jun 2005 00:52:10 - 1.115 +++ component_reference.xml 10 Jun 2005 14:03:57 - 1.116 @@ -1660,9 +1660,29 @@ component index=16.4.6 name=JDBC Connection Configuration screenshot=jdbc-config/jdbc-conn-config.png - descriptionDefines the JDBC Connection settings to be used by - the complink name=JDBC Request/Sampler. + descriptionCreates a database connection pool (used by complink name=JDBC Request/Sampler) + with JDBC Connection settings. /description + properties + property name=Name required
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/save OldSaveService.java
mstover12005/04/22 10:40:08 Modified:src/core/org/apache/jmeter/reporters ResultCollector.java src/core/org/apache/jmeter/util JMeterVersion.java src/core/org/apache/jmeter/save OldSaveService.java Log: Save sample results in 2.0 format if 2.0 format chosen in jmeter.properties Revision ChangesPath 1.47 +450 -476 jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java Index: ResultCollector.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java,v retrieving revision 1.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- ResultCollector.java 18 Apr 2005 20:43:41 - 1.46 +++ ResultCollector.java 22 Apr 2005 17:40:08 - 1.47 @@ -20,6 +20,7 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -40,7 +41,7 @@ import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; -//import org.apache.avalon.framework.configuration.DefaultConfigurationSerializer; +import org.apache.avalon.framework.configuration.DefaultConfigurationSerializer; import org.apache.jmeter.engine.event.LoopIterationEvent; import org.apache.jmeter.engine.util.NoThreadClone; import org.apache.jmeter.samplers.Clearable; @@ -56,6 +57,7 @@ import org.apache.jmeter.testelement.TestListener; import org.apache.jmeter.testelement.property.BooleanProperty; import org.apache.jmeter.testelement.property.ObjectProperty; +import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; import org.xml.sax.SAXException; @@ -63,491 +65,463 @@ /** */ public class ResultCollector extends AbstractListenerElement implements - SampleListener, Clearable, Serializable, TestListener, Remoteable, - NoThreadClone -{ - static final long serialVersionUID = 1; - private static final String TESTRESULTS_START = testResults; - private static final String TESTRESULTS_END = /testResults; - private static final String XML_HEADER = ?xml version=\1.0\ encoding=\UTF-8\?; - private static final int MIN_XML_FILE_LEN = XML_HEADER.length() - + TESTRESULTS_START.length() + TESTRESULTS_END.length(); - transient private static Logger log = LoggingManager.getLoggerForClass(); - public final static String FILENAME = filename; - public final static String SAVE_CONFIG = saveConfig; - private static boolean functionalMode = false; - public static final String ERROR_LOGGING = ResultCollector.error_logging; - // protected List results = Collections.synchronizedList(new ArrayList()); - //private int current; - //transient private DefaultConfigurationSerializer serializer; - //private boolean inLoading = false; - transient private volatile PrintWriter out; - private boolean inTest = false; - private static Map files = new HashMap(); - private Set hosts = new HashSet(); - protected boolean isStats = false; - - /** -* No-arg constructor. -*/ - public ResultCollector() - { - //current = -1; - //serializer = new DefaultConfigurationSerializer(); - setErrorLogging(false); - setProperty(new ObjectProperty(SAVE_CONFIG,new SampleSaveConfiguration())); - } - - private void setFilenameProperty(String f) - { - setProperty(FILENAME, f); - } - - public String getFilename() - { - return getPropertyAsString(FILENAME); - } - - public boolean isErrorLogging() - { - return getPropertyAsBoolean(ERROR_LOGGING); - } - - public void setErrorLogging(boolean errorLogging) - { - setProperty(new BooleanProperty(ERROR_LOGGING, errorLogging)); - } - - /** -* Sets the filename attribute of the ResultCollector object. -* -* @param f -* the new filename value -*/ - public void setFilename(String f) - { - if (inTest) { return; } - setFilenameProperty(f); - } - - public void testEnded(String host) - { - hosts.remove(host); - if (hosts.size() == 0) - { - finalizeFileOutput(); - inTest = false; - } - } - - public void testStarted(String host) - { - hosts.add(host); - try - { - initializeFileOutput(); - if (getVisualizer() != null){ - this.isStats = getVisualizer().isStats
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter JMeter.java
mstover12005/04/22 10:38:51 Modified:src/core/org/apache/jmeter JMeter.java Log: File Server base dir needs to be set in non-gui case too Revision ChangesPath 1.35 +2 -0 jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java Index: JMeter.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- JMeter.java 20 Mar 2005 22:05:46 - 1.34 +++ JMeter.java 22 Apr 2005 17:38:51 - 1.35 @@ -57,6 +57,7 @@ import org.apache.jmeter.samplers.Remoteable; import org.apache.jmeter.samplers.gui.AbstractSamplerGui; import org.apache.jmeter.save.SaveService; +import org.apache.jmeter.services.FileServer; import org.apache.jmeter.testelement.TestElement; import org.apache.jmeter.testelement.TestListener; import org.apache.jmeter.testelement.property.NullProperty; @@ -537,6 +538,7 @@ println(Could not open + testFile); return; } +FileServer.getFileServer().setBasedir(f.getAbsolutePath()); reader = new FileInputStream(f); log.info(Loading file: + f); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/jorphan/org/apache/jorphan/util Converter.java
mstover12005/04/18 08:16:08 Modified:src/core/org/apache/jmeter/testbeans TestBeanHelper.java src/core/org/apache/jmeter/util JsseSSLManager.java src/jorphan/org/apache/jorphan/util Converter.java Added: src/components/org/apache/jmeter/timers SyncTimer.java SyncTimerBeanInfo.java SyncTimerResources.properties Log: New Sync Timer Fixing Conversion to Double for Throughput Timer Renaming enum variable to enumer Revision ChangesPath 1.2 +2 -3 jakarta-jmeter/src/core/org/apache/jmeter/testbeans/TestBeanHelper.java Index: TestBeanHelper.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testbeans/TestBeanHelper.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- TestBeanHelper.java 21 May 2004 21:09:38 - 1.1 +++ TestBeanHelper.java 18 Apr 2005 15:16:08 - 1.2 @@ -67,7 +67,6 @@ { // Obtain a value of the appropriate type for this property. JMeterProperty jprop = el.getProperty(desc[x].getName()); - Class type = desc[x].getPropertyType(); Object value = Converter.convert(jprop.getStringValue(), type); 1.1 jakarta-jmeter/src/components/org/apache/jmeter/timers/SyncTimer.java Index: SyncTimer.java === package org.apache.jmeter.timers; import java.io.Serializable; import org.apache.jmeter.testbeans.TestBean; import org.apache.jmeter.testelement.AbstractTestElement; import org.apache.jmeter.threads.JMeterContextService; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; /** * The purpose of the SyncTimer is to block threads until X number of threads have been blocked, and * then they are all released at once. A SyncTimer can thus create large instant loads at various * points of the test plan. * @author mike * */ public class SyncTimer extends AbstractTestElement implements Timer,Serializable,TestBean { private static final long serialVersionUID = 1; static Logger log = LoggingManager.getLoggerForClass(); int[] timerCounter = new int[] {0}; Object sync = new Object(); int groupSize; /** * @return Returns the numThreads. */ public int getGroupSize() { return groupSize; } /** * @param numThreads The numThreads to set. */ public void setGroupSize(int numThreads) { this.groupSize = numThreads; } /* (non-Javadoc) * @see org.apache.jmeter.timers.Timer#delay() */ public long delay() { synchronized(sync) { timerCounter[0]++; if((getGroupSize() == 0 timerCounter[0] = JMeterContextService.getNumberOfThreads()) || (getGroupSize() 0 timerCounter[0] = getGroupSize())) { timerCounter[0] = 0; sync.notifyAll(); } else { try { sync.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } return 0; } /** * We have to controll the cloning process because we need some cross-thread communication if * our synctimers are to be able to determine when to block and when to release. */ public Object clone() { SyncTimer newTimer = (SyncTimer)super.clone(); newTimer.timerCounter = timerCounter; newTimer.sync = sync; return newTimer; } } 1.1 jakarta-jmeter/src/components/org/apache/jmeter/timers/SyncTimerBeanInfo.java Index: SyncTimerBeanInfo.java === package org.apache.jmeter.timers; import java.beans.PropertyDescriptor; import org.apache.jmeter.testbeans.BeanInfoSupport; public class SyncTimerBeanInfo extends BeanInfoSupport { /** * @param beanClass */ public SyncTimerBeanInfo() { super(SyncTimer.class); createPropertyGroup(grouping, new String[] { groupSize}); PropertyDescriptor p = property(groupSize); p.setValue(NOT_UNDEFINED,Boolean.TRUE); p.setValue(DEFAULT,new Integer(0)); } } 1.1 jakarta-jmeter/src/components/org/apache/jmeter/timers/SyncTimerResources.properties Index: SyncTimerResources.properties
cvs commit: jakarta-jmeter/src/components/org/apache/jmeter/config CSVDataSetResources.properties
mstover12005/04/18 13:21:12 Modified:src/core/org/apache/jmeter/services FileServer.java src/core/org/apache/jmeter/gui/action Save.java bin jmeter.properties src/core/org/apache/jmeter/samplers SampleSaveConfiguration.java src/components/org/apache/jmeter/config CSVDataSetResources.properties Log: Allow option to save test plans to old file format Fixing minor resource problem in CSVDataSet some documentation in FileServer Revision ChangesPath 1.6 +9 -2 jakarta-jmeter/src/core/org/apache/jmeter/services/FileServer.java Index: FileServer.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/services/FileServer.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- FileServer.java 13 Feb 2005 14:16:46 - 1.5 +++ FileServer.java 18 Apr 2005 20:21:11 - 1.6 @@ -27,8 +27,15 @@ /** * @author mstover * - * TODO To change the template for this generated type comment go to - * Window - Preferences - Java - Code Style - Code Templates + * The point of this class is to provide thread-safe access to files, and to provide + * some simplifying assumptions about where to find files and how to name them. For instance, + * putting supporting files in the same directory as the saved test plan file allows users + * to refer to the file with just it's name - this FileServer class will find the file without + * a problem. Eventually, I want all in-test file access to be done through here, with the goal + * of packaging up entire test plans as a directory structure that can be sent via rmi to + * remote servers (currently, one must make sure the remote server has all support files in + * a relative-same location) and to package up test plans to execute on unknown boxes that + * only have Java installed. */ public class FileServer { 1.25 +13 -4 jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Save.java Index: Save.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Save.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- Save.java 19 Oct 2004 20:08:19 - 1.24 +++ Save.java 18 Apr 2005 20:21:11 - 1.25 @@ -19,6 +19,7 @@ package org.apache.jmeter.gui.action; import java.awt.event.ActionEvent; +import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; @@ -34,6 +35,7 @@ import org.apache.jmeter.gui.GuiPackage; import org.apache.jmeter.gui.tree.JMeterTreeNode; import org.apache.jmeter.gui.util.FileDialoger; +import org.apache.jmeter.save.OldSaveService; import org.apache.jmeter.save.SaveService; import org.apache.jmeter.services.FileServer; import org.apache.jmeter.testelement.TestElement; @@ -153,8 +155,15 @@ Writer writer = null; try { -writer = new FileWriter(updateFile); -SaveService.saveTree(subTree,writer); +if(JMeterUtils.getPropDefault(file_format,2.1).equals(2.0)) +{ +OldSaveService.saveSubTree(subTree,new FileOutputStream(updateFile)); +} +else +{ +writer = new FileWriter(updateFile); +SaveService.saveTree(subTree,writer); +} } catch (Throwable ex) { 1.117 +7 -3 jakarta-jmeter/bin/jmeter.properties Index: jmeter.properties === RCS file: /home/cvs/jakarta-jmeter/bin/jmeter.properties,v retrieving revision 1.116 retrieving revision 1.117 diff -u -r1.116 -r1.117 --- jmeter.properties 2 Apr 2005 23:17:56 - 1.116 +++ jmeter.properties 18 Apr 2005 20:21:12 - 1.117 @@ -24,6 +24,10 @@ # Netscape HTTP Cookie file cookies=cookies +#File format for saved test files. JMeter 2.1 uses a new format. Set value to 2.0 to save to old +# format +#file_format=2.0 + # Authorization authorization=authorization @@ -45,10 +49,10 @@ #The location of the truststore (trusted certificates) and keystore ( if other than the default. #you can uncomment this and change the path to the correct location. #javax.net.ssl.trustStore=/path/to/cacerts -#javax.net.ssl.keyStore=/path/to/keystore +javax.net.ssl.keyStore=/usr/java/jdk1.5.0_02/jre/lib/security/cacerts #The password to your keystore -#javax.net.ssl.keyStorePassword=password +javax.net.ssl.keyStorePassword=changeit #Alternative protocol of the ssl provider
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/reporters ResultCollector.java
mstover12005/04/18 13:43:41 Modified:src/core/org/apache/jmeter/reporters ResultCollector.java Log: Fixing issue when saving to old format and then trying to load back into 2.1 Revision ChangesPath 1.46 +9 -1 jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java Index: ResultCollector.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- ResultCollector.java 23 Mar 2005 01:16:32 - 1.45 +++ ResultCollector.java 18 Apr 2005 20:43:41 - 1.46 @@ -533,7 +533,15 @@ */ public SampleSaveConfiguration getSaveConfig() { - return (SampleSaveConfiguration)getProperty(SAVE_CONFIG).getObjectValue(); + try + { + return (SampleSaveConfiguration)getProperty(SAVE_CONFIG).getObjectValue(); + } + catch(ClassCastException e) + { + setSaveConfig(new SampleSaveConfiguration()); + return getSaveConfig(); + } } /** * @param saveConfig The saveConfig to set. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler JDBCSamplerBeanInfo.java JDBCSamplerResources.properties JDBCSampler.java
mstover12005/04/15 12:55:37 Modified:src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler JDBCSamplerBeanInfo.java JDBCSamplerResources.properties JDBCSampler.java Log: Adding option in JDBC sampler to specify whether the SQL represents a query or an update, since it makes a difference to how JMeter executes it and how/if it grabs the result set. Revision ChangesPath 1.3 +5 -1 jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerBeanInfo.java Index: JDBCSamplerBeanInfo.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerBeanInfo.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JDBCSamplerBeanInfo.java 21 May 2004 16:58:26 - 1.2 +++ JDBCSamplerBeanInfo.java 15 Apr 2005 19:55:37 - 1.3 @@ -27,7 +27,7 @@ { super(JDBCSampler.class); - createPropertyGroup(varName, new String[]{dataSource}); + createPropertyGroup(varName, new String[]{dataSource,queryOnly}); createPropertyGroup(sql, new String[]{query}); @@ -35,6 +35,10 @@ p.setValue(NOT_UNDEFINED, Boolean.TRUE); p.setValue(DEFAULT, ); + p = property(queryOnly); + p.setValue(NOT_UNDEFINED,Boolean.TRUE); + p.setValue(DEFAULT,new Boolean(true)); + p = property(query); p.setValue(NOT_UNDEFINED, Boolean.TRUE); p.setValue(DEFAULT, ); 1.3 +2 -0 jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerResources.properties Index: JDBCSamplerResources.properties === RCS file: /home/cvs/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSamplerResources.properties,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JDBCSamplerResources.properties 28 May 2004 21:09:14 - 1.2 +++ JDBCSamplerResources.properties 15 Apr 2005 19:55:37 - 1.3 @@ -3,5 +3,7 @@ sql.displayName=SQL Query query.displayName=Query query.shortDescription=SQL Query to send to database +queryOnly.displayName=Query Only +queryOnly.shortDescription=If true, will run as a query and not as an update/insert. Otherwise, run as update. dataSource.displayName=Variable Name dataSource.shortDescription=Name of the JMeter variable that the connection pool is bound to. \ No newline at end of file 1.32 +20 -4 jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java Index: JDBCSampler.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- JDBCSampler.java 4 Jan 2005 19:32:10 - 1.31 +++ JDBCSampler.java 15 Apr 2005 19:55:37 - 1.32 @@ -48,6 +48,7 @@ public String query = ; public String dataSource = ; +public boolean queryOnly = true; /** * Creates a JDBCSampler. @@ -79,12 +80,12 @@ stmt = conn.createStatement(); // Based on query return value, get results -if (stmt.execute(getQuery())) +if (isQueryOnly()) { ResultSet rs = null; try { -rs = stmt.getResultSet(); +rs = stmt.executeQuery(getQuery()); Data data = getDataFromResultSet(rs); res.setResponseData(data.toString().getBytes()); } @@ -105,6 +106,7 @@ } else { +stmt.execute(getQuery()); int updateCount = stmt.getUpdateCount(); String results = updateCount + updates; res.setResponseData(results.getBytes()); @@ -221,4 +223,18 @@ { this.dataSource = dataSource; } + +/** + * @return Returns the queryOnly. + */ +public boolean isQueryOnly() { +return queryOnly; +} + +/** + * @param queryOnly The queryOnly to set. + */ +public void setQueryOnly(boolean queryOnly) { +this.queryOnly = queryOnly; +} } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/gui GuiPackage.java
mstover12005/04/08 08:05:11 Modified:src/core/org/apache/jmeter/gui/tree JMeterTreeListener.java src/core/org/apache/jmeter/gui GuiPackage.java Log: Fixing issue where switching selected elements in tree solely by right-clicking causes overwriting of component data. Thorny issue, this fix needs much testing. Revision ChangesPath 1.16 +4 -3 jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeListener.java Index: JMeterTreeListener.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeListener.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- JMeterTreeListener.java 20 Feb 2004 02:20:47 - 1.15 +++ JMeterTreeListener.java 8 Apr 2005 15:05:11 - 1.16 @@ -177,6 +177,7 @@ public void valueChanged(TreeSelectionEvent e) { +log.debug(value changed, updating currentPath); currentPath = e.getNewLeadSelectionPath(); actionHandler.actionPerformed(new ActionEvent(this, , edit)); } @@ -280,12 +281,12 @@ { // Get the Main Frame. MainFrame mainFrame = GuiPackage.getInstance().getMainFrame(); - // Close any Main Menu that is open mainFrame.closeMenu(); int selRow = tree.getRowForLocation(e.getX(), e.getY()); if (tree.getPathForLocation(e.getX(), e.getY()) != null) { +log.debug(mouse pressed, updating currentPath); currentPath = tree.getPathForLocation(e.getX(), e.getY()); } if (selRow != -1) 1.35 +13 -3 jakarta-jmeter/src/core/org/apache/jmeter/gui/GuiPackage.java Index: GuiPackage.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/GuiPackage.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- GuiPackage.java 30 Oct 2004 00:27:44 - 1.34 +++ GuiPackage.java 8 Apr 2005 15:05:11 - 1.35 @@ -90,6 +90,7 @@ /** The currently selected node in the tree. */ private JMeterTreeNode currentNode = null; +private boolean currentNodeUpdated = false; /** The model for JMeter's test tree. */ private JMeterTreeModel treeModel; @@ -242,6 +243,7 @@ { try { +updateCurrentNode(); TestElement currentNode = treeListener.getCurrentNode().getTestElement(); JMeterGUIComponent comp = getGui(currentNode); @@ -249,7 +251,9 @@ { comp.clear(); } +log.debug(Updating gui to new node); comp.configure(currentNode); +currentNodeUpdated = false; return comp; } catch (Exception e) @@ -402,10 +406,12 @@ */ public void updateCurrentGui() { +updateCurrentNode(); currentNode= treeListener.getCurrentNode(); TestElement element = currentNode.getTestElement(); JMeterGUIComponent comp = getGui(element); comp.configure(element); +currentNodeUpdated = false; } /** @@ -417,7 +423,7 @@ { try { -if (currentNode != null) +if (currentNode != null !currentNodeUpdated) { log.debug( Updating current node + currentNode.getName()); @@ -426,6 +432,10 @@ TestElement el = currentNode.getTestElement(); comp.modifyTestElement(el); } +if(currentNode != treeListener.getCurrentNode()) +{ +currentNodeUpdated = true; +} currentNode = treeListener.getCurrentNode(); } catch (Exception e) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/jorphan/org/apache/jorphan/util JOrphanUtils.java
mstover12005/03/18 07:27:01 Modified:src/components/org/apache/jmeter/assertions BeanShellAssertion.java src/functions/org/apache/jmeter/functions BeanShell.java FileWrapper.java RegexFunction.java JavaScript.java FileRowColContainer.java PackageTest.java ThreadNumber.java src/core/org/apache/jmeter/resources messages_fr.properties PackageTest.java messages.properties bin jmeter-server.bat jmeter-n.bat jmeter.properties jmeter-t.bat jmeter jmetertest.properties jmeterw.bat BeanShellFunction.bshrc jmeter.bat src/core/org/apache/jmeter/gui AbstractJMeterGuiComponent.java bin/testfiles HTMLScript.html src/components/org/apache/jmeter/assertions/gui BeanShellAssertionGui.java src/protocol/http/org/apache/jmeter/protocol/http/sampler HTTPSamplerBase.java HTTPSampleResult.java src/core/org/apache/jmeter/util JMeterVersion.java JMeterUtils.java src/components/org/apache/jmeter/control/gui ForeachControlPanel.java ModuleControllerGui.java src/protocol/http/org/apache/jmeter/protocol/http/parser JTidyHTMLParser.java HTMLParser.java HtmlParserHTMLParser.java src/core/org/apache/jmeter/testbeans/gui PackageTest.java src/core/org/apache/jmeter/threads/gui ThreadGroupGui.java xdocs/usermanual component_reference.xml functions.xml src/core/org/apache/jmeter/gui/action Load.java Close.java CheckDirty.java src/core/org/apache/jmeter/control/gui WhileControllerGui.java src/components/org/apache/jmeter/control OnceOnlyController.java ForeachController.java InterleaveControl.java src/core/org/apache/jmeter JMeter.java src/core/org/apache/jmeter/threads ListenerNotifier.java TestCompiler.java JMeterThread.java src/core/org/apache/jmeter/control GenericController.java WhileController.java RunTime.java IfController.java LoopController.java .build.xml lib jar_usage.txt src/protocol/java/org/apache/jmeter/protocol/java/sampler BeanShellSampler.java src/core/org/apache/jmeter/samplers SampleResult.java src/core/org/apache/jmeter/engine StandardJMeterEngine.java src/protocol/http/org/apache/jmeter/protocol/http/control CookieManager.java src/components/org/apache/jmeter/modifiers/gui CounterConfigGui.java xdocschanges.xml src/jorphan/org/apache/jorphan/util JOrphanUtils.java Added: src/components/org/apache/jmeter/assertions package.html XPathAssertion.java src/functions/org/apache/jmeter/functions XPathFileContainer.java XPathWrapper.java XPath.java bin BeanShellAssertion.bshrc bin/testfiles test.tsv HTMLParserTestFrames.all Test Plan_out.jmx HTMLParserTestFrames.html src/jorphan/org/apache/commons/cli/avalon CLOption.java ParserControl.java ClutilTestCase.java CLArgsParser.java CLOptionDescriptor.java AbstractParserControl.java Token.java CLUtil.java package.html src/components/org/apache/jmeter/assertions/gui XPathAssertionGui.java XMLConfPanel.java XPathPanel.java src/core/org/apache/jmeter/util XPathUtil.java BeanShellInterpreter.java xdocs/images/screenshots xpath_assertion.png src/components/org/apache/jmeter/control/gui SwitchControllerGui.java src/components/org/apache/jmeter/control SwitchController.java lib LICENSE(jtidy).txt Removed: lib excalibur-compatibility-1.1.jar excalibur-i18n-1.1.jar Log: Merge from 2-0 and some fixes to controllers that need to recover running version after no samplers under them have run. Revision ChangesPath 1.8 +23 -28 jakarta-jmeter/src/components/org/apache/jmeter/assertions/BeanShellAssertion.java http://cvs.apache.org/viewcvs/jakarta-jmeter
cvs commit: jakarta-jmeter .cvsignore
mstover12005/03/18 07:27:21 Modified:..cvsignore Log: Merge from 2-0 and some fixes to controllers that need to recover running version after no samplers under them have run. Revision ChangesPath 1.18 +1 -0 jakarta-jmeter/.cvsignore Index: .cvsignore === RCS file: /home/cvs/jakarta-jmeter/.cvsignore,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- .cvsignore17 Mar 2005 22:11:09 - 1.17 +++ .cvsignore18 Mar 2005 15:27:20 - 1.18 @@ -8,5 +8,6 @@ .classpath .project .externalToolBuilders +.settings reports local \ No newline at end of file - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/junit JMeterTest.java
mstover12005/03/18 10:10:34 Modified:src/core/org/apache/jmeter/control LoopController.java src/components/org/apache/jmeter/control ThroughputController.java OnceOnlyController.java SwitchController.java InterleaveControl.java src/core/org/apache/jmeter/resources messages.properties src/core/org/apache/jmeter/junit JMeterTest.java Log: Fixing unit tests Revision ChangesPath 1.26 +7 -2 jakarta-jmeter/src/core/org/apache/jmeter/control/LoopController.java Index: LoopController.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/control/LoopController.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- LoopController.java 18 Mar 2005 15:26:58 - 1.25 +++ LoopController.java 18 Mar 2005 18:10:33 - 1.26 @@ -210,6 +210,10 @@ six, seven }; int counter = 15; +controller.setRunningVersion(true); +sub_1.setRunningVersion(true); +sub_2.setRunningVersion(true); +sub_3.setRunningVersion(true); controller.initialize(); for (int i = 0; i 2; i++) { @@ -239,6 +243,7 @@ LoopController loop = new LoopController(); loop.setLoops(-1); loop.addTestElement(new TestSampler(never run)); +loop.setRunningVersion(true); loop.initialize(); for (int i=0; i42; i++) { 1.17 +13 -2 jakarta-jmeter/src/components/org/apache/jmeter/control/ThroughputController.java Index: ThroughputController.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/ThroughputController.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- ThroughputController.java 10 Dec 2004 21:32:54 - 1.16 +++ ThroughputController.java 18 Mar 2005 18:10:33 - 1.17 @@ -426,6 +426,9 @@ three, }; sub_1.testStarted(); +test.setRunningVersion(true); +sub_1.setRunningVersion(true); +loop.setRunningVersion(true); test.initialize(); for (int counter= 0; counter order.length; counter++) { @@ -471,6 +474,8 @@ three, }; int counter= 0; +controller.setRunningVersion(true); +sub_1.setRunningVersion(true); sub_1.testStarted(); controller.initialize(); for (int i=0; i3; i++) @@ -527,6 +532,8 @@ // etc... }; int counter= 0; +controller.setRunningVersion(true); +sub_1.setRunningVersion(true); sub_1.testStarted(); controller.initialize(); for (int i=0; i3; i++) @@ -567,6 +574,8 @@ three, }; int counter= 0; +controller.setRunningVersion(true); +sub_1.setRunningVersion(true); sub_1.testStarted(); controller.initialize(); for (int i=0; i3; i++) @@ -609,6 +618,8 @@ three, }; int counter= 0; +controller.setRunningVersion(true); +sub_1.setRunningVersion(true); sub_1.testStarted(); controller.initialize(); for (int i=0; i3; i++) 1.13 +10 -2 jakarta-jmeter/src/components/org/apache/jmeter/control/OnceOnlyController.java Index: OnceOnlyController.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/OnceOnlyController.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- OnceOnlyController.java 18 Mar 2005 15:26:57 - 1.12 +++ OnceOnlyController.java 18 Mar 2005 18:10:33 - 1.13 @@ -105,6 +105,10 @@ six, seven }; int counter = 15; +controller.setRunningVersion(true); +sub_1.setRunningVersion(true); +sub_2.setRunningVersion(true); +sub_3.setRunningVersion(true); controller.initialize(); for (int i = 0; i 4; i++) { @@ -167,6 +171,10 @@ four, seven }; int counter = 11
cvs commit: jakarta-jmeter/src/jorphan/org/apache/jorphan/collections HashTree.java ConfigurationTree.java
mstover12005/02/14 09:40:59 Modified:test/src/org/apache/jorphan/collections TestConfigurationTree.java src/jorphan/org/apache/jorphan/collections HashTree.java ConfigurationTree.java Log: some new supporting methods for the ConfigurationTree Revision ChangesPath 1.2 +21 -0 jakarta-jmeter/test/src/org/apache/jorphan/collections/TestConfigurationTree.java Index: TestConfigurationTree.java === RCS file: /home/cvs/jakarta-jmeter/test/src/org/apache/jorphan/collections/TestConfigurationTree.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- TestConfigurationTree.java9 Feb 2005 21:11:55 - 1.1 +++ TestConfigurationTree.java14 Feb 2005 17:40:58 - 1.2 @@ -7,6 +7,7 @@ package org.apache.jorphan.collections; import java.io.FileReader; +import java.util.Properties; import org.apache.jmeter.junit.JMeterTestCase; import org.apache.jorphan.io.TextFile; @@ -106,4 +107,24 @@ tree.getProperty( services/org.apache.service.webaction.error.Redirector/exceptions/NoSuchObjectException/msg)); } + +public void testAsProperties() throws Exception +{ +Properties props = config.getAsProperties(); +assertEquals(value4,props.getProperty(param4)); +} + +public void testAddProps() throws Exception +{ +Properties props = new Properties(); +props.setProperty(name,Mike); +props.setProperty(pets,dog); +config.add(props); +assertEquals(dog,config.getProperty(pets)); +} + +public void testDefault() throws Exception +{ +assertEquals(default,config.getProperty(notThere,default)); +} } 1.21 +5 -4 jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/HashTree.java Index: HashTree.java === RCS file: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/HashTree.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- HashTree.java 9 Feb 2005 21:11:55 - 1.20 +++ HashTree.java 14 Feb 2005 17:40:58 - 1.21 @@ -26,6 +26,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedList; import java.util.Map; import java.util.Set; @@ -718,7 +719,7 @@ } else { -return null; +return new LinkedList(); } } @@ -769,7 +770,7 @@ HashTree tree = getTreePath(treePath); if(tree != null) return tree.list(); - return null; + return new LinkedList(); } /** 1.2 +95 -7 jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/ConfigurationTree.java Index: ConfigurationTree.java === RCS file: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/ConfigurationTree.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ConfigurationTree.java9 Feb 2005 21:11:55 - 1.1 +++ ConfigurationTree.java14 Feb 2005 17:40:58 - 1.2 @@ -12,7 +12,9 @@ import java.io.StringWriter; import java.io.Writer; import java.util.Collection; +import java.util.Iterator; import java.util.Map; +import java.util.Properties; /** * @author mike @@ -104,6 +106,18 @@ } return makeSubtree(tree); } + +public ConfigurationTree addRaw(String key,String value) +{ +ListedHashTree tree = (ListedHashTree)propTree.add(key,value); +return makeSubtree(tree); +} + +public ConfigurationTree addRaw(String key) +{ +ListedHashTree tree = (ListedHashTree)propTree.add(key); +return makeSubtree(tree); +} /** * @param key @@ -130,6 +144,30 @@ return makeSubtree((ListedHashTree) propTree.add( getPath(key), value)); } + +public Properties getAsProperties(String key) +{ +return getAsProperties(getTree(key)); +} + +public Properties getAsProperties() +{ +return getAsProperties(this); +} + +protected Properties getAsProperties(ConfigurationTree tree) +{ + Properties props = new Properties(); + if(tree == null) return props; + String[] propNames = tree.getPropertyNames(); + if(propNames == null) return props; + for(int i = 0;i propNames.length;i
cvs commit: jakarta-jmeter/legacy - New directory
mstover12005/02/13 06:16:38 jakarta-jmeter/legacy - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter build.xml
mstover12005/02/13 06:16:46 Modified:src/core/org/apache/jmeter/services FileServer.java src/core/org/apache/jmeter/util JMeterVersion.java .build.xml Added: legacy jdom-b9.jar Log: fixing doc building and gump complaints Revision ChangesPath 1.5 +38 -9 jakarta-jmeter/src/core/org/apache/jmeter/services/FileServer.java Index: FileServer.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/services/FileServer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- FileServer.java 31 Oct 2004 18:17:57 - 1.4 +++ FileServer.java 13 Feb 2005 14:16:46 - 1.5 @@ -7,17 +7,20 @@ package org.apache.jmeter.services; import java.io.BufferedReader; +import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; +import java.io.FileWriter; import java.io.IOException; -import java.util.Random; import java.io.Reader; +import java.io.Writer; import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.Random; -import org.apache.jmeter.util.JMeterUtils; import org.apache.jmeter.gui.JMeterFileFilter; +import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; @@ -108,21 +111,47 @@ throw new IOException(File never reserved); } +public synchronized void write(String filename,String value) throws IOException +{ +Object[] file = (Object[])files.get(filename); +if(file != null) +{ +if(file[1] == null) +{ +file[1] = new BufferedWriter(new FileWriter((File)file[0])); +} +else if(!(file[1] instanceof Writer)) +{ +throw new IOException(File + filename + already in use); +} +BufferedWriter writer = (BufferedWriter)file[1]; +writer.write(value); +} +} + public void closeFiles() throws IOException { Iterator iter = files.keySet().iterator(); while(iter.hasNext()) { -String name = (String)iter.next(); -Object[] file = (Object[])files.get(name); -if(file[1] != null) -{ -((Reader)file[1]).close(); -file[1] = null; -} +closeFile((String)iter.next()); } files.clear(); } + +/** + * @param name + * @throws IOException + */ +public synchronized void closeFile(String name) throws IOException +{ +Object[] file = (Object[])files.get(name); +if(file[1] != null) +{ +((Reader)file[1]).close(); +file[1] = null; +} +} protected boolean filesOpen() { 1.1 jakarta-jmeter/legacy/jdom-b9.jar Binary file 1.34 +1 -1 jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java Index: JMeterVersion.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- JMeterVersion.java10 Feb 2005 14:31:12 - 1.33 +++ JMeterVersion.java13 Feb 2005 14:16:46 - 1.34 @@ -39,7 +39,7 @@ * pattern: VERSION = quote.*quote * */ - static final String VERSION = 2.1.20050210; + static final String VERSION = 2.1.20050211; static final String COPYRIGHT = Copyright (c) 1998-2005 The Apache Software Foundation; 1.199 +4 -3 jakarta-jmeter/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-jmeter/build.xml,v retrieving revision 1.198 retrieving revision 1.199 diff -u -r1.198 -r1.199 --- build.xml 11 Nov 2004 22:33:30 - 1.198 +++ build.xml 13 Feb 2005 14:16:46 - 1.199 @@ -262,6 +262,7 @@ !-- Directory where these 3rd party libraries will live -- property name=lib.dir value=lib/ + property name=legacy.dir location=legacy/ !-- Directory where Optional 3rd party libraries will live -- property name=lib.opt value=lib/opt/ @@ -373,7 +374,7 @@ -- path id=anakia.classpath fileset dir=${lib.dir} includes=velocity*.jar/ -fileset dir=${lib.dir} includes=jdom-*.jar/ +fileset dir=${legacy.dir} includes=jdom-*.jar/ fileset dir=${lib.dir} includes=commons-collections
cvs commit: jakarta-jmeter/bin/testfiles .cvsignore
mstover12005/02/12 11:09:00 Added: bin/testfiles .cvsignore Log: Revision ChangesPath 1.1 jakarta-jmeter/bin/testfiles/.cvsignore Index: .cvsignore === configurationTest.xml - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/gui/action AddParent.java
mstover12005/02/10 06:31:12 Modified:src/core/org/apache/jmeter/resources messages.properties src/core/org/apache/jmeter/util JMeterVersion.java src/core/org/apache/jmeter/gui/action AddParent.java Added: xdocs/extending jmeter_tutorial_mike.pdf src/protocol .cvsignore Log: Applying patch to AddParent.java provided by Hans Jörg Hessmann Revision ChangesPath 1.1 jakarta-jmeter/xdocs/extending/jmeter_tutorial_mike.pdf Binary file 1.134 +19 -142 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties Index: messages.properties === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties,v retrieving revision 1.133 retrieving revision 1.134 diff -u -r1.133 -r1.134 --- messages.properties 10 Dec 2004 21:32:53 - 1.133 +++ messages.properties 10 Feb 2005 14:31:12 - 1.134 @@ -8,14 +8,6 @@ add_value=Add Value aggregate_report=Aggregate Report aggregate_report_total_label=TOTAL -aggregate_report_count=# Samples -aggregate_report_median=Median -aggregate_report_90%_line=90% Line -aggregate_report_min=Min -aggregate_report_max=Max -aggregate_report_error%=Error % -aggregate_report_rate=Throughput -aggregate_report_bandwidth=KB/sec als_message=Note\: The Access Log Parser is generic in design and allows you to plugin als_message2=your own parser. To do so, implement the LogParser, add the jar to the als_message3=/lib directory and enter the class in the sampler. @@ -37,7 +29,6 @@ assertion_title=Response Assertion assertion_url_samp=URL Sampled assertion_visualizer_title=Assertion Results -average=Average auth_base_url=Base URL auth_manager_title=HTTP Authorization Manager auths_stored=Authorizations Stored in the Authorization Manager @@ -67,7 +58,6 @@ column_delete_disallowed=Deleting this column is not permitted column_number=Column number of CSV file | next | *alias config_element=Config Element -config_save_settings=Configure configure_wsdl=Configure constant_throughput_timer_memo=Add a delay between sampling to attain constant throughput constant_timer_delay=Thread Delay (in milliseconds)\: @@ -82,8 +72,17 @@ csvread_file_file_name=CSV file to get values from | *alias cut=Cut cut_paste_function=Copy and paste function string +database_conn_pool_max_usage=Max Usage For Each Connection\: +database_conn_pool_props=Database Connection Pool +database_conn_pool_size=Number of Connections in Pool\: +database_conn_pool_title=JDBC Database Connection Pool Defaults +database_driver_class=Driver Class\: +database_login_title=JDBC Database Login Defaults database_sql_query_string=SQL Query String\: database_sql_query_title=JDBC SQL Query Defaults +database_testing_title=JDBC Request +database_url=JDBC URL\: +database_url_jdbc_props=Database URL and JDBC Driver de=German default_parameters=Default Parameters default_value_field=Default Value\: @@ -93,11 +92,8 @@ delete_test=Delete Test delete_user=Delete User disable=Disable -distribution_graph_title=Distribution Graph (alpha) -distribution_note1=The graph will update every 10 samples dn=DN domain=Domain -done=Done duration=Duration (seconds) duration_assertion_duration_test=Duration to Assert duration_assertion_failure=The operation lasted too long\: It took {0} milliseconds, but should not have lasted longer than {1} milliseconds. @@ -185,7 +181,6 @@ header_manager_title=HTTP Header Manager headers_stored=Headers Stored in the Header Manager help=Help -html_assertion_title=HTML Assertion html_parameter_mask=HTML Parameter Mask http_response_code=HTTP response code http_url_rewriting_modifier_title=HTTP URL Re-writing Modifier @@ -205,60 +200,11 @@ intsum_param_1=First int to add. intsum_param_2=Second int to add - further ints can be summed by adding further arguments. invalid_data=Invalid data -invalid_mail=Error occurred sending the e-mail -invalid_mail_address=One or more invalid e-mail addresses detected -invalid_mail_server=Problem contacting the e-mail server (see JMeter log file) +invalid_mail_server=The mail-server is unknown. iteration_counter_arg_1=TRUE, for each user to have own counter, FALSE for a global counter iterator_num=Loop Count\: java_request=Java Request java_request_defaults=Java Request Defaults -jms_authentication=Authentication -jms_auth_not_required=Not Required -jms_auth_required=Required -jms_client_type=Client -jms_client_caption=Receive client uses TopicSubscriber.receive() to listen for message. -jms_client_caption2=MessageListener uses onMessage(Message) interface to listen for new messages. -jms_config=Configuration
cvs commit: jakarta-jmeter/src/jorphan/org/apache/jorphan/util Converter.java
mstover12005/02/09 13:11:55 Modified:src/jorphan/org/apache/jorphan/collections HashTree.java bin jmeter.properties src/jorphan/org/apache/jorphan/util Converter.java Added: test/src/org/apache/jorphan/collections TestConfigurationTree.java src/jorphan/org/apache/jorphan/collections ConfigurationTree.java bin/testfiles test_config.xml Log: A new configuration Tree object build using the HashTree classes. Provides a simple, heirarchical config file format for easier-on-the-eyes system config files (replacing XML). Revision ChangesPath 1.1 jakarta-jmeter/test/src/org/apache/jorphan/collections/TestConfigurationTree.java Index: TestConfigurationTree.java === /* * Created on Feb 8, 2005 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package org.apache.jorphan.collections; import java.io.FileReader; import org.apache.jmeter.junit.JMeterTestCase; import org.apache.jorphan.io.TextFile; /** * @author mike * * TODO To change the template for this generated type comment go to Window - * Preferences - Java - Code Style - Code Templates */ public class TestConfigurationTree extends JMeterTestCase { ConfigurationTree config; /** * @param name */ public TestConfigurationTree(String name) { super(name); } public void setUp() throws Exception { config = new ConfigurationTree(jmeterConfig); config.add(param1/value1); config.add(param2/value2); config.add(param3/value3); config.add(group1/param6/value6); config.add(group1/param7/value7); config.add(group1/param8/value8); config.add(param4/value4); config.add(group2/param9/value9); config.add(group2/param10/value10); config.add(school/announcement, This is a special announcement.\nToday is Thursday.); config.add(school/announcement/date, Thursday); config.setProperty(school/announcement/title, Way\n\tto\n\t\tgo); config.add(school/subjects/, new String[] { art, science, math, english }); config.setValue(group1, EON Developers); } public void testToString() throws Exception { assertEquals(EON Developers, config.getValue(group1)); config.setProperty(website/url, http://mydomain.com/homepage.jsp;); String props = config.toString(); TextFile tf = new TextFile( findTestFile(testfiles/configurationTest.xml)); tf.setText(config.toString()); ConfigurationTree newTree = ConfigurationTree.fromXML(new FileReader( findTestFile(testfiles/configurationTest.xml))); assertEquals(EON Developers, newTree.getValue(group1)); assertEquals(props, newTree.toString()); assertEquals(math, config.getPropertyNames(school/subjects)[2]); assertEquals(math, newTree.getPropertyNames(school/subjects)[2]); assertEquals(http://mydomain.com/homepage.jsp;, config .remove(website/url)); } public void testManipulation1() throws Exception { config.put(db/driver, oracle.jdbc.driver.OracleDriver); assertEquals(oracle.jdbc.driver.OracleDriver, config .getProperty(db/driver)); config.add(db/url/my db's url); assertEquals(my db's url, config.getProperty(db/url)); config.setProperty(website/url, http://mydomain.com/homepage.jsp;); assertEquals(http://mydomain.com/homepage.jsp;, config .getProperty(website/url)); config.replace(db/driver, resin_db/resin_driver); assertEquals(oracle.jdbc.driver.OracleDriver, config .getProperty(resin_db/resin_driver)); assertEquals(my db's url, config.getProperty(resin_db/url)); config.remove(resin_db/resin_driver); assertNull(config.getProperty(resin_db/resin_driver)); } public void testBigLoad() throws Exception { ConfigurationTree tree = new ConfigurationTree(new FileReader( testfiles/test_config.xml)); assertEquals( proxy.apache.org, tree.getValue(services/org.apache.service.DocumentService/proxy)); assertEquals( Manager Notification, tree.getPropertyNames( services/org.apache.service.PreferenceService/preferenceSql)[6]); assertEquals(JMeter, tree.getValue()); assertEquals( getBuddyList.sql, tree.getProperty
cvs commit: jakarta-jmeter/test/src/org/apache/jorphan/collections - New directory
mstover12005/02/09 13:11:53 jakarta-jmeter/test/src/org/apache/jorphan/collections - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/util JMeterVersion.java
mstover12005/02/08 07:09:37 Modified:bin/testfiles InterleaveTestPlan.jmx proxy.jmx HeaderManagerTestPlan.jmx GuiTest.jmx SimpleTestPlan.jmx AssertionTestPlan.jmx LoopTestPlan.jmx ProxyServerTestPlan.jmx AuthManagerTestPlan.jmx InterleaveTestPlan2.jmx Modification Manager.jmx OnceOnlyTestPlan.jmx src/core/org/apache/jmeter/resources messages_cn.properties src/jorphan/org/apache/jorphan/collections Data.java src/core/org/apache/jmeter/save SaveService.java src/core/org/apache/jmeter/util JMeterVersion.java Added: lib jdom-1.0.jar xstream-1.1.jar xpp3_min-1.1.3.4.I.jar Removed: lib xstream-1.0.1.jar xpp3-1.1.3.4.D.jar jdom-b9.jar Log: Updating the XStream lib packages, and XPP and JDOM with it. Updated test files so unit tests pass Revision ChangesPath 1.7 +54 -31jakarta-jmeter/bin/testfiles/InterleaveTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/InterleaveTestPlan.jmx.diff?r1=1.6r2=1.7 1.6 +17 -17jakarta-jmeter/bin/testfiles/proxy.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/proxy.jmx.diff?r1=1.5r2=1.6 1.7 +43 -20jakarta-jmeter/bin/testfiles/HeaderManagerTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/HeaderManagerTestPlan.jmx.diff?r1=1.6r2=1.7 1.11 +159 -130 jakarta-jmeter/bin/testfiles/GuiTest.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/GuiTest.jmx.diff?r1=1.10r2=1.11 1.7 +61 -38jakarta-jmeter/bin/testfiles/SimpleTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/SimpleTestPlan.jmx.diff?r1=1.6r2=1.7 1.8 +69 -23jakarta-jmeter/bin/testfiles/AssertionTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/AssertionTestPlan.jmx.diff?r1=1.7r2=1.8 1.7 +51 -28jakarta-jmeter/bin/testfiles/LoopTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/LoopTestPlan.jmx.diff?r1=1.6r2=1.7 1.7 +11 -11jakarta-jmeter/bin/testfiles/ProxyServerTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/ProxyServerTestPlan.jmx.diff?r1=1.6r2=1.7 1.7 +53 -30jakarta-jmeter/bin/testfiles/AuthManagerTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/AuthManagerTestPlan.jmx.diff?r1=1.6r2=1.7 1.7 +64 -41jakarta-jmeter/bin/testfiles/InterleaveTestPlan2.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/InterleaveTestPlan2.jmx.diff?r1=1.6r2=1.7 No revision http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/InterleaveTestPlan2.jmx.diff?r1=1.6r2=1.7 No revision http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/InterleaveTestPlan2.jmx.diff?r1=1.6r2=1.7 1.7 +50 -27jakarta-jmeter/bin/testfiles/OnceOnlyTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/OnceOnlyTestPlan.jmx.diff?r1=1.6r2=1.7 1.1 jakarta-jmeter/lib/jdom-1.0.jar Binary file 1.1 jakarta-jmeter/lib/xstream-1.1.jar Binary file 1.1 jakarta-jmeter/lib/xpp3_min-1.1.3.4.I.jar Binary file 1.3 +0 -8 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_cn.properties http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_cn.properties.diff?r1=1.2r2=1.3 1.10 +3 -3 jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/Data.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/Data.java.diff?r1=1.9r2=1.10 1.51 +1 -1 jakarta-jmeter/src/core/org/apache/jmeter/save/SaveService.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/save/SaveService.java.diff?r1=1.50r2=1.51 1.32 +1 -1 jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java.diff?r1=1.31r2=1.32 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/jorphan/org/apache/jorphan/collections HashTree.java
mstover12005/02/04 13:55:21 Modified:src/jorphan/org/apache/jorphan/collections HashTree.java Log: Fixing potential null pointer exception Revision ChangesPath 1.19 +3 -3 jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/HashTree.java Index: HashTree.java === RCS file: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/HashTree.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- HashTree.java 20 Sep 2004 23:08:41 - 1.18 +++ HashTree.java 4 Feb 2005 21:55:21 - 1.19 @@ -850,7 +850,7 @@ public Object[] getArray(Collection treePath) { HashTree tree = getTreePath(treePath); -return tree.getArray(); +return (tree != null) ? tree.getArray() : null; } protected HashTree getTreePath(Collection treePath) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/xdocs/extending jmeter_tutorial_mike.sxw
mstover12005/01/26 16:52:10 Modified:xdocs/extending jmeter_tutorial_mike.sxw Log: New section in JMeter Tutorial Revision ChangesPath 1.8 +102 -71 jakarta-jmeter/xdocs/extending/jmeter_tutorial_mike.sxw Binary file - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/threads JMeterThread.java
mstover12004/12/14 16:54:25 Modified:src/core/org/apache/jmeter/threads JMeterThread.java Log: threads should increment the thread counter as soon as possible Revision ChangesPath 1.57 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterThread.java Index: JMeterThread.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterThread.java,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- JMeterThread.java 13 Dec 2004 21:43:00 - 1.56 +++ JMeterThread.java 15 Dec 2004 00:54:25 - 1.57 @@ -218,6 +218,7 @@ { try { +JMeterContextService.incrNumberOfThreads(); threadContext = JMeterContextService.getContext(); threadContext.setVariables(threadVars); threadContext.setThreadNum(getThreadNum()); @@ -330,7 +331,6 @@ private void threadStarted() { Traverser startup = new Traverser(true); testTree.traverse(startup); -JMeterContextService.incrNumberOfThreads(); } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/bin jmeter
mstover12004/12/13 13:43:00 Modified:src/core/org/apache/jmeter/threads JMeterContextService.java JMeterThread.java src/components/org/apache/jmeter/timers ConstantThroughputTimer.java bin jmeter Log: The Constant Throughput Timer should be smart enough to gear it's delay for the number of threads in the test, allowing the user to set their desired throughput rate and forget it instead of having to manually calculate and adjust based on a changing number of simulated users. Revision ChangesPath 1.9 +20 -2 jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterContextService.java Index: JMeterContextService.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterContextService.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- JMeterContextService.java 28 May 2004 21:09:12 - 1.8 +++ JMeterContextService.java 13 Dec 2004 21:43:00 - 1.9 @@ -34,6 +34,7 @@ }; private static long testStart = 0; +private static int numberOfThreads = 0; /** * Private constructor to prevent instantiation. @@ -51,6 +52,7 @@ { if(testStart == 0) { + numberOfThreads = 0; testStart = System.currentTimeMillis(); threadContext = new ThreadLocal(){ public Object initialValue() @@ -61,9 +63,25 @@ } } +static public void incrNumberOfThreads() +{ + numberOfThreads++; +} + +static public void decrNumberOfThreads() +{ + numberOfThreads--; +} + +static public int getNumberOfThreads() +{ + return numberOfThreads; +} + static public void endTest() { testStart = 0; + numberOfThreads = 0; } static public long getTestStartTime() 1.56 +4 -2 jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterThread.java Index: JMeterThread.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterThread.java,v retrieving revision 1.55 retrieving revision 1.56 diff -u -r1.55 -r1.56 --- JMeterThread.java 10 Dec 2004 21:32:55 - 1.55 +++ JMeterThread.java 13 Dec 2004 21:43:00 - 1.56 @@ -330,6 +330,7 @@ private void threadStarted() { Traverser startup = new Traverser(true); testTree.traverse(startup); +JMeterContextService.incrNumberOfThreads(); } /** @@ -338,6 +339,7 @@ private void threadFinished() { Traverser shut = new Traverser(false); testTree.traverse(shut); +JMeterContextService.decrNumberOfThreads(); } private class Traverser implements HashTreeTraverser 1.19 +127 -117 jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java Index: ConstantThroughputTimer.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- ConstantThroughputTimer.java 10 Dec 2004 21:32:54 - 1.18 +++ ConstantThroughputTimer.java 13 Dec 2004 21:43:00 - 1.19 @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. * -*/ + */ package org.apache.jmeter.timers; @@ -21,6 +21,7 @@ import org.apache.jmeter.testbeans.TestBean; import org.apache.jmeter.testelement.AbstractTestElement; import org.apache.jmeter.testelement.TestListener; +import org.apache.jmeter.threads.JMeterContextService; import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; @@ -29,123 +30,132 @@ * This class implements a constant throughput timer. A Constant Throughtput * Timer paces the samplers under it's influence so that the total number of * samples per unit of time approaches a given constant as much as possible. - * + * */ -public class ConstantThroughputTimer -extends AbstractTestElement -implements Timer, TestListener,TestBean +public class ConstantThroughputTimer extends AbstractTestElement implements Timer, TestListener, + TestBean { - private static final Logger log = LoggingManager.getLoggerForClass(); -/** - * Target time for the start of the next request. The delay provided by - * the timer
cvs commit: jakarta-jmeter/src/components/org/apache/jmeter/timers ConstantThroughputTimer.java ConstantThroughputTimerResources.properties ConstantThroughputTimerResources_ja.properties ConstantThrou
mstover12004/12/13 16:37:13 Modified:src/core/org/apache/jmeter/threads JMeterContextService.java src/components/org/apache/jmeter/timers ConstantThroughputTimer.java ConstantThroughputTimerResources.properties ConstantThroughputTimerResources_ja.properties ConstantThroughputTimerBeanInfo.java Log: Synchronizing thread count access in ContextService Adding a legacy option to the ConstantThroughput Timer. Revision ChangesPath 1.10 +5 -5 jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterContextService.java Index: JMeterContextService.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/JMeterContextService.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- JMeterContextService.java 13 Dec 2004 21:43:00 - 1.9 +++ JMeterContextService.java 14 Dec 2004 00:37:13 - 1.10 @@ -63,17 +63,17 @@ } } -static public void incrNumberOfThreads() +static synchronized void incrNumberOfThreads() { numberOfThreads++; } -static public void decrNumberOfThreads() +static synchronized void decrNumberOfThreads() { numberOfThreads--; } -static public int getNumberOfThreads() +static public synchronized int getNumberOfThreads() { return numberOfThreads; } 1.20 +41 -6 jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java Index: ConstantThroughputTimer.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- ConstantThroughputTimer.java 13 Dec 2004 21:43:00 - 1.19 +++ ConstantThroughputTimer.java 14 Dec 2004 00:37:13 - 1.20 @@ -35,7 +35,7 @@ public class ConstantThroughputTimer extends AbstractTestElement implements Timer, TestListener, TestBean { - +private static final long serialVersionUID = 1; private static final Logger log = LoggingManager.getLoggerForClass(); /** @@ -43,7 +43,23 @@ * timer will be calculated so that the next request happens at this time. */ private long previousTime = 0; + + private boolean legacyMode = true; +/** + * @return Returns the legacyMode. + */ +public boolean isLegacyMode() +{ +return legacyMode; +} +/** + * @param legacyMode The legacyMode to set. + */ +public void setLegacyMode(boolean legacyMode) +{ +this.legacyMode = legacyMode; +} /** * Desired throughput, in samples per minute. */ @@ -85,11 +101,7 @@ public synchronized long delay() { long currentTime = System.currentTimeMillis(); - long currentTarget = -(previousTime == 0) ? currentTime -+ ((JMeterContextService.getContext().getThreadNum() + 1) * (long) (6.0 / getThroughput())) -: previousTime - + (JMeterContextService.getNumberOfThreads() * (long) (6.0 / getThroughput())); + long currentTarget = calculateCurrentTarget(currentTime); previousTime = currentTarget; if (currentTime currentTarget) { @@ -100,6 +112,29 @@ } /** + * @param currentTime + * @return + */ +protected long calculateCurrentTarget(long currentTime) +{ +long currentTarget = currentTime; +if(previousTime == 0) +{ +currentTarget = currentTime + ( + (legacyMode) ? (long) (6.0 / getThroughput()) : + (JMeterContextService.getContext().getThreadNum() + 1) * (long) (6.0 / getThroughput()) + ); +} +else +{ +currentTarget = currentTime + ( + (legacyMode) ? (long) (6.0 / getThroughput()) : + (JMeterContextService.getNumberOfThreads()) * (long) (6.0 / getThroughput()) + ); +} +return currentTarget; +} +/** * Provide a description of this timer class. * * TODO: Is this ever used? I can't remember where. Remove if it isn't -- 1.3 +2 -0 jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimerResources.properties Index: ConstantThroughputTimerResources.properties === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/timers/ConstantThroughputTimerResources.properties,v
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/reporters ResultCollector.java
mstover12004/10/26 15:47:46 Modified:src/core/org/apache/jmeter/reporters Tag: rel-2_0 ResultCollector.java Log: Sometimes the result don't start with the right line separator or something. Just make a simple check when doing substring to avoid ArrayIndexOutOfBounds erros Revision ChangesPath No revision No revision 1.36.2.3 +11 -5 jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java Index: ResultCollector.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java,v retrieving revision 1.36.2.2 retrieving revision 1.36.2.3 diff -u -r1.36.2.2 -r1.36.2.3 --- ResultCollector.java 28 Sep 2004 22:09:13 - 1.36.2.2 +++ ResultCollector.java 26 Oct 2004 22:47:46 - 1.36.2.3 @@ -328,9 +328,15 @@ tempOut, SaveService.getConfiguration(result, getFunctionalMode())); String serVer = tempOut.toString(); - -return serVer.substring( -serVer.indexOf(System.getProperty(line.separator)));//$NON-NLS-1$ +int index = serVer.indexOf(System.getProperty(line.separator)); +if(index -1) +{ +return serVer.substring(index); +} +else +{ +return serVer; +} } private void readSamples(Configuration testResults) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/services - New directory
mstover12004/10/19 13:08:12 jakarta-jmeter/src/core/org/apache/jmeter/services - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/config ConfigTestElement.java
mstover12004/10/19 13:08:19 Modified:src/core/org/apache/jmeter/resources messages_fr.properties messages.properties messages_de.properties messages_no.properties messages_ja.properties xdocs/extending notes_on_extending.txt src/core/org/apache/jmeter/gui/action Start.java Save.java AbstractAction.java RemoteStart.java Load.java src/core/org/apache/jmeter/testelement TestPlan.java src/core/org/apache/jmeter/engine TreeCloner.java src/core/org/apache/jmeter/threads TestCompiler.java src/core/org/apache/jmeter/config ConfigTestElement.java Added: src/core/org/apache/jmeter/services FileServer.java src/components/org/apache/jmeter/config CSVDataSetBeanInfo.java CSVDataSet.java CSVDataSetResources.properties Removed: src/components/org/apache/jmeter/modifiers CSVDataSet.java CSVDataSetResources.properties CSVDataSetBeanInfo.java Log: Adding new threadsafe FileServer CSVDataSet now open for business Revision ChangesPath 1.1 jakarta-jmeter/src/core/org/apache/jmeter/services/FileServer.java Index: FileServer.java === /* * Created on Oct 19, 2004 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package org.apache.jmeter.services; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.Reader; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; /** * @author mstover * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class FileServer { static Logger log = LoggingManager.getLoggerForClass(); File base; Map files = new HashMap(); private static FileServer server = new FileServer(); private FileServer() { base = new File(JMeterUtils.getProperty(user.dir)); } public static FileServer getFileServer() { return server; } public void setBasedir(String basedir) throws IOException { log.info(Setting basedir to: + basedir); if(filesOpen()) { throw new IOException(Files are still open, cannot change base directory); } files.clear(); if(basedir != null) { base = new File(basedir); if(!base.isDirectory()) { base = base.getParentFile(); } } } public String getBaseDir() { return base.getAbsolutePath(); } public synchronized void reserveFile(String filename) { log.info(filename = + filename+ base = + base); if(!files.containsKey(filename)) { Object[] file = new Object[]{new File(base,filename),null}; files.put(filename,file); } } /** * Get the next line of the named file. * @param filename * @return * @throws IOException */ public synchronized String readLine(String filename) throws IOException { Object[] file = (Object[])files.get(filename); if(file != null) { if(file[1] == null) { BufferedReader r = new BufferedReader(new FileReader((File)file[0])); file[1] = r; } BufferedReader reader = (BufferedReader)file[1]; String line = reader.readLine(); if(line == null) { reader.close(); reader = new BufferedReader(new FileReader((File)file[0])); file[1] = reader; line = reader.readLine(); } return line; } throw new IOException(File never reserved); } public void closeFiles() throws IOException { Iterator iter = files.keySet().iterator(); while(iter.hasNext()) { String name = (String)iter.next(); Object[] file = (Object[])files.get(name); if(file[1] != null) { ((Reader)file[1]).close(); file[1] = null; } } files.clear(); } protected boolean filesOpen
cvs commit: jakarta-jmeter/src/jorphan/org/apache/jorphan/reflect ClassFinder.java
mstover12004/10/06 07:43:57 Modified:xdocs/demos forEachTestPlan.jmx src/core/org/apache/jmeter/engine TurnElementsOn.java StandardJMeterEngine.java src/functions/org/apache/jmeter/functions BeanShell.java LogFunction.java StringFromFile.java JavaScript.java PackageTest.java src/core/org/apache/jmeter/engine/util FunctionParser.java src/core/org/apache/jmeter/testbeans/gui TestBeanGUI.java src/examples/org/apache/jmeter/examples/testbeans/example1 Example1.java src/core/org/apache/jmeter/gui/action DragNDrop.java Remove.java Copy.java Start.java Cut.java Paste.java src/core/org/apache/jmeter/testelement TestElement.java AbstractTestElement.java src/core/org/apache/jmeter/util SSLManager.java JMeterVersion.java JMeterUtils.java src/protocol/http/org/apache/jmeter/protocol/http/sampler HTTPSampler.java HTTPSampleResult.java SoapSampler.java src/components/org/apache/jmeter/visualizers ViewResultsFullVisualizer.java Graph.java bin jmeter.properties xdocs/usermanual component_reference.xml functions.xml xdocs/stylesheets site_printable.vsl project.xml xdocs/images/screenshots/logic-controller foreach-example.png src/examples/org/apache/jmeter/examples/testbeans/example2 Example2.java Example2BeanInfo.java src/core/org/apache/jmeter/resources PackageTest.java messages.properties src/core/org/apache/jmeter/reporters ResultSaver.java src/core/org/apache/jmeter/gui/util MenuFactory.java .build.xml src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler TCPSampler.java src/core/org/apache/jmeter/control IfController.java src/protocol/http/org/apache/jmeter/protocol/http/proxy ProxyControl.java src/protocol/java/org/apache/jmeter/protocol/java/sampler BeanShellSampler.java src/core/org/apache/jmeter/samplers SampleResult.java src/core/org/apache/jmeter/reporters/gui ResultSaverGui.java src/components/org/apache/jmeter/modifiers UserParameters.java src/core/org/apache/jmeter/threads JMeterThread.java src/protocol/java/org/apache/jmeter/protocol/java/test JavaTest.java xdocsnightly.xml changes.xml index.xml src/protocol/http/org/apache/jmeter/protocol/http/modifier AnchorModifier.java src/jorphan/org/apache/jorphan/reflect ClassFinder.java Added: src/functions/org/apache/jmeter/functions SplitFunction.java bin BeanShellSampler.bshrc BeanShellFunction.bshrc src/core/org/apache/jmeter/control/gui WhileControllerGui.java src/core/org/apache/jmeter/control WhileController.java bin/testfiles IfTest.jmx BeanShellTest.bsh Log: Merging 2-0 to HEAD Revision ChangesPath 1.2 +109 -105 jakarta-jmeter/xdocs/demos/forEachTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/xdocs/demos/forEachTestPlan.jmx.diff?r1=1.1r2=1.2 1.3 +15 -4 jakarta-jmeter/src/core/org/apache/jmeter/engine/TurnElementsOn.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/TurnElementsOn.java.diff?r1=1.2r2=1.3 1.53 +18 -0 jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java.diff?r1=1.52r2=1.53 1.5 +66 -19 jakarta-jmeter/src/functions/org/apache/jmeter/functions/BeanShell.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/functions/org/apache/jmeter/functions/BeanShell.java.diff?r1=1.4r2=1.5 1.5 +6 -3 jakarta-jmeter/src/functions/org/apache/jmeter/functions/LogFunction.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/functions/org/apache/jmeter/functions/LogFunction.java.diff?r1=1.4r2=1.5 1.19 +105 -34 jakarta-jmeter/src/functions/org/apache/jmeter/functions/StringFromFile.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/functions/org/apache/jmeter/functions/StringFromFile.java.diff?r1=1.18r2=1.19 1.7 +17 -1 jakarta-jmeter/src/functions/org/apache/jmeter/functions
cvs commit: jakarta-jmeter build.xml
mstover12004/09/20 16:08:42 Modified:src/core/org/apache/jmeter/save/converters ConversionHelp.java SampleResultConverter.java src/core/org/apache/jmeter/resources messages_fr.properties messages.properties messages_de.properties messages_no.properties messages_ja.properties src/core/org/apache/jmeter/reporters ResultCollector.java src/core/org/apache/jmeter/junit JMeterTest.java src/core/org/apache/jmeter/samplers SampleResult.java src/core/org/apache/jmeter/save SaveService.java ScriptWrapperConverter.java OldSaveService.java src/protocol/http/org/apache/jmeter/protocol/http/control CookieManager.java bin saveservice.properties src/protocol/http/org/apache/jmeter/protocol/http/gui CookiePanel.java src/functions/org/apache/jmeter/functions StringFromFile.java src/components/org/apache/jmeter/visualizers MailerVisualizer.java src/jorphan/org/apache/jorphan/collections HashTree.java src/core/org/apache/jmeter/util JMeterVersion.java src/core/org/apache/jmeter/visualizers/gui AbstractVisualizer.java .build.xml Added: src/core/org/apache/jmeter/save/converters TestResultWrapperConverter.java src/core/org/apache/jmeter/samplers SampleSaveConfiguration.java src/protocol/http/org/apache/jmeter/protocol/http/util HTTPResultConverter.java src/core/org/apache/jmeter/save TestResultWrapper.java src/core/org/apache/jmeter/gui SavePropertyDialog.java src/core/org/apache/jmeter/testelement/property ObjectProperty.java Log: New code for recording .jtl files using XStream. Also, a properties file controls what XStream Converters get registered (makes for easier plugins). Revision ChangesPath 1.4 +16 -0 jakarta-jmeter/src/core/org/apache/jmeter/save/converters/ConversionHelp.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/save/converters/ConversionHelp.java.diff?r1=1.3r2=1.4 1.3 +286 -19 jakarta-jmeter/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java.diff?r1=1.2r2=1.3 1.1 jakarta-jmeter/src/core/org/apache/jmeter/save/converters/TestResultWrapperConverter.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/save/converters/TestResultWrapperConverter.java?rev=1.1 1.3 +20 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_fr.properties http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_fr.properties.diff?r1=1.2r2=1.3 1.125 +20 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties.diff?r1=1.124r2=1.125 1.85 +20 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_de.properties http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_de.properties.diff?r1=1.84r2=1.85 1.81 +20 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_no.properties http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_no.properties.diff?r1=1.80r2=1.81 1.83 +21 -1 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_ja.properties http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_ja.properties.diff?r1=1.82r2=1.83 1.43 +450 -431 jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java.diff?r1=1.42r2=1.43 1.58 +8 -5 jakarta-jmeter/src/core/org/apache/jmeter/junit/JMeterTest.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/junit/JMeterTest.java.diff?r1=1.57r2=1.58 1.34 +28 -1 jakarta-jmeter/src/core/org/apache/jmeter/samplers/SampleResult.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src/core/org/apache/jmeter/samplers/SampleResult.java.diff?r1=1.33r2=1.34 1.1 jakarta-jmeter/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java http://cvs.apache.org/viewcvs/jakarta-jmeter/src
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/util JMeterVersion.java
mstover12004/07/27 07:19:40 Modified:src/core/org/apache/jmeter/save/converters StringPropertyConverter.java src/core/org/apache/jmeter/util JMeterVersion.java Log: Adding urlencoding to xstream saving Revision ChangesPath 1.4 +26 -4 jakarta-jmeter/src/core/org/apache/jmeter/save/converters/StringPropertyConverter.java Index: StringPropertyConverter.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/save/converters/StringPropertyConverter.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- StringPropertyConverter.java 21 Jun 2004 23:37:40 - 1.3 +++ StringPropertyConverter.java 27 Jul 2004 14:19:40 - 1.4 @@ -17,7 +17,13 @@ package org.apache.jmeter.save.converters; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.net.URLEncoder; + import org.apache.jmeter.testelement.property.StringProperty; +import org.apache.jorphan.logging.LoggingManager; +import org.apache.log.Logger; import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.MarshallingContext; @@ -33,6 +39,7 @@ */ public class StringPropertyConverter implements Converter { + transient private static final Logger log = LoggingManager.getLoggerForClass(); /** Returns the converter version; used to check for possible incompatibilities */ public static String getVersion(){ return $Revision$;} @@ -52,7 +59,14 @@ MarshallingContext arg2) { StringProperty prop = (StringProperty)obj; - writer.addAttribute(name,prop.getName()); + try + { + writer.addAttribute(name,URLEncoder.encode(prop.getName(),UTF-8)); + } + catch (UnsupportedEncodingException e) + { + log.warn(System doesn't support utf-8,e); + } writer.setValue(prop.getStringValue()); } @@ -62,7 +76,15 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext arg1) { - StringProperty prop = new StringProperty(reader.getAttribute(name),reader.getValue()); - return prop; + try + { + StringProperty prop = new StringProperty(URLDecoder.decode(reader.getAttribute(name),UTF-8),reader.getValue()); + return prop; + } + catch (UnsupportedEncodingException e) + { + log.warn(System doesn't support utf-8,e); + return null; + } } } 1.25 +1 -1 jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java Index: JMeterVersion.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- JMeterVersion.java14 Jul 2004 14:33:41 - 1.24 +++ JMeterVersion.java27 Jul 2004 14:19:40 - 1.25 @@ -39,7 +39,7 @@ * pattern: VERSION = quote.*quote * */ - static final String VERSION = 2.0.20040714; + static final String VERSION = 2.0.20040727; static final String COPYRIGHT = Copyright (c) 1998-2004 The Apache Software Foundation; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/save/converters ConversionHelp.java BooleanPropertyConverter.java IntegerPropertyConverter.java LongPropertyConverter.java MultiPropertyConverter.java StringPropertyConverter.java TestElementPropertyConverter.java
mstover12004/07/27 07:38:19 Modified:src/core/org/apache/jmeter/save/converters BooleanPropertyConverter.java IntegerPropertyConverter.java LongPropertyConverter.java MultiPropertyConverter.java StringPropertyConverter.java TestElementPropertyConverter.java Added: src/core/org/apache/jmeter/save/converters ConversionHelp.java Log: url encoding strings saved in .jmx file Revision ChangesPath 1.4 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/save/converters/BooleanPropertyConverter.java Index: BooleanPropertyConverter.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/save/converters/BooleanPropertyConverter.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- BooleanPropertyConverter.java 21 Jun 2004 23:37:40 - 1.3 +++ BooleanPropertyConverter.java 27 Jul 2004 14:38:18 - 1.4 @@ -52,7 +52,7 @@ MarshallingContext arg2) { BooleanProperty prop = (BooleanProperty)obj; - writer.addAttribute(name,prop.getName()); + writer.addAttribute(name,ConversionHelp.encode(prop.getName())); writer.setValue(prop.getStringValue()); } @@ -63,7 +63,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext arg1) { - BooleanProperty prop = new BooleanProperty(reader.getAttribute(name),Boolean.valueOf(reader.getValue()).booleanValue()); + BooleanProperty prop = new BooleanProperty(ConversionHelp.decode(reader.getAttribute(name)),Boolean.valueOf(reader.getValue()).booleanValue()); return prop; } } 1.3 +2 -2 jakarta-jmeter/src/core/org/apache/jmeter/save/converters/IntegerPropertyConverter.java Index: IntegerPropertyConverter.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/save/converters/IntegerPropertyConverter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- IntegerPropertyConverter.java 21 Jun 2004 23:37:40 - 1.2 +++ IntegerPropertyConverter.java 27 Jul 2004 14:38:18 - 1.3 @@ -51,7 +51,7 @@ MarshallingContext arg2) { IntegerProperty prop = (IntegerProperty)obj; - writer.addAttribute(name,prop.getName()); + writer.addAttribute(name,ConversionHelp.encode(prop.getName())); writer.setValue(prop.getStringValue()); } @@ -61,7 +61,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext arg1) { - IntegerProperty prop = new IntegerProperty(reader.getAttribute(name),Integer.parseInt(reader.getValue())); + IntegerProperty prop = new IntegerProperty(ConversionHelp.decode(reader.getAttribute(name)),Integer.parseInt(reader.getValue())); return prop; } } 1.3 +2 -2 jakarta-jmeter/src/core/org/apache/jmeter/save/converters/LongPropertyConverter.java Index: LongPropertyConverter.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/save/converters/LongPropertyConverter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- LongPropertyConverter.java21 Jun 2004 23:37:40 - 1.2 +++ LongPropertyConverter.java27 Jul 2004 14:38:18 - 1.3 @@ -52,7 +52,7 @@ MarshallingContext arg2) { LongProperty prop = (LongProperty)obj; - writer.addAttribute(name,prop.getName()); + writer.addAttribute(name,ConversionHelp.encode(prop.getName())); writer.setValue(prop.getStringValue()); } @@ -62,7 +62,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext arg1) { - LongProperty prop = new LongProperty(reader.getAttribute(name),Long.parseLong(reader.getValue())); + LongProperty prop = new LongProperty(ConversionHelp.decode(reader.getAttribute(name)),Long.parseLong(reader.getValue())); return prop; } } 1.3 +2 -2 jakarta-jmeter/src/core/org/apache/jmeter/save/converters/MultiPropertyConverter.java Index: MultiPropertyConverter.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/save/converters/MultiPropertyConverter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MultiPropertyConverter.java 21 Jun 2004 23:37:40 - 1.2
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog TCLogParser.java
mstover12004/07/14 07:33:42 Modified:src/core/org/apache/jmeter/util JMeterVersion.java src/protocol/http/org/apache/jmeter/protocol/http/sampler AccessLogSampler.java src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog TCLogParser.java Log: Fix for log parser dealing with ending ?'s Revision ChangesPath 1.24 +1 -1 jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java Index: JMeterVersion.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- JMeterVersion.java20 Jun 2004 00:32:53 - 1.23 +++ JMeterVersion.java14 Jul 2004 14:33:41 - 1.24 @@ -39,7 +39,7 @@ * pattern: VERSION = quote.*quote * */ - static final String VERSION = 2.0.20040619; + static final String VERSION = 2.0.20040714; static final String COPYRIGHT = Copyright (c) 1998-2004 The Apache Software Foundation; 1.16 +3 -2 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java Index: AccessLogSampler.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- AccessLogSampler.java 3 Jul 2004 02:41:48 - 1.15 +++ AccessLogSampler.java 14 Jul 2004 14:33:41 - 1.16 @@ -146,6 +146,7 @@ } log.info(parser returned 0 paths); filter.reset(); +count = 0; return null; } count = thisCount; 1.16 +13 -12 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/TCLogParser.java Index: TCLogParser.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/TCLogParser.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- TCLogParser.java 3 Jul 2004 14:04:52 - 1.15 +++ TCLogParser.java 14 Jul 2004 14:33:42 - 1.16 @@ -234,14 +234,7 @@ { // read one line at a time using // BufferedReader -line = breader.readLine(); -if (line == null COUNT = this.PARSECOUNT) -{ -this.READER.close(); -this.READER = null; -//this.READER = new BufferedReader(new FileReader(this.SOURCE)); -//parse(this.READER,el); -} +line = breader.readLine(); while (line != null) { if (line.length() 0) @@ -259,6 +252,14 @@ } line = breader.readLine(); } +if (line == null) +{ + breader.close(); + breader = null; + this.READER = null; + //this.READER = new BufferedReader(new FileReader(this.SOURCE)); + //parse(this.READER,el); + } } catch (IOException ioe) { @@ -438,8 +439,8 @@ { StringTokenizer tokens = this.tokenize(url, ?); this.URL_PATH = tokens.nextToken(); -el.setProperty(HTTPSamplerBase.PATH,URL_PATH); -return tokens.nextToken(); + el.setProperty(HTTPSamplerBase.PATH,URL_PATH); +return tokens.hasMoreTokens() ? tokens.nextToken() : null; } else { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog TCLogParser.java
mstover12004/07/14 14:24:04 Modified:src/components/org/apache/jmeter/visualizers ViewResultsFullVisualizer.java src/core/org/apache/jmeter/engine StandardJMeterEngine.java src/protocol/http/org/apache/jmeter/protocol/http/sampler AccessLogSampler.java HTTPSampleResult.java HTTPSampler.java HTTPSampler2.java HTTPSamplerBase.java src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog TCLogParser.java Log: Struggling with access log parser, fixing HttpSampleResult display Revision ChangesPath 1.45 +2 -4 jakarta-jmeter/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java Index: ViewResultsFullVisualizer.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- ViewResultsFullVisualizer.java20 Jun 2004 01:23:40 - 1.44 +++ ViewResultsFullVisualizer.java14 Jul 2004 21:24:04 - 1.45 @@ -124,7 +124,6 @@ log.debug(updateGui1 : sample result - + res); } DefaultMutableTreeNode currNode = new DefaultMutableTreeNode(res); - treeModel.insertNodeInto(currNode, root, root.getChildCount()); addSubResults(currNode, res); log.debug(End : updateGui1); @@ -160,13 +159,12 @@ public void clear() { log.debug(Start : clear1); -int totalChild = root.getChildCount(); if (log.isDebugEnabled()) { -log.debug(clear1 : total child - + totalChild); +log.debug(clear1 : total child - + root.getChildCount()); } -for (int i = 0; i totalChild; i++) +while (root.getChildCount() 0) { // the child to be removed will always be 0 'cos as the nodes are // removed the nth node will become (n-1)th 1.52 +23 -14 jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java Index: StandardJMeterEngine.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java,v retrieving revision 1.51 retrieving revision 1.52 diff -u -r1.51 -r1.52 --- StandardJMeterEngine.java 2 Jul 2004 18:25:22 - 1.51 +++ StandardJMeterEngine.java 14 Jul 2004 21:24:04 - 1.52 @@ -250,8 +250,10 @@ public synchronized void threadFinished(JMeterThread thread) { allThreads.remove(thread); + log.info(Ending thread + thread.getThreadNum()); if (!serialized allThreads.size() == 0 !schcdule_run) { + log.info(Stopping test); stopTest(); } } @@ -266,22 +268,29 @@ { public void run() { - log.debug(Stopping test); - if (running) + try { -running = false; -tellThreadsToStop(); -try -{ - Thread.sleep(10 * allThreads.size()); -} -catch (InterruptedException e) -{ -} -verifyThreadsStopped(); -notifyTestListenersOfEnd(); + log.debug(Stopping test); + if (running) + { + running = false; + tellThreadsToStop(); + try + { +Thread.sleep(10 * allThreads.size()); + } + catch (InterruptedException e) + { + } + verifyThreadsStopped(); + notifyTestListenersOfEnd(); + } + JMeterContextService.endTest(); + } + catch(Exception e) + { +log.error(Bad!,e); } - JMeterContextService.endTest(); } } 1.17 +47 -26 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java Index: AccessLogSampler.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- AccessLogSampler.java 14 Jul 2004 14:33:41 - 1.16 +++ AccessLogSampler.java 14 Jul 2004 21:24:04 - 1.17 @@ -75,6 +75,7 @@ private String logFile, parserClassName, filterClassName; transient private Filter
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/save/converters - New directory
mstover12004/06/19 17:27:05 jakarta-jmeter/src/core/org/apache/jmeter/save/converters - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/test/src/org/apache/jmeter - New directory
mstover12004/06/19 17:27:58 jakarta-jmeter/test/src/org/apache/jmeter - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/test/src/org/apache/jmeter/gui - New directory
mstover12004/06/19 17:30:19 jakarta-jmeter/test/src/org/apache/jmeter/gui - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/test/src/org/apache/jmeter/gui/action - New directory
mstover12004/06/19 17:30:37 jakarta-jmeter/test/src/org/apache/jmeter/gui/action - New directory - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/test/src/org/apache/jmeter/save TestSaveService.java
mstover12004/06/19 17:32:53 Modified:.NOTICE build.xml bin/testfiles AssertionTestPlan.jmx AuthManagerTestPlan.jmx GuiTest.jmx HeaderManagerTestPlan.jmx InterleaveTestPlan.jmx InterleaveTestPlan2.jmx LoopTestPlan.jmx Modification Manager.jmx OnceOnlyTestPlan.jmx ProxyServerTestPlan.jmx SimpleTestPlan.jmx proxy.jmx src/components/org/apache/jmeter/assertions BeanShellAssertion.java ResponseAssertion.java src/core/org/apache/jmeter JMeter.java src/core/org/apache/jmeter/control GenericController.java LoopController.java src/core/org/apache/jmeter/gui/action Load.java Save.java src/core/org/apache/jmeter/junit JMeterTest.java src/core/org/apache/jmeter/reporters AbstractListenerElement.java ResultCollector.java src/core/org/apache/jmeter/save SaveService.java src/core/org/apache/jmeter/testelement AbstractTestElement.java TestPlan.java src/core/org/apache/jmeter/testelement/property AbstractProperty.java BooleanProperty.java CollectionProperty.java MapProperty.java StringProperty.java TestElementProperty.java src/core/org/apache/jmeter/util JMeterVersion.java src/protocol/http/org/apache/jmeter/protocol/http/control CookieManager.java src/protocol/http/org/apache/jmeter/protocol/http/modifier AnchorModifier.java src/protocol/java/org/apache/jmeter/protocol/java/sampler BSFSampler.java BeanShellSampler.java src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/config DataSourceElement.java Added: lib LICENSE(XPP3).txt LICENSE(XStream).txt xpp3-1.1.3.4.D.jar xstream-1.0.1.jar src/core/org/apache/jmeter/save OldSaveService.java ScriptWrapper.java ScriptWrapperConverter.java src/core/org/apache/jmeter/save/converters BooleanPropertyConverter.java HashTreeConverter.java IntegerPropertyConverter.java LongPropertyConverter.java MultiPropertyConverter.java SampleResultConverter.java StringPropertyConverter.java TestElementConverter.java TestElementPropertyConverter.java test/src/org/apache/jmeter/gui/action TestLoad.java test/src/org/apache/jmeter/save TestSaveService.java Log: New XStream implementation for saving test plans Revision ChangesPath 1.7 +9 -0 jakarta-jmeter/NOTICE http://cvs.apache.org/viewcvs/jakarta-jmeter/NOTICE.diff?r1=1.6r2=1.7 1.185 +28 -3 jakarta-jmeter/build.xml http://cvs.apache.org/viewcvs/jakarta-jmeter/build.xml.diff?r1=1.184r2=1.185 1.7 +106 -95 jakarta-jmeter/bin/testfiles/AssertionTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/AssertionTestPlan.jmx.diff?r1=1.6r2=1.7 1.6 +169 -156 jakarta-jmeter/bin/testfiles/AuthManagerTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/AuthManagerTestPlan.jmx.diff?r1=1.5r2=1.6 1.9 +1030 -1056jakarta-jmeter/bin/testfiles/GuiTest.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/GuiTest.jmx.diff?r1=1.8r2=1.9 1.6 +96 -86jakarta-jmeter/bin/testfiles/HeaderManagerTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/HeaderManagerTestPlan.jmx.diff?r1=1.5r2=1.6 1.6 +164 -150 jakarta-jmeter/bin/testfiles/InterleaveTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/InterleaveTestPlan.jmx.diff?r1=1.5r2=1.6 1.6 +209 -194 jakarta-jmeter/bin/testfiles/InterleaveTestPlan2.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/InterleaveTestPlan2.jmx.diff?r1=1.5r2=1.6 1.6 +138 -126 jakarta-jmeter/bin/testfiles/LoopTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/LoopTestPlan.jmx.diff?r1=1.5r2=1.6 No revision http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/LoopTestPlan.jmx.diff?r1=1.5r2=1.6 No revision http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/LoopTestPlan.jmx.diff?r1=1.5r2=1.6 1.6 +136 -123 jakarta-jmeter/bin/testfiles/OnceOnlyTestPlan.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin
cvs commit: jakarta-jmeter/bin/testfiles GuiTest_2.jmx GuiTest.jmx
mstover12004/06/17 17:44:45 Modified:bin/testfiles GuiTest.jmx Added: bin/testfiles GuiTest_2.jmx Log: Revision ChangesPath 1.8 +1 -33 jakarta-jmeter/bin/testfiles/GuiTest.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/GuiTest.jmx.diff?r1=1.7r2=1.8 1.1 jakarta-jmeter/bin/testfiles/GuiTest_2.jmx http://cvs.apache.org/viewcvs/jakarta-jmeter/bin/testfiles/GuiTest_2.jmx?rev=1.1 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/gui/action SaveGraphics.java
mstover12004/06/16 13:53:30 Modified:src/core/org/apache/jmeter/gui/action SaveGraphics.java Log: Small modification to fix logic and remove redundant conditional Revision ChangesPath 1.2 +101 -107 jakarta-jmeter/src/core/org/apache/jmeter/gui/action/SaveGraphics.java Index: SaveGraphics.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/SaveGraphics.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- SaveGraphics.java 16 Jun 2004 19:33:42 - 1.1 +++ SaveGraphics.java 16 Jun 2004 20:53:30 - 1.2 @@ -1,20 +1,20 @@ // $Header$ /* * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with 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. * -*/ + * Licensed under the Apache License, Version 2.0 (the License); you may not + * use this file except in compliance with 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. + * + */ package org.apache.jmeter.gui.action; @@ -35,106 +35,100 @@ import org.apache.log.Logger; /** - * SaveGraphics action is meant to be a generic reusable Action. - * The class will use GUIPackage to get the current gui. Once - * it does, it checks to see if the element implements Printable - * interface. If it does, it call getPrintable() to get the - * JComponent. - * By default, it will use SaveGraphicsService to save a PNG - * file if no extension is provided. If either .png or .tif - * is in the filename, it will call SaveGraphicsService to save - * in the format. + * SaveGraphics action is meant to be a generic reusable Action. The class will + * use GUIPackage to get the current gui. Once it does, it checks to see if the + * element implements Printable interface. If it does, it call getPrintable() + * to get the JComponent. By default, it will use SaveGraphicsService to save a + * PNG file if no extension is provided. If either .png or .tif is in the + * filename, it will call SaveGraphicsService to save in the format. */ public class SaveGraphics implements Command { -transient private static Logger log = LoggingManager.getLoggerForClass(); -public final static String SAVE_GRAPHICS = save_graphics; + transient private static Logger log = LoggingManager.getLoggerForClass(); + public final static String SAVE_GRAPHICS = save_graphics; -private static Set commands = new HashSet(); -static { -commands.add(SAVE_GRAPHICS); -} - -/** - * Constructor for the Save object. - */ -public SaveGraphics() -{ -} - -/** - * Gets the ActionNames attribute of the Save object. - * - * @return the ActionNames value - */ -public Set getActionNames() -{ -return commands; -} - -public void doAction(ActionEvent e) throws IllegalUserActionException -{ - JMeterGUIComponent component = null; - JComponent comp = null; -if (!commands.contains(e.getActionCommand())) -{ -throw new IllegalUserActionException(Invalid user command: + e.getActionCommand()); -} -if (e.getActionCommand().equals(SAVE_GRAPHICS)) -{ - component = GuiPackage.getInstance().getCurrentGui(); - // System.out.println(visualizer: + component.getClass().getName()); - // get the JComponent from the visualizer - if (component instanceof Printable){ - comp = ((Printable)component).getPrintableComponent(); - } -} - -String filename; -if (!SAVE_GRAPHICS.equals(e.getActionCommand())) -{ -JFileChooser chooser = -FileDialoger.promptToSaveFile( -GuiPackage -.getInstance
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/resources messages.properties messages_de.properties messages_ja.properties messages_no.properties
mstover12004/06/16 13:54:12 Modified:src/core/org/apache/jmeter/resources messages.properties messages_de.properties messages_ja.properties messages_no.properties Log: Adding new menu message to resources Revision ChangesPath 1.116 +1 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties Index: messages.properties === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties,v retrieving revision 1.115 retrieving revision 1.116 diff -u -r1.115 -r1.116 --- messages.properties 16 Jun 2004 19:39:30 - 1.115 +++ messages.properties 16 Jun 2004 20:54:12 - 1.116 @@ -401,6 +401,7 @@ save?=Save? save_all_as=Save Test Plan as save_as=Save As... +save_as_image=Save As Image save_graphics=Save Graph scheduler=Scheduler scheduler_configuration=Scheduler Configuration 1.83 +1 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_de.properties Index: messages_de.properties === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_de.properties,v retrieving revision 1.82 retrieving revision 1.83 diff -u -r1.82 -r1.83 --- messages_de.properties28 May 2004 21:09:12 - 1.82 +++ messages_de.properties16 Jun 2004 20:54:12 - 1.83 @@ -153,6 +153,7 @@ run=Start save_all_as=Speichern Test Plan unter save_as=Speichern unter +save_as_image=Speichern unter Image save?=Speichern? save=Speichern Test Plan second=Sekunde 1.81 +1 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_ja.properties Index: messages_ja.properties === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_ja.properties,v retrieving revision 1.80 retrieving revision 1.81 diff -u -r1.80 -r1.81 --- messages_ja.properties28 May 2004 21:09:12 - 1.80 +++ messages_ja.properties16 Jun 2004 20:54:12 - 1.81 @@ -383,6 +383,7 @@ save?=\u4FDD\u5B58? save_all_as=\u30C6\u30B9\u30C8\u8A08\u753B\u306B\u540D\u524D\u3092\u3064\u3051\u3066\u4FDD\u5B58 save_as=\u5225\u540D\u3067\u4FDD\u5B58... +save_as_image=Save As Image scheduler=\u30B9\u30B1\u30B8\u30E5\u30FC\u30E9 scheduler_configuration=\u30B9\u30B1\u30B8\u30E5\u30FC\u30E9\u8A2D\u5B9A search_base=\u691C\u7D22\u57FA\u6E96 1.79 +1 -0 jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_no.properties Index: messages_no.properties === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_no.properties,v retrieving revision 1.78 retrieving revision 1.79 diff -u -r1.78 -r1.79 --- messages_no.properties28 May 2004 21:09:12 - 1.78 +++ messages_no.properties16 Jun 2004 20:54:12 - 1.79 @@ -128,6 +128,7 @@ run=Kj\u00F8r save_all_as=Lagre alle som... save_as=Lagre som... +save_as_image=Lagre som Image save=Lagre alle secure=Sikker send_file_browse=Bla gjennom... - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/gui/util MenuFactory.java
mstover12004/06/16 13:54:46 Modified:src/core/org/apache/jmeter/gui/util MenuFactory.java Log: Adding new menu item for saving component graphic as png Revision ChangesPath 1.30 +12 -3 jakarta-jmeter/src/core/org/apache/jmeter/gui/util/MenuFactory.java Index: MenuFactory.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/MenuFactory.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- MenuFactory.java 12 Feb 2004 23:59:01 - 1.29 +++ MenuFactory.java 16 Jun 2004 20:54:46 - 1.30 @@ -42,9 +42,10 @@ import org.apache.jmeter.testbeans.TestBean; import org.apache.jmeter.testbeans.gui.TestBeanGUI; import org.apache.jmeter.util.JMeterUtils; +import org.apache.jmeter.visualizers.Printable; +import org.apache.jorphan.logging.LoggingManager; import org.apache.jorphan.reflect.ClassFinder; import org.apache.jorphan.util.JOrphanUtils; -import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; /** @@ -164,6 +165,14 @@ makeMenuItem(JMeterUtils.getResString(open), Open, open)); menu.add( makeMenuItem(JMeterUtils.getResString(save_as), Save As, save_as)); +JMenuItem savePicture = makeMenuItem(JMeterUtils.getResString(save_as_image), + Save Image,save_graphics,KeyStroke.getKeyStroke( +KeyEvent.VK_G, KeyEvent.CTRL_MASK)); +menu.add(savePicture); +if(!(GuiPackage.getInstance().getCurrentGui() instanceof Printable)) +{ + savePicture.setEnabled(false); +} JMenuItem disabled = makeMenuItem( JMeterUtils.getResString(disable), - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/control IfController.java
mstover12004/06/12 09:40:17 Modified:src/core/org/apache/jmeter/control IfController.java Log: IfController should call nextIsNull() before returning null value Revision ChangesPath 1.8 +23 -17 jakarta-jmeter/src/core/org/apache/jmeter/control/IfController.java Index: IfController.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/control/IfController.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- IfController.java 24 May 2004 23:12:30 - 1.7 +++ IfController.java 12 Jun 2004 16:40:16 - 1.8 @@ -162,21 +162,27 @@ *- if its the first time this is run. The first time is special * cause it is called prior the iteration even starts ! */ - public Sampler next() { - boolean result = false; - try { - result = evaluateCondition(); - } - catch (Exception e) - { - logger.error(e.getMessage(),e); - } - if (result) - return super.next(); - else - return null; - - } + public Sampler next() + { + boolean result = false; + try { + result = evaluateCondition(); + } + catch (Exception e) + { + logger.error(e.getMessage(),e); + } + if (result) +return super.next(); + else try + { +return nextIsNull(); + } + catch (NextIsNullException e1) + { +return null; + } + } // Start of Test Code /// - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/gui AuthPanel.java CookiePanel.java HTTPArgumentsPanel.java
mstover12004/06/12 09:44:35 Modified:src/components/org/apache/jmeter/modifiers/gui Tag: rel-2_0 UserParametersGui.java src/core/org/apache/jmeter/config/gui Tag: rel-2_0 SimpleConfigGui.java src/protocol/http/org/apache/jmeter/protocol/http/gui Tag: rel-2_0 AuthPanel.java CookiePanel.java HTTPArgumentsPanel.java Log: Somebody put the fix back in for table values that disappear if you change focus without hitting 'Enter' first Revision ChangesPath No revision No revision 1.17.2.1 +6 -2 jakarta-jmeter/src/components/org/apache/jmeter/modifiers/gui/UserParametersGui.java Index: UserParametersGui.java === RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/modifiers/gui/UserParametersGui.java,v retrieving revision 1.17 retrieving revision 1.17.2.1 diff -u -r1.17 -r1.17.2.1 --- UserParametersGui.java5 Mar 2004 01:33:13 - 1.17 +++ UserParametersGui.java12 Jun 2004 16:44:34 - 1.17.2.1 @@ -118,6 +118,10 @@ */ public void modifyTestElement(TestElement params) { + if (paramTable.isEditing()) + { + paramTable.getCellEditor().stopCellEditing(); + } ((UserParameters) params).setNames( new CollectionProperty( UserParameters.NAMES, No revision No revision 1.8.2.1 +308 -311 jakarta-jmeter/src/core/org/apache/jmeter/config/gui/SimpleConfigGui.java Index: SimpleConfigGui.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/gui/SimpleConfigGui.java,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -u -r1.8 -r1.8.2.1 --- SimpleConfigGui.java 5 Mar 2004 01:33:48 - 1.8 +++ SimpleConfigGui.java 12 Jun 2004 16:44:34 - 1.8.2.1 @@ -1,20 +1,20 @@ // $Header$ /* * Copyright 2001-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with 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. * -*/ + * Licensed under the Apache License, Version 2.0 (the License); you may not + * use this file except in compliance with 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. + * + */ package org.apache.jmeter.config.gui; @@ -41,307 +41,304 @@ /** * Default config gui for Configuration Element. - * - * @version$Revision$ on $Date$ + * + * @version $Revision$ on $Date$ */ -public class SimpleConfigGui extends AbstractConfigGui implements ActionListener +public class SimpleConfigGui extends AbstractConfigGui implements + ActionListener { -/* This class created for enhancement Bug ID 9101. */ - -// TODO: This class looks a lot like ArgumentsPanel. What exactly is the -// difference? Could they be combined? - -/** The table of configuration parameters. */ -private JTable table; - -/** The model for the parameter table. */ -private PowerTableModel tableModel; - -/** A button for adding new parameters to the table. */ -private JButton add; - -/** A button for removing parameters from the table. */ -private JButton delete; - -/** Command for adding a row to the table. */ -private static final String ADD = add; - -/** Command for removing a row from the table. */ -private static final String DELETE = delete; - -/** - * Boolean indicating whether or not this component should display its - * name. If true, this is a standalone component. If false, this component - * is intended to be used as a subpanel for another component. - */ -private boolean displayName = true
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog TCLogParser.java
mstover12004/06/08 14:41:02 Modified:src/core/org/apache/jmeter/util JMeterVersion.java src/protocol/http/org/apache/jmeter/protocol/http/sampler AccessLogSampler.java src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog TCLogParser.java Log: Fixing access log sampler session filter Revision ChangesPath 1.21 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java Index: JMeterVersion.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- JMeterVersion.java28 May 2004 21:09:13 - 1.20 +++ JMeterVersion.java8 Jun 2004 21:41:02 - 1.21 @@ -41,7 +41,7 @@ * pattern: VERSION = quote.*quote * */ - static final String VERSION = 2.0.20040528; + static final String VERSION = 2.0.20040608; private JMeterVersion() // Not instantiable { 1.13 +8 -5 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java Index: AccessLogSampler.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- AccessLogSampler.java 6 Jun 2004 22:24:57 - 1.12 +++ AccessLogSampler.java 8 Jun 2004 21:41:02 - 1.13 @@ -140,7 +140,7 @@ int thisCount = PARSER.parseAndConfigure(1, this); if (thisCount == 0) { -if(count == 0) +if (count == 0) { JMeterContextService.getContext().getThread().stop(); } @@ -313,10 +313,13 @@ if (TestCloneable.class.isAssignableFrom(Class .forName(filterClassName))) { - filter = (Filter) Class.forName(filterClassName).newInstance(); + if (filter == null) + { + filter = (Filter) Class.forName(filterClassName) +.newInstance(); + } s.filter = (Filter) ((TestCloneable) filter).clone(); } - } catch (Exception e) { 1.14 +3 -2 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/TCLogParser.java Index: TCLogParser.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/TCLogParser.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- TCLogParser.java 28 May 2004 21:09:14 - 1.13 +++ TCLogParser.java 8 Jun 2004 21:41:02 - 1.14 @@ -256,6 +256,7 @@ { break; } +line = breader.readLine(); } } catch (IOException ioe) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/xdocs/usermanual functions.xml
mstover12004/05/23 11:53:21 Modified:.Tag: rel-2_0 build.xml src/core/org/apache/jmeter/util Tag: rel-2_0 JMeterVersion.java xdocs/stylesheets Tag: rel-2_0 project.xml xdocs/usermanual Tag: rel-2_0 functions.xml Log: New Release and slight site update Revision ChangesPath No revision No revision 1.175.2.2 +5 -5 jakarta-jmeter/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-jmeter/build.xml,v retrieving revision 1.175.2.1 retrieving revision 1.175.2.2 diff -u -r1.175.2.1 -r1.175.2.2 --- build.xml 4 Apr 2004 13:59:53 - 1.175.2.1 +++ build.xml 23 May 2004 18:53:20 - 1.175.2.2 @@ -378,7 +378,7 @@ target name=init-version tstamp/ !-- JMeter version -- - property name=jmeter.version value=2.0.0/ + property name=jmeter.version value=2.0.1/ /target target name=init depends=check-libs,report-missing-libs,init-version No revision No revision 1.14.2.4 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java Index: JMeterVersion.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java,v retrieving revision 1.14.2.3 retrieving revision 1.14.2.4 diff -u -r1.14.2.3 -r1.14.2.4 --- JMeterVersion.java4 Apr 2004 13:59:53 - 1.14.2.3 +++ JMeterVersion.java23 May 2004 18:53:20 - 1.14.2.4 @@ -41,7 +41,7 @@ * pattern: VERSION = quote.*quote * */ - static final String VERSION = 2.0.0; + static final String VERSION = 2.0.1; private JMeterVersion() // Not instantiable { No revision No revision 1.23.2.2 +3 -3 jakarta-jmeter/xdocs/stylesheets/project.xml Index: project.xml === RCS file: /home/cvs/jakarta-jmeter/xdocs/stylesheets/project.xml,v retrieving revision 1.23.2.1 retrieving revision 1.23.2.2 diff -u -r1.23.2.1 -r1.23.2.2 --- project.xml 31 Mar 2004 22:24:03 - 1.23.2.1 +++ project.xml 23 May 2004 18:53:20 - 1.23.2.2 @@ -32,8 +32,8 @@ item name=FAQ (Wiki) href=http://wiki.apache.org/jakarta-jmeter/JMeterFAQ/ /menu menu name=Download - item name=Download Binary href=http://jakarta.apache.org/site/binindex.cgi/ -item name=Download Source href=http://jakarta.apache.org/site/sourceindex.cgi/ + item name=Download Binary href=http://jakarta.apache.org/site/binindex.cgi#jmeter_binaries/ +item name=Download Source href=http://jakarta.apache.org/site/sourceindex.cgi#jmeter_sources/ item name=Nightly Builds href=/nightly.html/ /menu menu name=Documentation No revision No revision 1.14.2.1 +24 -25jakarta-jmeter/xdocs/usermanual/functions.xml Index: functions.xml === RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/functions.xml,v retrieving revision 1.14 retrieving revision 1.14.2.1 diff -u -r1.14 -r1.14.2.1 --- functions.xml 23 Mar 2004 17:00:58 - 1.14 +++ functions.xml 23 May 2004 18:53:21 - 1.14.2.1 @@ -209,14 +209,16 @@ The current sequence number is passed in as the only parameter. If the optional sequence numbers are not used, the path name is used as is. Useful formatting sequences are: -pre -# - insert the number, with no leading zeros or spaces -000 - insert the number packed out to 3 digits with leading zeros if necessary - -Examples: - pin#.dat - pin1.dat, ... pin9.dat, pin10.dat, ... pin.dat + /p + p +code +# - insert the number, with no leading zeros or spacesbr/ +000 - insert the number packed out to 3 digits with leading zeros if necessarybr/ +p/ +Examples:br/ + pin#.dat - pin1.dat, ... pin9.dat, pin10.dat, ... pin.datbr/ pin000.dat - pin001.dat ... pin099.dat ... pin999.dat ... pin.dat -/pre +/codep/ If more digits are required than there are formatting characters, the number will be expanded as necessary. To prevent a formatting character from being interpreted, enclose it in single quotes. See the documentation for DecimalFormat for full details. @@ -312,12 +314,10 @@ When supplying a default value, there is no need to provide a function name - the parameter can be set to null, and it will be ignored. /pFor example:p code
cvs commit: jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler JDBCSamplerBeanInfo.java
mstover12004/05/21 09:58:26 Modified:bin jmeter.properties src/core/org/apache/jmeter/control IfController.java LoopController.java src/core/org/apache/jmeter/testbeans TestBean.java src/core/org/apache/jmeter/testbeans/gui GenericTestBeanCustomizer.java src/core/org/apache/jmeter/testelement/property FunctionProperty.java src/core/org/apache/jmeter/threads SamplePackage.java TestCompiler.java src/core/org/apache/jmeter/util JMeterVersion.java src/protocol/http/org/apache/jmeter/protocol/http/proxy HttpRequestHdr.java src/protocol/http/org/apache/jmeter/protocol/http/sampler AccessLogSampler.java src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog LogFilter.java TCLogParser.java src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler JDBCSamplerBeanInfo.java Added: src/core/org/apache/jmeter/testbeans/gui TextAreaEditor.java src/jorphan/org/apache/jorphan/util Converter.java Log: Fixing AccessLog filter, fixing caching of Controller property values Revision ChangesPath 1.104 +2 -1 jakarta-jmeter/bin/jmeter.properties Index: jmeter.properties === RCS file: /home/cvs/jakarta-jmeter/bin/jmeter.properties,v retrieving revision 1.103 retrieving revision 1.104 diff -u -r1.103 -r1.104 --- jmeter.properties 20 May 2004 19:18:39 - 1.103 +++ jmeter.properties 21 May 2004 16:58:25 - 1.104 @@ -117,6 +117,7 @@ log_level.jmeter=INFO log_level.jmeter.junit=DEBUG +log_level.jmeter.control=DEBUG #log_level.jmeter.testbeans=DEBUG #log_level.jmeter.engine=DEBUG #log_level.jmeter.gui=WARN @@ -124,7 +125,7 @@ #log_level.jmeter.util=WARN #log_level.jmeter.util.classfinder=WARN #log_level.jmeter.test=DEBUG -#log_level.jmeter.protocol.http=DEBUG +log_level.jmeter.protocol.http=DEBUG #log_level.jmeter.protocol.ftp=WARN #log_level.jmeter.protocol.jdbc=DEBUG #log_level.jmeter.protocol.java=WARN 1.6 +3 -6 jakarta-jmeter/src/core/org/apache/jmeter/control/IfController.java Index: IfController.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/control/IfController.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- IfController.java 19 Apr 2004 19:05:56 - 1.5 +++ IfController.java 21 May 2004 16:58:26 - 1.6 @@ -86,10 +86,7 @@ * Condition Accessor - this is gonna be like ${count}10 */ public String getCondition() { - JMeterProperty prop = getProperty(CONDITION); - if (prop instanceof FunctionProperty) - ((FunctionProperty)prop).setUseCache(false); - return prop.getStringValue(); + return getPropertyAsString(CONDITION); } /** 1.23 +2 -5 jakarta-jmeter/src/core/org/apache/jmeter/control/LoopController.java Index: LoopController.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/control/LoopController.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- LoopController.java 8 Apr 2004 19:16:44 - 1.22 +++ LoopController.java 21 May 2004 16:58:26 - 1.23 @@ -25,7 +25,6 @@ import org.apache.jmeter.samplers.Sampler; import org.apache.jmeter.testelement.TestElement; import org.apache.jmeter.testelement.property.BooleanProperty; -import org.apache.jmeter.testelement.property.FunctionProperty; import org.apache.jmeter.testelement.property.IntegerProperty; import org.apache.jmeter.testelement.property.JMeterProperty; import org.apache.jmeter.testelement.property.StringProperty; @@ -66,8 +65,6 @@ try { JMeterProperty prop = getProperty(LOOPS); - if (prop instanceof FunctionProperty) - ((FunctionProperty)prop).setUseCache(false); return Integer.parseInt(prop.getStringValue()); } catch (NumberFormatException e) 1.10 +4 -344 jakarta-jmeter/src/core/org/apache/jmeter/testbeans/TestBean.java Index: TestBean.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testbeans/TestBean.java,v retrieving revision 1.9 retrieving
cvs commit: jakarta-jmeter/lib excalibur-datasource-1.1.1.jar excalibur-instrument-1.0.jar excalibur-pool-1.2.jar
mstover12004/05/20 06:01:48 Added: lib excalibur-datasource-1.1.1.jar excalibur-instrument-1.0.jar excalibur-pool-1.2.jar Log: New binaries to support database connection pooling Revision ChangesPath 1.1 jakarta-jmeter/lib/excalibur-datasource-1.1.1.jar Binary file 1.1 jakarta-jmeter/lib/excalibur-instrument-1.0.jar Binary file 1.1 jakarta-jmeter/lib/excalibur-pool-1.2.jar Binary file - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter build.xml
mstover12004/05/20 06:38:26 Modified:.build.xml Log: Added third party lib properties in build file Revision ChangesPath 1.179 +10 -4 jakarta-jmeter/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-jmeter/build.xml,v retrieving revision 1.178 retrieving revision 1.179 diff -u -r1.178 -r1.179 --- build.xml 13 May 2004 13:58:53 - 1.178 +++ build.xml 20 May 2004 13:38:26 - 1.179 @@ -301,6 +301,9 @@ property name=excalibur-compatibility.jar value=${lib.dir}/excalibur-compatibility-1.1.jar/ property name=junit.jar value=${lib.dir}/junit.jar/ property name=logkit.jar value=${lib.dir}/logkit-1.2.jar/ + property name=excalibur-datasource.jar value=${lib.dir}/excalibur-datasource-1.1.1.jar/ + property name=excalibur-pool.jar value=${lib.dir}/excalibur-pool-1.2.jar/ + property name=excalibur-instrument.jar value=${lib.dir}/excalibur-instrument-1.0.jar/ !-- The following 3 jars are probably optional for JDK1.4 -- property name=xalan.jar value=${lib.dir}/xalan.jar/ @@ -337,6 +340,9 @@ include name=${js.jar}/ include name=${soap.jar}/ include name=${tidy.jar}/ +include name=${excalibur-datasource.jar}/ +include name=${excalibur-pool.jar}/ +include name=${excalibur-instrument.jar}/ /patternset !-- - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog TCLogParser.java
mstover12004/05/20 11:08:54 Modified:src/protocol/http/org/apache/jmeter/protocol/http/sampler Tag: rel-2_0 AccessLogSampler.java src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog Tag: rel-2_0 TCLogParser.java Log: Access Log Sampler can do urls without parameters, can use header manager and other config elements. Revision ChangesPath No revision No revision 1.8.2.1 +8 -6 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java Index: AccessLogSampler.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/AccessLogSampler.java,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -u -r1.8 -r1.8.2.1 --- AccessLogSampler.java 19 Feb 2004 00:25:56 - 1.8 +++ AccessLogSampler.java 20 May 2004 18:08:54 - 1.8.2.1 @@ -190,9 +190,10 @@ try { samp = (HTTPSampler) GENERATOR.generateRequest(); -samp.setDomain(this.getDomain()); + +/*samp.setDomain(this.getDomain()); samp.setPort(this.getPort()); -samp.setImageParser(this.isImageParser()); +samp.setImageParser(this.isImageParser());*/ // we call parse with 1 to get only one. // this also means if we change the implementation // to use 2, it would use every other entry and @@ -201,8 +202,9 @@ // huge gigabyte log file and they only want to // use a quarter of the entries. PARSER.parse(1); -res = samp.sample(); -res.setSampleLabel(samp.toString()); + this.addTestElement(samp); +res = sample(); +res.setSampleLabel(toString()); } catch (Exception e) { No revision No revision 1.10.2.1 +35 -15 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/TCLogParser.java Index: TCLogParser.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/TCLogParser.java,v retrieving revision 1.10 retrieving revision 1.10.2.1 diff -u -r1.10 -r1.10.2.1 --- TCLogParser.java 13 Mar 2004 20:05:42 - 1.10 +++ TCLogParser.java 20 May 2004 18:08:54 - 1.10.2.1 @@ -26,6 +26,8 @@ import java.util.Vector; import org.apache.jmeter.junit.JMeterTestCase; +import org.apache.jorphan.logging.LoggingManager; +import org.apache.log.Logger; /** * Description:br @@ -76,6 +78,7 @@ public class TCLogParser implements LogParser { + static Logger log = LoggingManager.getLoggerForClass(); public static final String GET = GET; public static final String POST = POST; @@ -292,12 +295,7 @@ line = FILTER.filter(line); if (line != null) { -String paramString = null; -// check the URL for ? symbol -paramString = this.stripFile(line); -this.checkParamFormat(line); -// now that we have stripped the file, we can parse the parameters -this.convertStringToJMRequest(paramString); +createUrl(line); } } } @@ -307,16 +305,27 @@ COUNT++; // in the case when the filter is not set, we // parse all the lines -String paramString = null; -// check the URL for ? symbol -paramString = this.stripFile(line); -this.checkParamFormat(line); -// now that we have stripped the file, we can parse the parameters -this.convertStringToJMRequest(paramString); +createUrl(line); } } /** +* @param line +*/ + private void createUrl(String line) + { + String paramString = null; +// check the URL for ? symbol +paramString = this.stripFile(line); +if(paramString != null) +{ + this.checkParamFormat(line); + // now that we have stripped the file, we can parse the parameters + this.convertStringToJMRequest(paramString); +} + } + + /** * The method cleans the URL using the following * algorithm. * ol @@ -360,6 +369,14 @@ while (token2.hasMoreTokens
cvs commit: jakarta-jmeter/test - Imported sources
mstover12004/05/13 06:43:25 Log: Adding test folder for unit tests Status: Vendor Tag: jakarta Release Tags: initial N jakarta-jmeter/test/src/org/apache/jorphan/math/TestStatCalculator.java No conflicts created by this import - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/xdocs/usermanual component_reference.xml
mstover12004/04/16 06:21:46 Modified:.build.xml eclipse.classpath bin jmeter.properties src/components/org/apache/jmeter/visualizers ViewResultsFullVisualizer.java src/core/org/apache/jmeter/resources messages.properties src/core/org/apache/jmeter/util JMeterVersion.java src/jorphan/org/apache/jorphan/collections HashTree.java src/protocol/http/org/apache/jmeter/protocol/http/config/gui UrlConfigGui.java src/protocol/http/org/apache/jmeter/protocol/http/proxy HttpReplyHdr.java HttpRequestHdr.java Proxy.java src/protocol/http/org/apache/jmeter/protocol/http/sampler HTTPSampler.java HTTPSampler2.java PostWriter.java src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui TCPConfigGui.java src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler TCPClient.java TCPClientImpl.java TCPSampler.java xdocschanges.xml index.xml nightly.xml xdocs/stylesheets project.xml xdocs/usermanual component_reference.xml Added: src/components/org/apache/jmeter/assertions HTMLAssertion.java src/components/org/apache/jmeter/assertions/gui HTMLAssertionGui.java xdocs/images/screenshots/assertion HTMLAssertion.png Log: Merging rel-2_0 branch to main Revision ChangesPath 1.177 +50 -6 jakarta-jmeter/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-jmeter/build.xml,v retrieving revision 1.176 retrieving revision 1.177 diff -u -r1.176 -r1.177 --- build.xml 8 Apr 2004 21:38:11 - 1.176 +++ build.xml 16 Apr 2004 13:21:44 - 1.177 @@ -382,7 +382,7 @@ target name=init-version tstamp/ !-- JMeter version -- - property name=jmeter.version value=1.9.${DSTAMP}/ + property name=jmeter.version value=2.0.${DSTAMP}/ /target target name=init depends=check-libs,report-missing-libs,init-version @@ -868,10 +868,54 @@ include name=build.*/ include name=lcp.bat/ include name=${dest.jar.jmeter}/jmeter*.bat/ -include name=${dest.jar.jmeter}/jmeter.properties/ +include name=${dest.jar.jmeter}/jmeter*.properties/ include name=${dest.jar.jmeter}/log4j.conf/ +include name=${dest.jar.jmeter}/testfiles/**/ include name=eclipse.classpath*/ /patternset + + target name=distribution depends=assume-libs-present,clean,install,docs-all,test + description=Build JMeter for end-user distribution + property name=dist.name value=jakarta-jmeter-${jmeter.version}/ + property name=pack.name value=${dist.name}/ + patternset id=dist_bin_files + patternset refid=dist.binaries/ + patternset refid=external.jars/ + include name=docs/**/ + include name=${dest.printable_docs}/**/ + exclude name=docs/api/**/ + /patternset + patternset id=dist_src_files + patternset refid=external.jars/ + patternset refid=dist.sources/ + /patternset +mkdir dir=${dist.dir}/ +tar destfile=${dist.dir}/${pack.name}_bin.tar longfile=gnu + tarfileset dir=. prefix=${dist.name} excludes=${dist.executables} defaultexcludes=yes +patternset refid=dist_bin_files/ + /tarfileset + tarfileset mode=755 includes=${dist.executables} dir=. prefix=${dist.name} defaultexcludes=yes/ +/tar +gzip zipfile=${dist.dir}/${pack.name}_bin.tgz src=${dist.dir}/${pack.name}_bin.tar / +zip zipfile=${dist.dir}/${pack.name}_bin.zip + zipfileset dir=. prefix=${dist.name} defaultexcludes=yes +patternset refid=dist_bin_files/ + /zipfileset +/zip + +tar destfile=${dist.dir}/${pack.name}_src.tar longfile=gnu + tarfileset dir=. prefix=${dist.name} excludes=${dist.executables} defaultexcludes=yes +patternset refid=dist_src_files/ + /tarfileset + tarfileset mode=755 includes=${dist.executables} dir=. prefix=${dist.name} defaultexcludes=yes/ +/tar +gzip zipfile=${dist.dir}/${pack.name}_src.tgz src=${dist.dir}/${pack.name}_src.tar / +zip zipfile=${dist.dir}/${pack.name}_src.zip + zipfileset dir=. prefix=${dist.name} defaultexcludes=yes +patternset refid=dist_src_files/ + /zipfileset +/zip + /target !-- N.B. this target is the one currently used by Gump -- target name=dist depends=assume-libs-present,clean,install,docs-all,test description=Rebuild all and create the distribution packages. 1.12 +1
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler HTTPSampler.java
mstover12004/04/03 12:32:40 Modified:src/protocol/http/org/apache/jmeter/protocol/http/proxy Tag: rel-2_0 Proxy.java src/protocol/http/org/apache/jmeter/protocol/http/sampler Tag: rel-2_0 HTTPSampler.java Log: Fixing proxy + gzip bug. Some pointless refactorings. Revision ChangesPath No revision No revision 1.17.2.2 +28 -3 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java Index: Proxy.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java,v retrieving revision 1.17.2.1 retrieving revision 1.17.2.2 diff -u -r1.17.2.1 -r1.17.2.2 --- Proxy.java2 Apr 2004 23:41:52 - 1.17.2.1 +++ Proxy.java3 Apr 2004 20:32:40 - 1.17.2.2 @@ -166,7 +166,8 @@ { try { - out.write((res.getResponseHeaders()+\n).getBytes()); +String responseHeaders = massageResponseHeaders(res,res.getResponseHeaders()); + out.write((responseHeaders+\n).getBytes()); out.write(res.getResponseData()); out.flush(); log.debug(Done writing to client); @@ -187,6 +188,30 @@ log.warn(Error while closing socket, ex); } } +} + +/** + * In the event the content was gzipped and unpacked, the content-encoding header must be + * removed and the content-length header should be corrected. + * @param res + * @param headers + * @return + */ +private String massageResponseHeaders(SampleResult res,String headers) +{ +int encodingHeaderLoc = headers.indexOf(: gzip); +String newHeaders = headers; +if(encodingHeaderLoc -1) +{ +int end = headers.indexOf(\n,encodingHeaderLoc); +int begin = headers.lastIndexOf(\n,encodingHeaderLoc); +newHeaders = newHeaders.substring(0,begin) + newHeaders.substring(end); +int lengthIndex = newHeaders.indexOf(ength: ); +end = newHeaders.indexOf(\n,lengthIndex); +newHeaders = newHeaders.substring(0,lengthIndex+7) + res.getResponseData().length + + newHeaders.substring(end); +} +return newHeaders; } /** No revision No revision 1.91.2.1 +22 -11 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java Index: HTTPSampler.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v retrieving revision 1.91 retrieving revision 1.91.2.1 diff -u -r1.91 -r1.91.2.1 --- HTTPSampler.java 21 Mar 2004 04:20:25 - 1.91 +++ HTTPSampler.java 3 Apr 2004 20:32:40 - 1.91.2.1 @@ -303,17 +303,28 @@ for (int i= 1; conn.getHeaderFieldKey(i) != null; i++) { -if (!conn //TODO - why is this not saved? -.getHeaderFieldKey(i) -.equalsIgnoreCase(transfer-encoding)) -{ -headerBuf.append(conn.getHeaderFieldKey(i)); -headerBuf.append(: ); -headerBuf.append(conn.getHeaderField(i)); -headerBuf.append(\n); -} +modifyHeaderValues(conn,i, headerBuf); } return headerBuf.toString(); +} + +/** + * @param conn + * @param headerBuf + * @param i + */ +protected void modifyHeaderValues(HttpURLConnection conn, int headerIndex, StringBuffer resultBuf) +{ +if (transfer-encoding //TODO - why is this not saved? A: it might be a proxy server specific field. + // If JMeter is using a proxy, the browser wouldn't know about that. +.equalsIgnoreCase(conn.getHeaderFieldKey(headerIndex))) +{ + return; +} +resultBuf.append(conn.getHeaderFieldKey(headerIndex)); +resultBuf.append(: ); +resultBuf.append(conn.getHeaderField(headerIndex)); +resultBuf.append(\n); } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy HttpRequestHdr.java Proxy.java
mstover12004/04/02 15:41:52 Modified:src/protocol/http/org/apache/jmeter/protocol/http/config/gui Tag: rel-2_0 UrlConfigGui.java src/protocol/http/org/apache/jmeter/protocol/http/proxy Tag: rel-2_0 HttpRequestHdr.java Proxy.java Log: Fixing proxy server which was completely broken. How'd that happen anyway? Revision ChangesPath No revision No revision 1.16.2.1 +3 -2 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java Index: UrlConfigGui.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java,v retrieving revision 1.16 retrieving revision 1.16.2.1 diff -u -r1.16 -r1.16.2.1 --- UrlConfigGui.java 21 Mar 2004 04:21:19 - 1.16 +++ UrlConfigGui.java 2 Apr 2004 23:41:51 - 1.16.2.1 @@ -110,6 +110,7 @@ element.setProperty(HTTPSampler.METHOD, (post.isSelected() ? POST : GET)); element.setProperty(HTTPSampler.PATH, path.getText()); +element.setProperty(HTTPSampler.ENCODED_PATH,path.getText()); element.setProperty(new BooleanProperty(HTTPSampler.FOLLOW_REDIRECTS, followRedirects.isSelected())); element.setProperty(new BooleanProperty(HTTPSampler.AUTO_REDIRECTS, No revision No revision 1.23.2.1 +5 -4 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java Index: HttpRequestHdr.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java,v retrieving revision 1.23 retrieving revision 1.23.2.1 diff -u -r1.23 -r1.23.2.1 --- HttpRequestHdr.java 12 Feb 2004 01:19:53 - 1.23 +++ HttpRequestHdr.java 2 Apr 2004 23:41:51 - 1.23.2.1 @@ -187,8 +187,9 @@ // Damn! A whole new GUI just to instantiate a test element? // Isn't there a beter way? HttpTestSampleGui tempGui = new HttpTestSampleGui(); -tempGui.configure(createSampler()); -HTTPSampler result = (HTTPSampler) tempGui.createTestElement(); +HTTPSampler result = createSampler(); +tempGui.configure(result); +tempGui.modifyTestElement(result); result.setFollowRedirects(false); result.setUseKeepAlive(true); return result; 1.17.2.1 +2 -3 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java Index: Proxy.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java,v retrieving revision 1.17 retrieving revision 1.17.2.1 diff -u -r1.17 -r1.17.2.1 --- Proxy.java12 Feb 2004 00:29:50 - 1.17 +++ Proxy.java2 Apr 2004 23:41:52 - 1.17.2.1 @@ -114,7 +114,6 @@ */ headers = request.getHeaderManager(); sampler.setHeaderManager(headers); - result = sampler.sample(); writeToClient( result, - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/jorphan/org/apache/jorphan/collections Data.java HashTree.java ListedHashTree.java SortedHashTree.java
mstover12004/03/24 07:23:37 Modified:src/core/org/apache/jmeter/util JMeterVersion.java src/jorphan/org/apache/jorphan/collections Data.java HashTree.java ListedHashTree.java SortedHashTree.java Log: improvements to HashTree collections Revision ChangesPath 1.13 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java Index: JMeterVersion.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- JMeterVersion.java20 Mar 2004 12:38:33 - 1.12 +++ JMeterVersion.java24 Mar 2004 15:23:37 - 1.13 @@ -42,7 +42,7 @@ * pattern: VERSION = quote.*quote * */ - static final String VERSION = 1.9.20040320; + static final String VERSION = 1.9.20040324; private JMeterVersion() // Not instantiable { 1.9 +41 -2 jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/Data.java Index: Data.java === RCS file: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/Data.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Data.java 11 Feb 2004 23:46:32 - 1.8 +++ Data.java 24 Mar 2004 15:23:37 - 1.9 @@ -18,6 +18,9 @@ package org.apache.jorphan.collections; import java.io.Serializable; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -389,6 +392,42 @@ public boolean next() { return (++currentPos size); +} + +/** + * Gets a Data object from a ResultSet. + * + * @param rs ResultSet passed in from a database query + * @returna Data object + * @throwsjava.sql.SQLException + */ +public static Data getDataFromResultSet(ResultSet rs) throws SQLException +{ +ResultSetMetaData meta = rs.getMetaData(); +Data data = new Data(); + +int numColumns = meta.getColumnCount(); +String[] dbCols = new String[numColumns]; +for (int i = 0; i numColumns; i++) +{ +dbCols[i] = meta.getColumnName(i + 1); +data.addHeader(dbCols[i]); +} + +while (rs.next()) +{ +data.next(); +for (int i = 0; i numColumns; i++) +{ +Object o = rs.getObject(i + 1); +if (o instanceof byte[]) +{ +o = new String((byte[]) o); +} +data.addColumnValue(dbCols[i], o); +} +} +return data; } /** 1.14 +76 -40 jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/HashTree.java Index: HashTree.java === RCS file: /home/cvs/jakarta-jmeter/src/jorphan/org/apache/jorphan/collections/HashTree.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- HashTree.java 19 Feb 2004 00:20:01 - 1.13 +++ HashTree.java 24 Mar 2004 15:23:37 - 1.14 @@ -356,11 +356,7 @@ */ public void set(Collection values) { -Iterator iter = this.list().iterator(); -while (iter.hasNext()) -{ -this.remove(iter.next()); -} +clear(); this.add(values); } @@ -388,11 +384,17 @@ * * @param key key to be added to HashTree */ -public void add(Object key) +public HashTree add(Object key) { if (!data.containsKey(key)) { -data.put(key, createNewTree()); +HashTree newTree = createNewTree(); +data.put(key, newTree); +return newTree; +} +else +{ +return getTree(key); } } @@ -928,32 +930,21 @@ */ public HashTree search(Object key) { -HashTree temp = null; -if (data.containsKey(key)) +HashTree result = getTree(key); +if(result != null) { -temp = (HashTree) data.get(key); +return result; } -else +TreeSearcher searcher = new TreeSearcher(key); +try { - //TODO - what is supposed to be happening here? - //the loop will only happen once
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui ProxyControlGui.java
mstover12004/02/11 18:58:26 Modified:src/core/org/apache/jmeter/gui GuiPackage.java src/core/org/apache/jmeter/gui/tree JMeterTreeModel.java src/core/org/apache/jmeter/util JMeterVersion.java src/protocol/http/org/apache/jmeter/protocol/http/proxy Daemon.java src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui ProxyControlGui.java Log: Fixing problem in proxy - refreshing model when start button clicked to get latest user changes to values. Also fixed problem where currently selected elements are overwritten by proxy recorded items Revision ChangesPath 1.28 +6 -1 jakarta-jmeter/src/core/org/apache/jmeter/gui/GuiPackage.java Index: GuiPackage.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/GuiPackage.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- GuiPackage.java 10 Feb 2004 22:05:38 - 1.27 +++ GuiPackage.java 12 Feb 2004 02:58:25 - 1.28 @@ -464,6 +464,11 @@ log.error(Problem retrieving gui, e); } } + +public TestElement getCurrentElement() +{ +return treeListener.getCurrentNode().createTestElement(); +} /** * The dirty property is a flag that indicates whether there are parts of 1.23 +8 -5 jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeModel.java Index: JMeterTreeModel.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeModel.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- JMeterTreeModel.java 12 Feb 2004 01:41:58 - 1.22 +++ JMeterTreeModel.java 12 Feb 2004 02:58:25 - 1.23 @@ -65,6 +65,8 @@ import org.apache.jmeter.control.gui.TestPlanGui; import org.apache.jmeter.control.gui.WorkBenchGui; import org.apache.jmeter.exceptions.IllegalUserActionException; +import org.apache.jmeter.gui.GuiPackage; +import org.apache.jmeter.gui.JMeterGUIComponent; import org.apache.jmeter.testelement.TestElement; import org.apache.jmeter.testelement.TestPlan; import org.apache.jmeter.testelement.WorkBench; @@ -163,10 +165,11 @@ TestElement.GUI_CLASS, NameUpdater.getCurrentName( component.getPropertyAsString(TestElement.GUI_CLASS))); -// Commenting these three lines fixed bug#24704 and bug#25166. TODO: remove them. -//JMeterGUIComponent guicomp = GuiPackage.getInstance().getGui(component); -//guicomp.configure(component); -//guicomp.modifyTestElement(component); +GuiPackage.getInstance().updateCurrentNode(); +JMeterGUIComponent guicomp = GuiPackage.getInstance().getGui(component); +guicomp.configure(component); +guicomp.modifyTestElement(component); +GuiPackage.getInstance().getCurrentGui(); //put the gui object back to the way it was. JMeterTreeNode newNode = new JMeterTreeNode((TestElement) component, this); 1.10 +2 -2 jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java Index: JMeterVersion.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/util/JMeterVersion.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- JMeterVersion.java30 Jan 2004 16:05:38 - 1.9 +++ JMeterVersion.java12 Feb 2004 02:58:25 - 1.10 @@ -24,7 +24,7 @@ * pattern: VERSION = quote.*quote * */ - static final String VERSION = 1.9.20040130; + static final String VERSION = 1.9.20040211; private JMeterVersion() // Not instantiable { 1.11 +3 -4 jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Daemon.java Index: Daemon.java === RCS file: /home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Daemon.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- Daemon.java 12 Feb 2004 00:29:50 - 1.10 +++ Daemon.java 12 Feb 2004 02:58:25 - 1.11 @@ -171,10 +171,9 @@ try { -log.info(Creating Daemon Socket...); +log.info(Creating Daemon Socket... on port + daemonPort); mainSocket = new ServerSocket(daemonPort); mainSocket.setSoTimeout(ACCEPT_TIMEOUT); -log.info( port + daemonPort + OK
Re: How to handle htmlparser library (was Are we ready for a RC?)
we have a license to keep the source in CVS but not a binary jar? On 5 Feb 2004 at 5:52, peter lin wrote: I guess I'm the only one with the bias towards better performance at the cost of increased maintenance. If everyone prefers to default to JTidy and require users download HTMLParser, I have no objections. I just would rather make it easier on the user and not add another jar file for users to download. Plus the developers of HTMLParser were kind enough to donate a license to us. Overall, my bias is towards keeping the source in CVS or try to move it to commons. HTMLParser is capable of parsing XML and other markup languages, so it does provide a flexible set of API for developers to extend. On a unrelated note, I am working on the monitor idea again after several months of putting it off. In order to get the monitor to work, I need to use digest authentication. My plan is to use commons- HTTPClient, since it supports digest auth. I was also planning on doing a simple benchmark comparing the default URLConnection to HTTPClient. HTTPClient also supports NTLM, so it could mean an easy way to support NTLM in HTTPSampler. If there are no performance degredations using HTTPClient, I will probably suggest we convert to HTTPClient. Does anyone have an alergy to that idea? If so, speak up now and I'll just keep the results to myself. I went through the bugs last night. I don't know enough of those samplers to be able to provide a quick patch. Are there any other bugs we want to address before a release candidate? peter lin BAZLEY, Sebastian [EMAIL PROTECTED] wrote: We could check for the presence of HTMLParser at run-time, and fall back to JTidy or Regex (or etc.) if not present. Some users might not like the fallback behaviour, so if the parser property were changed to be a list of the acceptable parsers, in order of preference, we could support as much (or as little) fallback as required. We should log a warning message if the desired parser is not present (JMeter already logs an info message when a parser is initialised). S. - Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Are we ready for a RC?
I got the bsf.jar from BSF-2.3.0-rc1 milestone release. JMeter source file in question: org.apache.jmeter.protocol.java.sampler.BeanShellSampler Line 61 import bsh.Interpreter; -Mike On 4 Feb 2004 at 22:46, [EMAIL PROTECTED] wrote: I don't have the same problem with the bsf jar file - are you sure that you have got the Jakarta Apache one, and not the original IBM one? Which files have the bsf import statements? I could not find any ... are there some old files lying around perhaps? == An Ant task to fetch the jars would be nice - should be easy enough. I'll see if I can cobble something together. == I've coded the BSF and BSH stuff so that the jars are optional at run-time - you only need them if you've used them in the test plan. I had hoped to be able to arrange things so that the code would compile without the optional jars, but did not find a method I liked. S. - Original Message - From: [EMAIL PROTECTED] To: JMeter Developers List [EMAIL PROTECTED] Sent: Wednesday, February 04, 2004 9:40 PM Subject: RE: Are we ready for a RC? That's why we'd use Ant to fetch them rather than put them in CVS. We can't distribute the jars, but to do a dist, JMeter should come fully compiled against these optional jars (and so I need them). Also, an Ant fetch target would be really nice for users - want all the optional abilities? Run the target to get them. Wouldn't work for the mail api's, but would be great for anything under non-compatible free licenses. -Mike On 4 Feb 2004 at 13:15, peter lin wrote: GPL license issues remember :) peter [EMAIL PROTECTED] wrote: I downloaded the BSF binaries, and this did not help. There are import statements looking for bsf.Interpreter that don't seem to exist. Also, are we keeping HTMLParser source files in JMeter's CVS or not? Is it necessary? I'm not a big fan of Maven, but maybe we need it for JMeter. Alternatively, maybe we could put in an Ant target that would go and automatically fetch missing jars? -Mike On 4 Feb 2004 at 15:07, BAZLEY, Sebastian wrote: You might also want bsf.jar from Jakarta BSF http://jakarta.apache.org/bsf/index.html. I guess this info needs to be added to the JMeter docs somewhere. S. -Original Message- From: peter lin [mailto:[EMAIL PROTECTED] Sent: 04 February 2004 14:58 To: JMeter Developers List Subject: RE: Are we ready for a RC? these are the ones I am aware of. mail.jar, activation.jar, bsh.jar feels like I'm missing one. peter [EMAIL PROTECTED] wrote: If I'm doing the build, I assume I should have all the optional libraries, so maybe I need a rundown on what I need. I have the mail jars. What else do I need and where do I get them? -Mike On 4 Feb 2004 at 11:48, BAZLEY, Sebastian wrote: -Original Message- From: BAZLEY, Sebastian Sent: 04 February 2004 10:49 To: 'JMeter Developers List' Subject: RE: Are we ready for a RC? I made most of the recent changes to unit tests to check that items are being created, but I don't recall checking anything for a count of 0, just a few checks that look for 0. Just realised - I did code tests to check if there were any entries in component_reference.xml (or functions.xml) that did not seem to have any corresponding test element or function. So the error you saw means that there were 3 entries in component_reference that did not appear in the test elements. These could well be due to optional libraries such as BeanShell and BSF. S. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: 03 February 2004 20:36 To: JMeter Developers List Subject: Re: Are we ready for a RC? [...] I tried to run the unit tests, and got an error - checkGuiSet found 3 gui's where it expected 0. This is all new code to me, but I'm guessing this means there are 3 new guis that aren't being tested? -Mike - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED]
RE: Are we ready for a RC?
If I'm doing the build, I assume I should have all the optional libraries, so maybe I need a rundown on what I need. I have the mail jars. What else do I need and where do I get them? -Mike On 4 Feb 2004 at 11:48, BAZLEY, Sebastian wrote: -Original Message- From: BAZLEY, Sebastian Sent: 04 February 2004 10:49 To: 'JMeter Developers List' Subject: RE: Are we ready for a RC? I made most of the recent changes to unit tests to check that items are being created, but I don't recall checking anything for a count of 0, just a few checks that look for 0. Just realised - I did code tests to check if there were any entries in component_reference.xml (or functions.xml) that did not seem to have any corresponding test element or function. So the error you saw means that there were 3 entries in component_reference that did not appear in the test elements. These could well be due to optional libraries such as BeanShell and BSF. S. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: 03 February 2004 20:36 To: JMeter Developers List Subject: Re: Are we ready for a RC? [...] I tried to run the unit tests, and got an error - checkGuiSet found 3 gui's where it expected 0. This is all new code to me, but I'm guessing this means there are 3 new guis that aren't being tested? -Mike - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777
RE: Are we ready for a RC?
I downloaded the BSF binaries, and this did not help. There are import statements looking for bsf.Interpreter that don't seem to exist. Also, are we keeping HTMLParser source files in JMeter's CVS or not? Is it necessary? I'm not a big fan of Maven, but maybe we need it for JMeter. Alternatively, maybe we could put in an Ant target that would go and automatically fetch missing jars? -Mike On 4 Feb 2004 at 15:07, BAZLEY, Sebastian wrote: You might also want bsf.jar from Jakarta BSF http://jakarta.apache.org/bsf/index.html. I guess this info needs to be added to the JMeter docs somewhere. S. -Original Message- From: peter lin [mailto:[EMAIL PROTECTED] Sent: 04 February 2004 14:58 To: JMeter Developers List Subject: RE: Are we ready for a RC? these are the ones I am aware of. mail.jar, activation.jar, bsh.jar feels like I'm missing one. peter [EMAIL PROTECTED] wrote: If I'm doing the build, I assume I should have all the optional libraries, so maybe I need a rundown on what I need. I have the mail jars. What else do I need and where do I get them? -Mike On 4 Feb 2004 at 11:48, BAZLEY, Sebastian wrote: -Original Message- From: BAZLEY, Sebastian Sent: 04 February 2004 10:49 To: 'JMeter Developers List' Subject: RE: Are we ready for a RC? I made most of the recent changes to unit tests to check that items are being created, but I don't recall checking anything for a count of 0, just a few checks that look for 0. Just realised - I did code tests to check if there were any entries in component_reference.xml (or functions.xml) that did not seem to have any corresponding test element or function. So the error you saw means that there were 3 entries in component_reference that did not appear in the test elements. These could well be due to optional libraries such as BeanShell and BSF. S. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: 03 February 2004 20:36 To: JMeter Developers List Subject: Re: Are we ready for a RC? [...] I tried to run the unit tests, and got an error - checkGuiSet found 3 gui's where it expected 0. This is all new code to me, but I'm guessing this means there are 3 new guis that aren't being tested? -Mike - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Are we ready for a RC?
That's why we'd use Ant to fetch them rather than put them in CVS. We can't distribute the jars, but to do a dist, JMeter should come fully compiled against these optional jars (and so I need them). Also, an Ant fetch target would be really nice for users - want all the optional abilities? Run the target to get them. Wouldn't work for the mail api's, but would be great for anything under non-compatible free licenses. -Mike On 4 Feb 2004 at 13:15, peter lin wrote: GPL license issues remember :) peter [EMAIL PROTECTED] wrote: I downloaded the BSF binaries, and this did not help. There are import statements looking for bsf.Interpreter that don't seem to exist. Also, are we keeping HTMLParser source files in JMeter's CVS or not? Is it necessary? I'm not a big fan of Maven, but maybe we need it for JMeter. Alternatively, maybe we could put in an Ant target that would go and automatically fetch missing jars? -Mike On 4 Feb 2004 at 15:07, BAZLEY, Sebastian wrote: You might also want bsf.jar from Jakarta BSF http://jakarta.apache.org/bsf/index.html. I guess this info needs to be added to the JMeter docs somewhere. S. -Original Message- From: peter lin [mailto:[EMAIL PROTECTED] Sent: 04 February 2004 14:58 To: JMeter Developers List Subject: RE: Are we ready for a RC? these are the ones I am aware of. mail.jar, activation.jar, bsh.jar feels like I'm missing one. peter [EMAIL PROTECTED] wrote: If I'm doing the build, I assume I should have all the optional libraries, so maybe I need a rundown on what I need. I have the mail jars. What else do I need and where do I get them? -Mike On 4 Feb 2004 at 11:48, BAZLEY, Sebastian wrote: -Original Message- From: BAZLEY, Sebastian Sent: 04 February 2004 10:49 To: 'JMeter Developers List' Subject: RE: Are we ready for a RC? I made most of the recent changes to unit tests to check that items are being created, but I don't recall checking anything for a count of 0, just a few checks that look for 0. Just realised - I did code tests to check if there were any entries in component_reference.xml (or functions.xml) that did not seem to have any corresponding test element or function. So the error you saw means that there were 3 entries in component_reference that did not appear in the test elements. These could well be due to optional libraries such as BeanShell and BSF. S. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: 03 February 2004 20:36 To: JMeter Developers List Subject: Re: Are we ready for a RC? [...] I tried to run the unit tests, and got an error - checkGuiSet found 3 gui's where it expected 0. This is all new code to me, but I'm guessing this means there are 3 new guis that aren't being tested? -Mike - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Are we ready for a RC?
I'll make a 2.0 branch if you're ready and then do a build. You guys have done great, btw. I've not been active, but I've still been watching. I tried to run the unit tests, and got an error - checkGuiSet found 3 gui's where it expected 0. This is all new code to me, but I'm guessing this means there are 3 new guis that aren't being tested? -Mike On 3 Feb 2004 at 12:04, peter lin wrote: what do you think sebastian? peter lin Jordi Salvat i Alabart [EMAIL PROTECTED] wrote: I have no objections. There's a ton outstanding bugs, but none of them is regressions -- and there's several tons of fixed ones since 1.9.1, so yes, I think we should go for a RC as soon as possible. -- Salut, Jordi. En/na peter lin ha escrit: I'm almost done setting up roller weblog on my server for load testing purposes. Are we ready to make a release candidate? Once we do, I'll make a test plan that posts messages to the blog. peter lin - Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] - Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: testing latest snap shot/release candidate
1.9.2 wouldn't be appropriate for the general naming scheme JMeter's been using and would give people the wrong information about this release. 1.10 and 2.0 seem like the reasonable possibilities to me, but if we go 1.10, then where does that stop? If we do that, then we'll have to have some justification in the future for ever going to 2.0. Whereas now, the reason for 2.0 is obvious - it's what comes after 1.9. I see no reason to fear it. -Mike On 24 Jan 2004 at 23:58, Jordi Salvat i Alabart wrote: I'd rather name this one 1.9.2... 1.10 at most. What do others think? En/na [EMAIL PROTECTED] ha escrit: I'd be happy to do this for the team. I suggest that once you're ready to go, I'll make a release branch (call it 'rel- 2-0) and then build the dist from there. From there, bug fixes should be made in the new branch, and new development can go on in the main branch. I'd be happy to do periodic merges to make sure bugs move from the release to the main branch up until some point when we decide jmeter 2.0.x is done. If anyone has suggestions or a better plan, speak up! Just buzz me when you think you're ready to go. -Mike On 23 Jan 2004 at 16:14, Jordi Salvat i Alabart wrote: I've been using JMeter a lot recently and, except for some quirks with TestBeans I'm working on (not yet on CVS), it is far better than 1.9.1. I suggest each of us does a walk through bugzilla, try to fix any relatively easy bugs we find, and we create a RC real soon now. Who has the time to be release manager this time? Michael, can you do this for us, please? -- Salut, Jordi. En/na peter lin ha escrit: when we're ready to package a release candidate, I will run a 48 hour test on my LAN at home. my plan is to get the latest stable release of tomcat 5 and try to simulate two days of traffic. Hopefully there won't be any bugs :) I'll probably post the results on tomcat-user and jmeter-user mailing list. peter lin - Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: GenericController-LoopController bug
Ok, so here's the thing. If you have a controller that does nothing but return null, a loop controller is going to continue searching for a sub-controller with a sampler to return. If you're controller returned a sampler, then null, then a sampler, then null, etc (like a normal controller does), then this problem doesn't show up. It's when you have a sampler that insists on never providing a sampler, yet also insists it's got samplers to provide (ie, it's not done). So, here you are trying to make a triggered controller that could reasonably have no samplers to provide, but insists that it might at some point in the future. It's sort of a new situation not anticipated by the current code. You could create a NullSampler that returns a dummy ResponseData object to get around this, though that's a substandard solution since your listeners will get a lot of these things. But, I'm not sure I see a better solution until JMeter learns about this new possibility. -Mike On 24 Jan 2004 at 16:00, Jerry Pulley wrote: I recently encountered some problems with the design of a controller, and discussed them with M. Stover in the TriggeredController design thread on jmeter-user. Here's what Mike said about GenericController.next(): The semantics of the next() method are supposed to be like so: returns Sampler - sampler is intended to be executed. returns null, isDone() = false: This should indicate the controller has finished a full round of iteration, and the test should move on to the next controller. If the test runs another iteration, the controller should be ready for everything to begin again. This is why the nextIsNull() method calls reinitialize(). returns null, isDone() = true; The controller has finished entirely, and should not be run again. Indeed, it is generally dropped from the test entirely. The current version of JMeter fails to behave in the manner described in the second case. If a subclass of GenericController is an immediate child of a LoopController (e.g. the one in the ThreadGroup) and its next() method returns null without setting done, an infinite chain of recursive calls results. The attached test case demonstrates the problem. It's interesting that the loops property of some LoopController in the tree needs to be set to -1 for this problem to surface. (That's what ThreadGroupGui does when creating the loop controller for a thread group.) What's even more interesting is that if the test tree contains an explicit loop controller with loops set to a positive value, and that loop controller contains the controller that returns null, then it still fails. These observations might be of interest to someone who knows JMeter internals. In the absence of any Javadoc I can't really determine a firm definition of the loops property, so I'm leaving this to the experts. jp package net.jpulley.jmeter19.controller; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.apache.jmeter.control.GenericController; import org.apache.jmeter.control.LoopController; import org.apache.jmeter.samplers.Sampler; import org.apache.jmeter.threads.ThreadGroup; import org.apache.log.Hierarchy; import org.apache.log.Priority; public class LoopControllerTest2 extends TestCase { public LoopControllerTest2(String name) { super(name); } public static Test suite() { return new TestSuite(LoopControllerTest2.class); } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } protected void setUp() { Hierarchy.getDefaultHierarchy() .setDefaultPriority(Priority.NONE); } public void testInThreadGroup() throws Exception { //set up a ThreadGroup like ThreadGroupGui does ThreadGroup threadGroup = new ThreadGroup(); LoopController threadGroupLoopCtlr = new LoopController(); threadGroupLoopCtlr.setLoops(-1); threadGroup.setSamplerController(threadGroupLoopCtlr); NullController nullCtlr = new NullController(false, 0); threadGroup.addTestElement(nullCtlr); //test try { Sampler smplr = threadGroup.next(); } catch (java.lang.StackOverflowError err) { fail(Stack overflow); } } public void testAsSubcontroller() throws Exception { //set up a ThreadGroup like ThreadGroupGui does ThreadGroup threadGroup = new ThreadGroup(); LoopController threadGroupLoopCtlr = new LoopController(); threadGroupLoopCtlr.setLoops(-1); threadGroup.setSamplerController(threadGroupLoopCtlr); //add a loop controller to the thread group LoopController loopCtlr = new LoopController(); loopCtlr.setLoops(10);
Re: testing latest snap shot/release candidate
I'd be happy to do this for the team. I suggest that once you're ready to go, I'll make a release branch (call it 'rel- 2-0) and then build the dist from there. From there, bug fixes should be made in the new branch, and new development can go on in the main branch. I'd be happy to do periodic merges to make sure bugs move from the release to the main branch up until some point when we decide jmeter 2.0.x is done. If anyone has suggestions or a better plan, speak up! Just buzz me when you think you're ready to go. -Mike On 23 Jan 2004 at 16:14, Jordi Salvat i Alabart wrote: I've been using JMeter a lot recently and, except for some quirks with TestBeans I'm working on (not yet on CVS), it is far better than 1.9.1. I suggest each of us does a walk through bugzilla, try to fix any relatively easy bugs we find, and we create a RC real soon now. Who has the time to be release manager this time? Michael, can you do this for us, please? -- Salut, Jordi. En/na peter lin ha escrit: when we're ready to package a release candidate, I will run a 48 hour test on my LAN at home. my plan is to get the latest stable release of tomcat 5 and try to simulate two days of traffic. Hopefully there won't be any bugs :) I'll probably post the results on tomcat-user and jmeter-user mailing list. peter lin - Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: TriggeredController design
On 20 Jan 2004 at 2:13, Jerry Pulley wrote: Hi, Mike. First, the infinite recursion issue: I've pasted in a simple controller and GUI that demonstrates the issue with next() returning null. If it is a bug in JMeter 1.9.1, the reason none of the component unit tests found it is probably that it requires the cooperation of the loop controller in the ThreadGroup. The component unit tests seem to focus on their components outside the framework. I don't know enough about JMeter to write a unit test that exercises the entire framework like that, so I just made a demo instead. Set up a ThreadGroup with the default properties and add a NullController. It'll dump the call stack at the 5th iteration; that should be enough to see what's happening before it blows the stack. When I traced it in a debugger the problem seemed to be in the LoopController - GenericController interaction. This should probably be looked at with a currently active developer (not me currently, unfortunately). So I'm copying this to the developer list as well. At any rate, once I saw what was going on I was able to deal with that issue by hacking a NullSampler with a trivial sample(). That still left the question of why my triggered controller behaved as it did. If it had N subelements, all N executed the first time it was triggered, but only N-1 executed on all subsequent triggerings. My unit tests exercised it as far as I understand the various JMeter contracts, but I was missing the reinitialization behavior. Your comment about reInitialize() led me to try calling the GenericController version of it, and that solved the issue. Thank you very much. Having to return the NullSampler instead of null is keeping GenericController from reInitialize()ing, so for the moment I'm calling it directly. I used to understand JMeter ok, but things have changed since 1.7. Are there any good writeups on the GenericController and ThreadGroup algorithms? Not really. The intent was to write the GenericController in such a way that each method used was self-explanatory and easily overridden to provide modified behavior. After many total rewrites of this controller, it's apparent the effort is still a failure and probably the only recourse is to sit down and write out documentation that fully explains the necessary behavior of a JMeter Controller. I doubt any developers are going to jump up to do this, however :-) It really is the type of thing a newcomer might do to get initially involved in the project, if they were interested. -Mike thnx, jp P.S. Sorry for the long post. I get so excited when things start working. /* NullController */ package net.jpulley.jmeter19.controller; import org.apache.jmeter.control.GenericController; import org.apache.jmeter.samplers.Sampler; public class NullController extends GenericController { private int callCount; public Sampler next() { if (++callCount == 5) { Thread.dumpStack(); } return null; } } /* NullControllerGui */ package net.jpulley.jmeter19.controller; import java.awt.BorderLayout; import org.apache.jmeter.control.gui.AbstractControllerGui; import org.apache.jmeter.testelement.TestElement; public class NullControllerGui extends AbstractControllerGui { public NullControllerGui() { init(); } public String getStaticLabel() { return Null Controller; } public TestElement createTestElement() { NullController ctlr = new NullController(); configureTestElement(ctlr); return ctlr; } public void modifyTestElement(TestElement element) { configureTestElement(element); } private void init() { setLayout( new BorderLayout() ); setBorder( makeBorder() ); add( makeTitlePanel(), BorderLayout.NORTH ); } } /*end demo*/ Heh, might as well put in the relevant parts of the stack trace: java.lang.Exception: Stack trace at java.lang.Thread.dumpStack(Thread.java:1064) at net.jpulley.jmeter19.controller.NullController.next(NullController.java:11) org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:190) org.apache.jmeter.control.GenericController.next(GenericController.java:151) org.apache.jmeter.control.LoopController.nextIsNull(LoopController.java:169) org.apache.jmeter.control.GenericController.next(GenericController.java:141) ... org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:194) org.apache.jmeter.control.GenericController.next(GenericController.java:151) org.apache.jmeter.control.LoopController.nextIsNull(LoopController.java:169) org.apache.jmeter.control.GenericController.next(GenericController.java:141) org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:194)
Re: Unit tests totally broken
The AccessLogSamplerGui holds a reference to an internal HTTPSampler, and it stores values in it as well as in the individual GUI elements. Because of the interaction of modifyTestElement, createTestElement, and configure(TestElement), this double storing of values causes problems. The easiest way to fix this is to remove the HTTPSampler member, and force these three methods to store and retrieve all values from the individual gui components. Also, createTestElement should just call modifyTestElement after it creates an HTTPSampler. In any case, this particular unit test failure is not a serious one. -Mike On 3 Dec 2003 at 14:01, Jordi Salvat i Alabart wrote: Just to clarify and factor out possible platform differences: are you seeing this unit test failure? [java] 1) testGUIComponents(org.apache.jmeter.junit.JMeterTest)junit.framework.Co mparisonFailure: GUI-CLASS: Failed on org.apache.jmeter.protocol.http.control.gui.AccessLogSamplerGui expected: but was:Shouldn't be here [java] at org.apache.jmeter.junit.JMeterTest.testGUIComponents(JMeterTest.java:75) [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja va:39) [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso rImpl.java:25) [java] at org.apache.jorphan.test.AllTests.main(AllTests.java:183) I know it's not the one you're researching for Gump, but It's been there for a looong while. I'll work on it. -- Salut, Jordi. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Changes to ProxyServerTestPlan.jmx when it is saved in 1.9.1
Wow, that sounds like a lot of work. The ordering of properties is pretty irrelevant. The change from LinkedList to HashSet in ProxyControl was to prevent duplicates in the exclude and include lists, which became a problem for me in certain code that populated those lists automatically. -Mike On 6 Nov 2003 at 14:42, BAZLEY, Sebastian wrote: It certainly is a pain comparing JMX files ... so I wrote a simple program using JDom to sort attributes within elements, and to sort collection and property elements - but not node or testelement elements. [Even if this sorting would affect the running of a test, any differences it finds are real differences.] The results for ProxyServerTestPlan.jmx are shown below. I've removed org.apache.jmeter. and space=preserve from the output to make the differences clearer. ++ New properties: property name=ThreadGroup.duration propType=testelement.property.StringProperty property name=ThreadGroup.end_time propType=testelement.property.LongProperty property name=ThreadGroup.on_sample_error propType=testelement.property.StringProperty property name=ThreadGroup.scheduler propType=testelement.property.BooleanProperty property name=ThreadGroup.start_time propType=testelement.property.LongProperty ++ Change of property type: property name=LoopController.continue_forever propType=testelement.property.StringProperty --- property name=LoopController.continue_forever propType=testelement.property.BooleanProperty property name=TestElement.enabled propType=testelement.property.BooleanProperty ++ Change of class type: collection name=ProxyControlGui.exclude_list class=java.util.LinkedList propType=testelement.property.CollectionProperty collection name=ProxyControlGui.include_list class=java.util.LinkedList propType=testelement.property.CollectionProperty --- collection name=ProxyControlGui.exclude_list class=java.util.HashSet propType=testelement.property.CollectionProperty collection name=ProxyControlGui.include_list class=java.util.HashSet propType=testelement.property.CollectionProperty ++ Another new property: property name=ProxyControlGui.capture_http_headers propType=testelement.property.BooleanProperty I'm not sure about the change of Collection class, but otherwise the other changes look harmless enough - unless anyone knows otherwise? There were some element ordering differences as well, which the program hides. I assumed that the placement of property and collection elements within a parent element was irrelevant, so long as the ordering of nodes and testelements was maintained. If this is true, I can perhaps look at incorporating the code into the JUnit test. I can release the JDom utility as a stand-alone tool anyway - I'm just not quite sure where to put it! S. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Better test manipulation capabilities (was Test Management?)
So, consider this thread moved to development. I'd like to see JMeter's GUI enhanced to improve editing of whole test plans. To that end, I've made a listener that gets added to all GUI components and sub-components that appear in JMeter, with the intention of setting up a system for making context-sensitive right-click popup menus. The idea is twofold: 1. Allow menu-driven complex editing on any field in JMeter's gui. This would allow one to write code that reads the contents of the current text box and let the user, say, search the testplan for other occurrences of that string. Or initiate search and replace functions using those contents. Or anything else. 2. More importantly, this system will provide a way to plugin new menu actions as easily as new functions can be plugged in. Anyone who envisions a new way to make edits to a test plan can write a component that populates these context menus to offer new capabilities to the user. So far, i've written the code that adds the listener to all parts of JMeter. I have to now write the code that creates the popup and finds other components and gives them a chance to add items to that popup. -Mike On 6 Nov 2003 at 23:12, Jordi Salvat i Alabart wrote: No, there's nothing out there that I know of. It would be nice to have the necessary tools. Your solution would be OK... for you. I would rather favour a Java solution to make it as portable as JMeter is. Feel free to move this discussion to jmeter-dev -- it's probably a better place for it. Salut, Jordi. Ryo Sode wrote: How do you guys manage JMeter test files or develop them outside JMeter if anyone's doing it? I'm using JMeter on OS X for functional testing (thus have various query parameters and response assertions to manage) and it has been a painful experience to manage 1000+ test cases using JMeter UI. For example, I can not seem to paste any text into it or can not change all of test cases specific parameters on the fly at the same time. I am wondering if there's any application that you guys use that runs on OS X or Windows that manages JMeter test suites. If there's nothing out there, I'm thinking about developing a FileMaker Database from which I can generate .jmx file via XML export Ryo - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Gump multiple test errors (and 1 failure)
The gui error is a problem in the new AccessLogSampler not doing things quite the JMeter way. I'm currently making a companion AccessLogController, and I will fix the AccessLogSampler when I commit it. JMX attribute order may have been affected by the recent upgrade of Avalon jar file. When this stuff changes, I usually resave the files (After verfifying that they are indeed correct). It's a pain, but it works. And those tests, while being pretty fragile, have found real problems too, so I'd rather not remove them entirely. -Mike On 3 Nov 2003 at 13:52, BAZLEY, Sebastian wrote: There are quite a few test errors reported by the Gump builds, which I would like to resolve if possible. The errors seem to be something to do with graphics/awt/Swing - does anyone know what the problem is? These errors did not occur when Gump was running on the original system (cvs.apache.org) - so I may need to take this up with infrastructure. == There is 1 test failure, which seems to be due to a change in the way that JMX files are generated - it looks as though the order of attributes has changed since the test JMX was originally generated. Again, does anyone know why this is? Just curious. S. - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Threads sometimes get stuck in startup
If I remember correctly, the pairing structure allows JMeter to remember which elements have been compiled already and which haven't. I can't remember why that was needed, but it was, and removing it will surely break some things. -Mike On 20 Oct 2003 at 13:26, BAZLEY, Sebastian wrote: Oops! I removed way too much: pairing is not used for testing, but it does seem to be write-only. Perhaps it is being used to keep references alive? Why is it static? I'm now unsure as to what any of the apparently unused items are for, so I've put it all back, but made the accesses to pairing synchronized. This will hopefully help. S. -Original Message- From: BAZLEY, Sebastian Sent: 20 October 2003 10:32 To: 'JMeter Developers List' Subject: RE: Threads sometimes get stuck in startup To answer my own question: I've now had a chance to look more closely at the TestCompiler code. It appears that the pairing Set is purely used for testing, and the Set is write-only! So I've commented out the code in CVS. Hopefully this will fix the hangs, but it will take some while to find out, as it did not happen often. S. -Original Message- From: BAZLEY, Sebastian Sent: 18 October 2003 12:44 To: JMeter Developers List Subject: Threads sometimes get stuck in startup We're using JMeter in batch mode to test a private protocol. Mostly it runs very well, but two of the test-runs appeared to hang. It turned out that one or two of the test threads failed to complete - in fact they seem to have got stuck in startup. I've got a Thread Dump for the second failure, but I'm not familiar with the meaning of the thread dump, I can only guess. It looks like the problem is in java.util.HashMap or HashSet, which are not synchronized. Now TestCompiler.subtractNode() references: private static Set pairing = new HashSet(); I don't know what the pairing Set is used for, but it looks like it _may_ be the cause of the hang. Can it be made an instance variable? Indeed, is it needed? Sebastian Part of the thread dump; the other test thread looked much the same. TEST1-35 thread 0x152C9570 Stack trace: [...] pc 0x1e839358 sp 0x303efb0 -1: java/util/HashMap.containsKey(Ljava/lang/Object;)Z pc 0x1e907da4 sp 0x303eff05: java/util/HashSet.contains(Ljava/lang/Object;)Z pc 0x1e907794 sp 0x303f010 107: org/apache/jmeter/threads/TestCompiler.subtractNode()V pc 0x1e8c25e8 sp 0x303f070 69: org/apache/jorphan/collections/HashTree.traverseInto(Lorg/apache/ jorphan/col lections/HashTreeTraverser;)V pc 0x1e8c2578 sp 0x303f0c0 38: org/apache/jorphan/collections/HashTree.traverseInto(Lorg/apache/ jorphan/col lections/HashTreeTraverser;)V pc 0x1e8c2578 sp 0x303f110 38: org/apache/jorphan/collections/HashTree.traverseInto(Lorg/apache/ jorphan/col lections/HashTreeTraverser;)V pc 0x1e8c2418 sp 0x303f160 38: org/apache/jorphan/collections/HashTree.traverse(Lorg/apache/jorp han/collect ions/HashTreeTraverser;)V pc 0x1e9035d0 sp 0x303f1b0 37: org/apache/jmeter/threads/JMeterThread.run()V pc 0x1e90b320 sp 0x303f200 11: java/lang/Thread.run()V - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog TCLogParser.java
mstover12003/10/17 08:14:44 Modified:src/core/org/apache/jmeter/gui/action Copy.java Cut.java DragNDrop.java src/core/org/apache/jmeter/gui/tree JMeterTreeListener.java src/core/org/apache/jmeter/util JMeterVersion.java src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog TCLogParser.java Log: Drag n Drop works on multiple selections Revision ChangesPath 1.6 +1 -4 jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Copy.java Index: Copy.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Copy.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- Copy.java 5 Oct 2003 01:05:31 - 1.5 +++ Copy.java 17 Oct 2003 15:14:44 - 1.6 @@ -39,9 +39,6 @@ public void doAction(ActionEvent e) { -//NOTUSED String action = e.getActionCommand(); -JMeterTreeNode draggedNode = //NOTUSED - can it be deleted? -GuiPackage.getInstance().getTreeListener().getDraggedNode(); JMeterTreeListener treeListener = GuiPackage.getInstance().getTreeListener(); setCopiedNode((JMeterTreeNode) treeListener.getCurrentNode()); 1.4 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Cut.java Index: Cut.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Cut.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Cut.java 5 Oct 2003 01:19:34 - 1.3 +++ Cut.java 17 Oct 2003 15:14:44 - 1.4 @@ -34,12 +34,12 @@ public void doAction(ActionEvent e) { Copy.setCopiedNode( -GuiPackage.getInstance().getTreeListener().getDraggedNode()); +GuiPackage.getInstance().getTreeListener().getCurrentNode()); JMeterTreeListener treeListener = GuiPackage.getInstance().getTreeListener(); JMeterTreeNode currentNode = treeListener.getCurrentNode();//NOTUSED GuiPackage.getInstance().getTreeModel().removeNodeFromParent( -GuiPackage.getInstance().getTreeListener().getDraggedNode()); +GuiPackage.getInstance().getTreeListener().getCurrentNode()); GuiPackage.getInstance().getMainFrame().repaint(); } } 1.3 +40 -25 jakarta-jmeter/src/core/org/apache/jmeter/gui/action/DragNDrop.java Index: DragNDrop.java === RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/DragNDrop.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- DragNDrop.java27 Jun 2003 19:12:54 - 1.2 +++ DragNDrop.java17 Oct 2003 15:14:44 - 1.3 @@ -30,41 +30,56 @@ public void doAction(ActionEvent e) { String action = e.getActionCommand(); -JMeterTreeNode draggedNode = -GuiPackage.getInstance().getTreeListener().getDraggedNode(); -JMeterTreeListener treeListener = -GuiPackage.getInstance().getTreeListener(); +GuiPackage guiPackage = GuiPackage.getInstance(); +JMeterTreeNode[] draggedNodes = guiPackage.getTreeListener().getDraggedNodes(); +JMeterTreeListener treeListener = guiPackage.getTreeListener(); JMeterTreeNode currentNode = treeListener.getCurrentNode(); -GuiPackage.getInstance().getTreeModel().removeNodeFromParent( -GuiPackage.getInstance().getTreeListener().getDraggedNode()); +removeNodesFromParents(draggedNodes); if (ADD.equals(action)) { -GuiPackage.getInstance().getTreeModel().insertNodeInto( -draggedNode, -currentNode, -currentNode.getChildCount()); +for (int i = 0; i draggedNodes.length; i++) +{ +GuiPackage.getInstance().getTreeModel().insertNodeInto( +draggedNodes[i], +currentNode, +currentNode.getChildCount()); +} } else if (INSERT_BEFORE.equals(action)) { -JMeterTreeNode parentNode = -(JMeterTreeNode) currentNode.getParent(); -int index = parentNode.getIndex(currentNode); -GuiPackage.getInstance().getTreeModel().insertNodeInto( -draggedNode, -parentNode, -index); +for (int i = 0; i draggedNodes.length; i++) +{ +JMeterTreeNode parentNode
Re: TestListener events
TestEnded and TestStarted mean the test ended or started, not a particular thread ended or started. There is a JMeterThreadMonitor interface you might be able to reuse. -Mike On 14 Oct 2003 at 16:32, BAZLEY, Sebastian wrote: The TestListener interface has 3 methods (effectively): testStarted testEnded testIterationStart The testIterationStart() method is called for each sample in each thread, as I expected. However, the testStarted() and testEnded() methods are only called once for each Thread Group, which seems to me to be counter-intuitive - and not as useful as it could be. If they were called for each thread, then this would make it very easy to create and destroy resources that are needed on a per-thread basis. Would there be any objections to changing this ? (assuming I find the time - and can find how to fix up any existing usage) Or perhaps it would be better to add a new Interface and/or update the existing one? -- Sebastian Bazley - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: JMeter web-site questions
I would like to update the website in a way other than 'cvs update'. Keeping the docs in the cvs really slows down cvs commands. So, I'm looking forward to Sebastian's changes. -Mike On 9 Oct 2003 at 13:10, BAZLEY, Sebastian wrote: Thanks, very clear. I had hoped it would be possible to set things up so that local copies of the documentation used a local image and web copies used the generic logo, but as Mike pointed out, that isn't feasible. A local copy of the jakarta logo solves that with very few changes, as you have helpfully shown. I'll probably do that shortly, and then work on the tarball and/or ant script strategy. S. -Original Message- From: Tetsuya Kitahata [mailto:[EMAIL PROTECTED] Sent: 09 October 2003 10:10 To: JMeter Developers List Subject: Re: JMeter web-site questions -- Tetsuya. ([EMAIL PROTECTED]) On Wed, 08 Oct 2003 11:24:04 +0100 (Subject: JMeter web-site questions) BAZLEY, Sebastian [EMAIL PROTECTED] wrote: Just wondering how the JMeter web-site gets updated? What you wanted would be accomplished by these below: 1. copy the image of jakarta.apache.org (Jakarta Logo: http://jakarta.apache.org/images/jakarta-logo.gif) to JMETER_CHECKOUT_DIR/xdocs/images/ (new directory) := JMETER_CHECKOUT_DIR/xdocs/images/jakarta-logo.gif 2. Apply this patch (*not* unified diff style.. sorry) #(FROM HERE) Index: build.xml == = RCS file: /home/cvs/jakarta-jmeter/build.xml,v retrieving revision 1.115 diff -r1.115 build.xml 471a472,478 copy todir=${docs.dest}/images filtering=no fileset dir=${docs.src}/images include name=**/*.gif/ include name=**/*.jpeg/ include name=**/*.jpg/ /fileset /copy 476a484,490 copy todir=${docs.dest}/images filtering=no fileset dir=${docs.src}/images include name=**/*.gif/ include name=**/*.jpeg/ include name=**/*.jpg/ /fileset /copy #( E N D ) #(FROM HERE) Index: site.vsl == = RCS file: /home/cvs/jakarta-jmeter/xdocs/stylesheets/site.vsl,v retrieving revision 1.18 diff -r1.18 site.vsl 358c358 a href=http://jakarta.apache.org;img src=http://jakarta.apache.org/images/jakarta-logo.gif; border=0//a --- a href=http://jakarta.apache.org/;img src=./images/jakarta-logo.gif border=0//a 370c370 a href=http://jakarta.apache.org;img src=http://jakarta.apache.org/images/jakarta-logo.gif; align=left border=0//a --- a href=http://jakarta.apache.org/;img src=./images/jakarta-logo.gif align=left border=0//a 424c424 Copyright #169; 1999-2001, Apache Software Foundation --- Copyright #169; 1999-2003, Apache Software Foundation Index: project.xml == = RCS file: /home/cvs/jakarta- jmeter/xdocs/stylesheets/project.xml,v retrieving revision 1.21 diff -r1.21 project.xml 2c2 project name=Velocity --- project name=JMeter 19c19,20 item name=Download Releases href=http://jakarta.apache.org/builds/jakarta-jmeter/release/ --- item name=Download Binary href=http://jakarta.apache.org/site/binindex.cgi/ item name=Download Source href=http://jakarta.apache.org/site/sourceindex.cgi/ 21c22 item name=Download Latest Stable Release href=http://jakarta.apache.org/builds/jakarta- jmeter/release/v1.9/jakarta-j meter-1.9.1.zip/ --- item name=Download Latest Stable Release href=http://www.apache.org/dyn/closer.cgi/jakarta/jmeter/jakarta- jmeter-cur rent-bin.zip/ 36c37 item name=Mailing Lists href=/site/mail.html/ --- item name=Mailing Lists href=/site/mail2.html#jmeter/ #( E N D ) 3. AT JMETER_CHECKOUT_DIR, run ant docs 4. Confirm that the new documents have been created at JMETER_CHECKOUT_DIR/docs/ directory 5. CVS Commit! 6. SSH to Minotaur (www.apache.org) and cd to /www/jakarta.apache.org/jmeter. Do cvs update there. 7. DONE. Congratulations Hope these might help Regards, - Tetsuya Kitahata -- Terra-International, Inc. E-mail: [EMAIL PROTECTED] http://www.terra-intl.com/ Apache Software
Re: Question about results
I would think the possibilities are either it's being bound by the database or by the bandwidth somewhere. The JMeter client could be bandwidth bound without being cpu bound at all, so it would show up as a struggling client computer. -Mike On 1 Oct 2003 at 17:54, Jean-Sebastien Morisset wrote: Jordi, Is there any reason why the multi-threading wouldn't work? I'm using the J2SE RPM from java.sun.com: # java -version java version 1.4.2_01 Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_01-b06) Java HotSpot(TM) Client VM (build 1.4.2_01-b06, mixed mode) # uname -a Linux X 2.4.18-14smp #1 SMP Wed Sep 4 11:55:37 EDT 2002 i686 athlon i386 GNU/Linux Adding more than 5 threads does not seem to impact the web server -- CPU at ~ 38%, but the database server in the back keeps feeling it: 75% at 5 threads, 87% at 10 threads, 89% at 15 threads, 90% at 20, 94% at 30, and 95% at 40. Any ideas? :-) BTW, I posted my test plan in the jmeter-user list. It's really very simple. Just one listener and no logging. Thanks for your reply! js. On Wed, Oct 01, 2003 at 11:34:07PM +0200, Jordi Salvat i Alabart wrote: Jean-Sebastien Morisset wrote: BTW, how can you tell it was max'ed at 1x20? I guess the answer is I can't. I was too quick at this. It rather looks like wherever the bottleneck is, you're hitting it before 5 threads: after that, looks like adding more threads does not really generate more load. The reason why I was saying that the bottleneck was in the JMeter machine is because we're doubling the load by doubling the machine... what else are you doubling by doing this? If the JMeter machines were connected 10Mbps to a 100Mbps network, certainly the bandwidth... I can't really think of anything else... Jordi. - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Jean-Sebastien Morisset, Sr. UNIX Administrator [EMAIL PROTECTED] Personal Home Page http://jsmoriss.mvlan.net/ JS Melanie's Homebrewery http://brewery.mvlan.net/ Underwater and Travel Photographs http://www.mvpix.com/ - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: HTML Value Extractor
The HTML Link Parser does a lot of this already, but it could use a good one-over to clean it up. Currently, it is a bit difficult to use correctly. -Mike On 2 Oct 2003 at 13:32, Joseph Fifield wrote: Hello, I need to pull a value out of an http response to use in the next request. Specifically, I need to get a value from an html form element from a response. Now, I already got this working using the Regular Expression Extractor, and it works great. However, I need a solution that's a bit easier for a non-programmer to use (and not have to deal with regex). I started working on what I'm currently calling HTML Value Extractor. It is a post processor implementation that simply pulls the value from a form element (as specified by the test element properties) and puts it into a variable. The test element properties include the variable name, the type of form element (right now, just input and select), the name of the form element, and for select elements, the text of the option element to select. How does this sound? Is there already a simpler way that I've just missed entirely? I'm also curious if there would be any interest in adding this new test element to JMeter once I've finished it? Thanks! Joe - To unsubscribe, e-mail: jmeter-dev- [EMAIL PROTECTED] For additional commands, e-mail: jmeter-dev- [EMAIL PROTECTED] -- Michael Stover [EMAIL PROTECTED] Yahoo IM: mstover_ya ICQ: 152975688 AIM: mstover777 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]