You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2017/11/08 20:23:55 UTC
svn commit: r1814635 - in /jmeter/trunk: src/core/org/apache/jmeter/gui/
src/core/org/apache/jmeter/gui/action/
src/core/org/apache/jmeter/resources/ xdocs/
Author: pmouawad
Date: Wed Nov 8 20:23:55 2017
New Revision: 1814635
URL: http://svn.apache.org/viewvc?rev=1814635&view=rev
Log:
Bug 61731 - Enhance Test plan Backup with option to save before run
Bugzilla Id: 61731
Added:
jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveBeforeRun.java (with props)
Modified:
jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java
jmeter/trunk/src/core/org/apache/jmeter/gui/action/AbstractAction.java
jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
jmeter/trunk/xdocs/changes.xml
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java?rev=1814635&r1=1814634&r2=1814635&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java Wed Nov 8 20:23:55 2017
@@ -27,6 +27,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.prefs.Preferences;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JOptionPane;
@@ -72,6 +73,14 @@ public final class GuiPackage implements
/** Logging. */
private static final Logger log = LoggerFactory.getLogger(GuiPackage.class);
+ private static final String SBR_PREFS_KEY = "save_before_run";
+
+ private static final String SAVE_BEFORE_RUN_PROPERTY = "save_automatically_before_run"; // $NON-NLS-1$
+
+ private static final boolean SAVE_BEFORE_RUN_PROPERTY_DEFAULT_VALUE = true;
+
+ private static final Preferences PREFS = Preferences.userNodeForPackage(GuiPackage.class);
+
/** Singleton instance. */
private static GuiPackage guiPack;
@@ -115,13 +124,18 @@ public final class GuiPackage implements
/** The main JMeter toolbar. */
private JToolBar toolbar;
-
+
/**
* The LoggerPanel menu item
*/
private JCheckBoxMenuItem menuItemLoggerPanel;
/**
+ * The LoggerPanel menu item
+ */
+ private JCheckBoxMenuItem menuItemSaveBeforeRunPanel;
+
+ /**
* Logger Panel reference
*/
private LoggerPanel loggerPanel;
@@ -783,16 +797,35 @@ public final class GuiPackage implements
* @param menuItemLoggerPanel The menu item LoggerPanel
*/
public void setMenuItemLoggerPanel(JCheckBoxMenuItem menuItemLoggerPanel) {
- this.menuItemLoggerPanel = menuItemLoggerPanel;
+ this.menuItemLoggerPanel = menuItemLoggerPanel;
}
-
+
/**
* Get the menu item LoggerPanel.
*
* @return the menu item LoggerPanel
*/
public JCheckBoxMenuItem getMenuItemLoggerPanel() {
- return menuItemLoggerPanel;
+ return menuItemLoggerPanel;
+ }
+
+ /**
+ * Set the menu item SaveBeforeRunPanel.
+ *
+ * @param menuItemSaveBeforeRunPanel
+ * The menu item SaveBeforeRunPanel
+ */
+ public void setMenuItemSaveBeforeRunPanel(JCheckBoxMenuItem menuItemSaveBeforeRunPanel) {
+ this.menuItemSaveBeforeRunPanel = menuItemSaveBeforeRunPanel;
+ }
+
+ /**
+ * Get the menu item SaveBeforeRunPanel.
+ *
+ * @return the menu item SaveBeforeRunPanel
+ */
+ public JCheckBoxMenuItem getMenuItemSaveBeforeRunPanel() {
+ return menuItemSaveBeforeRunPanel;
}
/**
@@ -920,4 +953,37 @@ public final class GuiPackage implements
public void endUndoTransaction() {
undoHistory.endUndoTransaction();
}
+
+
+ /**
+ * Should Save Before Run by Preference Only
+ * @return boolean
+ */
+ public boolean shouldSaveBeforeRunByPreference() {
+ return Boolean.TRUE.toString().
+ equalsIgnoreCase(PREFS.get(SBR_PREFS_KEY, null));
+ }
+
+ /**
+ * Should Save Before Run by Preference Only
+ * @param saveBeforeRun boolean
+ */
+ public void setSaveBeforeRunByPreference(boolean saveBeforeRun) {
+ PREFS.put(SBR_PREFS_KEY, Boolean.toString(saveBeforeRun)); // $NON-NLS-1$ // $NON-NLS-2$
+ }
+
+ /**
+ * Should Save Before Run
+ * Decide by Preference and if not exists by Property
+ */
+ public boolean shouldSaveBeforeRun() {
+ String sbr = PREFS.get(SBR_PREFS_KEY, null);
+ if (sbr == null) {
+ // use property if no preference
+ return JMeterUtils.getPropDefault(SAVE_BEFORE_RUN_PROPERTY,
+ SAVE_BEFORE_RUN_PROPERTY_DEFAULT_VALUE);
+ } else {
+ return shouldSaveBeforeRunByPreference();
+ }
+ }
}
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/AbstractAction.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/AbstractAction.java?rev=1814635&r1=1814634&r2=1814635&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/action/AbstractAction.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/AbstractAction.java Wed Nov 8 20:23:55 2017
@@ -22,7 +22,6 @@ import java.awt.event.ActionEvent;
import java.io.File;
import java.text.MessageFormat;
import java.util.Iterator;
-import java.util.Set;
import javax.swing.JOptionPane;
@@ -43,7 +42,7 @@ public abstract class AbstractAction imp
DELETE,
ASK
}
-
+
private static final ActionOnFile actionOnFile =
ActionOnFile.valueOf(
JMeterUtils.getPropDefault(
@@ -58,18 +57,22 @@ public abstract class AbstractAction imp
}
/**
- * @param e the event that led to the call of this method
+ * Check if we should save before run
+ *
+ * @param e
+ * the event that led to the call of this method
*/
protected void popupShouldSave(ActionEvent e) {
log.debug("popupShouldSave");
if (GuiPackage.getInstance().getTestPlanFile() == null) {
if (JOptionPane.showConfirmDialog(GuiPackage.getInstance().getMainFrame(),
- JMeterUtils.getResString("should_save"), //$NON-NLS-1$
- JMeterUtils.getResString("warning"), //$NON-NLS-1$
- JOptionPane.YES_NO_OPTION,
- JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) {
- ActionRouter.getInstance().doActionNow(new ActionEvent(e.getSource(), e.getID(),ActionNames.SAVE));
+ JMeterUtils.getResString("should_save"), //$NON-NLS-1$
+ JMeterUtils.getResString("warning"), //$NON-NLS-1$
+ JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) {
+ ActionRouter.getInstance().doActionNow(new ActionEvent(e.getSource(), e.getID(), ActionNames.SAVE));
}
+ } else if (GuiPackage.getInstance().shouldSaveBeforeRun()) {
+ ActionRouter.getInstance().doActionNow(new ActionEvent(e.getSource(), e.getID(), ActionNames.SAVE));
}
}
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java?rev=1814635&r1=1814634&r2=1814635&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java Wed Nov 8 20:23:55 2017
@@ -104,6 +104,7 @@ public final class ActionNames {
public static final String EXPAND = "expand"; // $NON-NLS-1$
public static final String RUN_TG = "run_tg"; // $NON-NLS-1$
public static final String RUN_TG_NO_TIMERS = "run_tg_no_timers"; // $NON-NLS-1$
+ public static final String SAVE_BEFORE_RUN = "save_before_run"; //$NON-NLS-1$
public static final String THREAD_DUMP = "thread_dump"; // $NON-NLS-1$
public static final String VALIDATE_TG = "validate_tg"; //$NON-NLS-1$
public static final String ZOOM_IN = "zoom_in"; //$NON-NLS-1$
Added: jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveBeforeRun.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveBeforeRun.java?rev=1814635&view=auto
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveBeforeRun.java (added)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveBeforeRun.java Wed Nov 8 20:23:55 2017
@@ -0,0 +1,55 @@
+/*
+ * 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.gui.action;
+
+import java.awt.event.ActionEvent;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.jmeter.gui.GuiPackage;
+/**
+ * Save Before Run Action
+ * To save test plan before GUI execution
+ *
+ * @since 4.0
+ */
+public class SaveBeforeRun extends AbstractAction {
+ private static final Set<String> commands = new HashSet<>();
+
+ static {
+ commands.add(ActionNames.SAVE_BEFORE_RUN);
+ }
+
+ @Override
+ public Set<String> getActionNames() {
+ return commands;
+ }
+
+ @Override
+ public void doAction(ActionEvent e) {
+ if (ActionNames.SAVE_BEFORE_RUN.equals(e.getActionCommand())) {
+ // toggle boolean preference value
+ GuiPackage guiInstance = GuiPackage.getInstance();
+ boolean togglePreferenceValue = !guiInstance.shouldSaveBeforeRunByPreference();
+ guiInstance.setSaveBeforeRunByPreference(togglePreferenceValue);
+ // toggle check box
+ guiInstance.getMenuItemSaveBeforeRunPanel().getModel().setSelected(togglePreferenceValue);
+ }
+ }
+}
Propchange: jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveBeforeRun.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveBeforeRun.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1814635&r1=1814634&r2=1814635&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Wed Nov 8 20:23:55 2017
@@ -689,6 +689,7 @@ menu_post_processors=Post Processors
menu_pre_processors=Pre Processors
menu_recent=Open Recent
menu_response_based_modifiers=Response Based Modifiers
+menu_save_before_run=Save automatically before run
menu_search=Search
menu_search_reset=Reset Search
menu_tables=Table
Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1814635&r1=1814634&r2=1814635&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties Wed Nov 8 20:23:55 2017
@@ -679,6 +679,7 @@ menu_post_processors=Post-Processeurs
menu_pre_processors=Pr\u00E9-Processeurs
menu_recent=Ouvrir R\u00E9cents
menu_response_based_modifiers=Modificateurs bas\u00E9s sur la r\u00E9ponse
+menu_save_before_run=Enregistrer automatiquement avant l'ex\u00e9cution
menu_search=Rechercher
menu_search_reset=Effacer la recherche
menu_tables=Table
Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1814635&r1=1814634&r2=1814635&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Wed Nov 8 20:23:55 2017
@@ -149,7 +149,7 @@ Summary
<li><bug>61694</bug>Add -server option in jmeter.bat</li>
<li><bug>61697</bug>Introduce Darcula Look And Feel to make JMeter UI more attractive</li>
<li><bug>61704</bug>Toolbar : Improve a bit the right part</li>
- <li><pr>319</pr> Removed commented out code. Contributed by Graham Russell (graham at ham1.co.uk)</li>
+ <li><bug>61731</bug>Enhance Test plan Backup with option to save before run. Based on a contribution by orimarko at gmail.com</li>
</ul>
<ch_section>Non-functional changes</ch_section>
@@ -160,6 +160,7 @@ Summary
<li><bug>61641</bug>Improve JMS test coverage</li>
<li><bug>61651</bug>Improve TCP test coverage</li>
<li><bug>61651</bug>Improve OS test coverage. Partly contributed by Aleksei Balan (abalanonline at gmail.com)</li>
+ <li><pr>319</pr> Removed commented out code. Contributed by Graham Russell (graham at ham1.co.uk)</li>
</ul>
<!-- =================== Bug fixes =================== -->