Author: pmouawad
Date: Thu Oct 13 20:12:23 2011
New Revision: 1183065

URL: http://svn.apache.org/viewvc?rev=1183065&view=rev
Log:
Bug 52019 - Add menu option to Start a test ignoring Pause Timers

Added:
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClonerNoTimer.java   
(with props)
Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeCloner.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Start.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_es.properties
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pt_BR.properties
    jakarta/jmeter/trunk/xdocs/changes.xml

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeCloner.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeCloner.java?rev=1183065&r1=1183064&r2=1183065&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeCloner.java 
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeCloner.java Thu 
Oct 13 20:12:23 2011
@@ -56,7 +56,6 @@ public class TreeCloner implements HashT
     }
 
     public void addNode(Object node, HashTree subTree) {
-        
         if ( (node instanceof TestElement) // Check can cast for clone
            // Don't clone NoThreadClone unless honourNoThreadClone == false
           && (!honourNoThreadClone || !(node instanceof NoThreadClone))
@@ -66,6 +65,14 @@ public class TreeCloner implements HashT
         } else {
             newTree.add(objects, node);
         }
+        addLast(node);
+    }
+    
+    /**
+     * add node to objects LinkedList
+     * @param node Object
+     */
+    protected final void addLast(Object node) {
         objects.addLast(node);
     }
 

Added: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClonerNoTimer.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClonerNoTimer.java?rev=1183065&view=auto
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClonerNoTimer.java 
(added)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClonerNoTimer.java 
Thu Oct 13 20:12:23 2011
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.engine;
+
+import org.apache.jmeter.timers.Timer;
+import org.apache.jorphan.collections.HashTree;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
+
+/**
+ * Clones the test tree,  skipping test elements that implement {@link Timer} 
by default.
+ */
+public class TreeClonerNoTimer extends TreeCloner{
+    private Logger logger = LoggingManager.getLoggerForClass();
+    
+    /**
+     * {@inheritDoc}
+     */
+    public TreeClonerNoTimer() {
+        super();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public TreeClonerNoTimer(boolean honourNoThreadClone) {
+        super(honourNoThreadClone);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void addNode(Object node, HashTree subTree) {
+        if(!(node instanceof Timer)) {
+            super.addNode(node, subTree);
+        } else {
+            if(logger.isDebugEnabled()) {
+                logger.debug("Ignoring timer node:"+ node);
+            }
+            addLast(node);
+        }
+    }
+}
\ No newline at end of file

Propchange: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/TreeClonerNoTimer.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java?rev=1183065&r1=1183064&r2=1183065&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java 
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java 
Thu Oct 13 20:12:23 2011
@@ -29,6 +29,7 @@ public class ActionNames {
     public static final String ABOUT            = "about"; // $NON-NLS-1$
     public static final String ACTION_SHUTDOWN  = "shutdown"; // $NON-NLS-1$
     public static final String ACTION_START     = "start"; // $NON-NLS-1$
+    public static final String ACTION_START_NO_TIMERS = "start_no_timers"; // 
$NON-NLS-1$
     public static final String ACTION_STOP      = "stop"; // $NON-NLS-1$
     public static final String ADD              = "Add"; // $NON-NLS-1$
     public static final String ADD_ALL          = "add_all"; // $NON-NLS-1$

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Start.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Start.java?rev=1183065&r1=1183064&r2=1183065&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Start.java 
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Start.java Thu 
Oct 13 20:12:23 2011
@@ -28,8 +28,10 @@ import org.apache.jmeter.JMeter;
 import org.apache.jmeter.engine.JMeterEngineException;
 import org.apache.jmeter.engine.StandardJMeterEngine;
 import org.apache.jmeter.engine.TreeCloner;
+import org.apache.jmeter.engine.TreeClonerNoTimer;
 import org.apache.jmeter.gui.GuiPackage;
 import org.apache.jmeter.testelement.TestPlan;
+import org.apache.jmeter.timers.Timer;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.collections.HashTree;
 import org.apache.jorphan.logging.LoggingManager;
@@ -42,6 +44,7 @@ public class Start extends AbstractActio
 
     static {
         commands.add(ActionNames.ACTION_START);
+        commands.add(ActionNames.ACTION_START_NO_TIMERS);
         commands.add(ActionNames.ACTION_STOP);
         commands.add(ActionNames.ACTION_SHUTDOWN);
     }
@@ -68,7 +71,10 @@ public class Start extends AbstractActio
     public void doAction(ActionEvent e) {
         if (e.getActionCommand().equals(ActionNames.ACTION_START)) {
             popupShouldSave(e);
-            startEngine();
+            startEngine(false);
+        } else if 
(e.getActionCommand().equals(ActionNames.ACTION_START_NO_TIMERS)) {
+            popupShouldSave(e);
+            startEngine(true);
         } else if (e.getActionCommand().equals(ActionNames.ACTION_STOP)) {
             if (engine != null) {
                 log.info("Stopping test");
@@ -84,15 +90,18 @@ public class Start extends AbstractActio
         }
     }
 
-    private void startEngine() {
+    /**
+     * Start JMeter engine
+     * @param noTimer ignore timers 
+     */
+    private void startEngine(boolean ignoreTimer) {
         GuiPackage gui = GuiPackage.getInstance();
         HashTree testTree = gui.getTreeModel().getTestPlan();
         JMeter.convertSubTree(testTree);
         testTree.add(testTree.getArray()[0], gui.getMainFrame());
         log.debug("test plan before cloning is running version: "
                 + ((TestPlan) testTree.getArray()[0]).isRunningVersion());
-        TreeCloner cloner = new TreeCloner(false);
-        testTree.traverse(cloner);
+        TreeCloner cloner = cloneTree(testTree, ignoreTimer);
         engine = new StandardJMeterEngine();
         engine.configure(cloner.getClonedTree());
         try {
@@ -104,4 +113,21 @@ public class Start extends AbstractActio
         log.debug("test plan after cloning and running test is running 
version: "
                 + ((TestPlan) testTree.getArray()[0]).isRunningVersion());
     }
+    
+    /**
+     * Create a Cloner that ignores {@link Timer} if removeTimers is true
+     * @param testTree {@link HashTree}
+     * @param removeTimers boolean remove timers 
+     * @return {@link TreeCloner}
+     */
+    private TreeCloner cloneTree(HashTree testTree, boolean removeTimers) {
+        TreeCloner cloner = null;
+        if(!removeTimers) {
+            cloner = new TreeCloner(false);     
+        } else {
+            cloner = new TreeClonerNoTimer(false);
+        }
+        testTree.traverse(cloner);
+        return cloner;
+    }
 }

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java?rev=1183065&r1=1183064&r2=1183065&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java 
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java 
Thu Oct 13 20:12:23 2011
@@ -81,6 +81,8 @@ public class JMeterMenuBar extends JMenu
 
     private JMenuItem run_start;
 
+    private JMenuItem run_start_no_timers;
+
     private JMenu remote_start;
 
     private JMenuItem remote_start_all;
@@ -394,6 +396,8 @@ public class JMeterMenuBar extends JMenu
 
         run_start = makeMenuItemRes("start", 'S', ActionNames.ACTION_START, 
KeyStrokes.ACTION_START); //$NON-NLS-1$
 
+        run_start_no_timers = makeMenuItemRes("start_no_timers", 
ActionNames.ACTION_START_NO_TIMERS); //$NON-NLS-1$
+        
         run_stop = makeMenuItemRes("stop", 'T', ActionNames.ACTION_STOP, 
KeyStrokes.ACTION_STOP); //$NON-NLS-1$
         run_stop.setEnabled(false);
 
@@ -405,6 +409,7 @@ public class JMeterMenuBar extends JMenu
         run_clearAll = makeMenuItemRes("clear_all", 'a', 
ActionNames.CLEAR_ALL, KeyStrokes.CLEAR_ALL); //$NON-NLS-1$
 
         runMenu.add(run_start);
+        runMenu.add(run_start_no_timers);
         if (remote_start != null) {
             runMenu.add(remote_start);
         }
@@ -543,6 +548,7 @@ public class JMeterMenuBar extends JMenu
     @Override
     public void setEnabled(boolean enable) {
         run_start.setEnabled(!enable);
+        run_start_no_timers.setEnabled(!enable);
         run_stop.setEnabled(enable);
         run_shut.setEnabled(enable);
     }

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1183065&r1=1183064&r2=1183065&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
(original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
Thu Oct 13 20:12:23 2011
@@ -869,6 +869,7 @@ ssl_pass_title=KeyStore Password
 ssl_port=SSL Port
 sslmanager=SSL Manager
 start=Start
+start_no_timers=Start no pauses
 starttime=Start Time
 stop=Stop
 stopping_test=Shutting down all test threads.  Please be patient.
@@ -998,6 +999,7 @@ view_results_response_code=Response code
 view_results_response_headers=Response headers:
 view_results_response_message=Response message: 
 view_results_response_too_large_message=Response too large to be displayed. 
Size: 
+view_results_response_partial_message=Start of message:
 view_results_sample_count=Sample Count: 
 view_results_sample_start=Sample Start: 
 view_results_search_pane=Search pane

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_es.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_es.properties?rev=1183065&r1=1183064&r2=1183065&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_es.properties
 (original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_es.properties
 Thu Oct 13 20:12:23 2011
@@ -851,6 +851,7 @@ ssl_pass_title=Contrase\u00F1a de KeySto
 ssl_port=Puerto SSL
 sslmanager=Gestor SSL
 start=Arrancar
+start_no_timers=Inicio no se detiene
 starttime=Tiempo de Arranque
 stop=Parar
 stopping_test=Parando todos los hilos. Por favor, sea paciente.
@@ -976,6 +977,7 @@ view_results_response_code=C\u00F3digo d
 view_results_response_headers=Cabeceras de respuesta\:
 view_results_response_message=Mensaje de respuesta\:
 view_results_response_too_large_message=Respuesta muy larga a ser mostrada. 
Tama\u00F1o\:
+view_results_response_partial_message=Principio del mensaje:
 view_results_sample_count=Conteo de muestra\:
 view_results_sample_start=Comienzo de muestra\:
 view_results_search_pane=Panel de b\u00FAsqueda

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1183065&r1=1183064&r2=1183065&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
 (original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
 Thu Oct 13 20:12:23 2011
@@ -785,6 +785,7 @@ ssl_pass_title=Mot de passe KeyStore
 ssl_port=Port SSL
 sslmanager=Gestionnaire SSL
 start=Lancer
+start_no_timers=Lancer sans pauses
 starttime=Date et heure de d\u00E9marrage \:
 stop=Arr\u00EAter
 stopping_test=En train d'\u00E9teindre toutes les unit\u00E9s de tests. Soyez 
patient, merci.
@@ -904,6 +905,7 @@ view_results_response_code=Code de retou
 view_results_response_headers=Ent\u00EAtes de r\u00E9ponse \:
 view_results_response_message=Message de retour \: 
 view_results_response_too_large_message=R\u00E9ponse d\u00E9passant la taille 
maximale d'affichage. Taille \: 
+view_results_response_partial_message=D\u00E9but du message:
 view_results_sample_count=Compteur \u00E9chantillon \: 
 view_results_sample_start=Date d\u00E9but \u00E9chantillon \: 
 view_results_search_pane=Volet recherche 

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pt_BR.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pt_BR.properties?rev=1183065&r1=1183064&r2=1183065&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pt_BR.properties
 (original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pt_BR.properties
 Thu Oct 13 20:12:23 2011
@@ -734,6 +734,7 @@ ssl_pass_title=Senha do Armaz\u00E9m de 
 ssl_port=Porta SSL
 sslmanager=Gerenciador SSL
 start=Iniciar
+start_no_timers=Iniciar sem pausas
 starttime=Tempo de In\u00EDcio
 stop=Interromper
 stopping_test=Interrompendo todos os usu\u00E1rios virtuais. Por favor, seja 
paciente.
@@ -840,6 +841,7 @@ view_results_response_code=C\u00F3digo d
 view_results_response_headers=Cabe\u00E7alhos da Resposta\:
 view_results_response_message=Mensagem de resposta\:
 view_results_response_too_large_message=Resposta muito grande para ser 
exibida. Tamanho\:
+view_results_response_partial_message=In\u00EDcio da mensagem:
 view_results_sample_count=Contagem de amostras\:
 view_results_sample_start=In\u00EDcio da Amostra\:
 view_results_size_in_bytes=Tamanho em bytes\:

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1183065&r1=1183064&r2=1183065&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Thu Oct 13 20:12:23 2011
@@ -167,6 +167,7 @@ Mirror server now uses default port 8081
 <li>Bug 51892 - Default mirror port should be different from default proxy 
port</li>
 <li>Bug 51817 - Moving variables up and down in User Defined Variables 
control</li>
 <li>Bug 51876 - Functionnality to search in Samplers TreeView</li>
+<li>Bug 52019 - Add menu option to Start a test ignoring Pause Timers</li>
 </ul>
 
 <h2>Non-functional changes</h2>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to