You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@jmeter.apache.org by bu...@apache.org on 2015/05/10 21:08:38 UTC
[Bug 57913] New: Keep backups of last saved JMX files
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
Bug ID: 57913
Summary: Keep backups of last saved JMX files
Product: JMeter
Version: 2.12
Hardware: PC
Status: NEW
Severity: enhancement
Priority: P2
Component: Main
Assignee: issues@jmeter.apache.org
Reporter: benoit.vatan@gmail.com
Created attachment 32725
--> https://bz.apache.org/bugzilla/attachment.cgi?id=32725&action=edit
Patch for backing JMX file when saving
After an OOME occured while saving my test plan, a significant part of it was
lost and made the whole work unusable without "handworking" the XML. Given that
no recent copy of my work was available to me anymore, I was really angry and
in bad situatio, lesson learnt : don't ever forget backing up your work.
I thus have brought some enhancement to the JMX save process so that it keeps a
copy istory of the last saved JMX.
What's more I am aware that this did happened to someone else so I come to the
conclusion that sharing it might be usefull to someone else.
The attached patch adds logic to the JMX save process so that the last saved
JMX file is copied with a timestamp suffix.
user.properties contains properties to control backup history :
# Enable backup history, defaults to true
# Set to false to return to the default behaviour
#jmeter.gui.action.save.backup_when_saving=true
# Set the max number of hours that existing backups are kept
# older backups are delete when a save operation occurs
# Default is keep backup for ever
#jmeter.gui.action.save.keep_backup_max_hours=0
# Set maximum number of backup to be kept
# Default is 10, so while we set no max_hours we only keep at most 10 backups
#jmeter.gui.action.save.keep_backup_max_count=10
Backup files are created in a subdirectory of the main JMX file and is named
from the JMX name suffixed with ".backups"
Example:
We are saving to an existing jmeter.jmx file in some /path/to directory , we'll
then have :
/path/to/jmeter.jmx
/path/to/jmeter.jmx.backups
where /path/to/jmeterx.jmx.backups will contains the backups history :
jmeter.jmx.20150502-180909
jmeter.jmx.20150502-180911
jmeter.jmx.20150502-180915
jmeter.jmx.20150502-180916
jmeter.jmx.20150502-180917
jmeter.jmx.20150502-180919
jmeter.jmx.20150502-180920
jmeter.jmx.20150502-180921
jmeter.jmx.20150502-180922
jmeter.jmx.20150502-180923
This would prevent anyone to lose work anymore...
Regards.
Benoit
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
--- Comment #8 from Philippe Mouawad <p....@ubik-ingenierie.com> ---
Date: Fri Jun 5 20:15:35 2015
New Revision: 1683855
URL: http://svn.apache.org/r1683855
Log:
Bug 57913 - Automated backups of last saved JMX files
Add related properties to jmeter.properties
Bugzilla Id: 57913
Modified:
jmeter/trunk/bin/jmeter.properties
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
--- Comment #3 from Benoit Vatan <be...@gmail.com> ---
Creating a backup subdirectory after the JMX file does not smell good to me
either. At first backups were stored directly in the same directory as the JMX
file, but this quickly mess the directory up, hence the .backup subdir.
Wouldn't it be better to have some default backup directory, say in
JMETER_HOME/backups or something ? This could be controlled by some
jmeter.property with a default destination that could be user overridden in
user.property ? This would then leave the JMX save directory as clean as
possible.
I will update the code and provide a patch after your above comments.
Thanks for your feedback.
Benoit.
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
--- Comment #4 from Benoit Vatan <be...@gmail.com> ---
Created attachment 32730
--> https://bz.apache.org/bugzilla/attachment.cgi?id=32730&action=edit
auto-save patch update after first comments (v2)
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
--- Comment #1 from Felix Schumacher <fe...@internetallee.de> ---
I think the general idea is great. Nobody likes it, when their work vanishes
while saving. Even when it saves correctly, one might have done something
stupid and would like to have it back.
I wonder, if it would be nicer to enumerate the backup files and keep the .jmx
suffix. The time and date of the save operation, will most probably be
available by looking at the file stats. And I don't know if I like the idea of
a directory called after the file name.
Apart from that, a few nitpicks:
* instead of backup_when_saving I would have chosen backup_on_save or
backup_before_save
* One comment is "... everything when right..." where it probably should be
"... everything went right ..."
* deleteMe variable could be renamed to expiredBackupFile or something alike
* in javadoc shorten the code tag in line 249ff to enclose only code fragments,
that way true and false could be tagged as code as well
* The variable emptyList in line 265 could probably be inlined in line 270
* line 297 "expiry date" or your "cutoff date" instead of "oldest date"?
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
--- Comment #2 from Philippe Mouawad <p....@ubik-ingenierie.com> ---
Hi,
Thanks for great contribution. As Felix I think it is very useful feature that
I have seen requested many times.
Few notes:
1/I think properties should be in jmeter.properties:
2/ Local variables that are initialized from JMeterUtils.getPropDefault should
be static final constants
Regards
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
--- Comment #7 from Philippe Mouawad <p....@ubik-ingenierie.com> ---
Thanks a lot for your contribution.
Regards
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
Philippe Mouawad <p....@ubik-ingenierie.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #6 from Philippe Mouawad <p....@ubik-ingenierie.com> ---
Date: Tue May 12 21:03:51 2015
New Revision: 1679098
URL: http://svn.apache.org/r1679098
Log:
Bug 57913 - Automated backups of last saved JMX files
Bugzilla Id: 57913
Modified:
jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java
jmeter/trunk/xdocs/changes.xml
jmeter/trunk/xdocs/usermanual/hints_and_tips.xml
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
Milamber <mi...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|FIXED |---
Status|RESOLVED |REOPENED
--- Comment #9 from Milamber <mi...@apache.org> ---
If you save a new file (the first time), you have a error in jmeter.log:
2015/06/07 09:24:09 INFO - jmeter.services.FileServer: Default
base='/home/milamber/W-workspaces/Workspaces-JMeter/Jmeter/bin'
2015/06/07 09:24:09 INFO - jmeter.services.FileServer: Set new
base='/home/milamber/W-workspaces/Workspaces-JMeter/Jmeter/bin'
2015/06/07 09:24:09 ERROR - jmeter.gui.action.Save: Failed to backup file
:/home/milamber/W-workspaces/Workspaces-JMeter/Jmeter/bin/Thread Group.jmx
java.io.FileNotFoundException: Source
'/home/milamber/W-workspaces/Workspaces-JMeter/Jmeter/bin/Thread Group.jmx'
does not exist
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1074)
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1038)
at org.apache.jmeter.gui.action.Save.createBackupFile(Save.java:379)
at org.apache.jmeter.gui.action.Save.doAction(Save.java:213)
at
org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:81)
at org.apache.jmeter.gui.action.ActionRouter.access$0(ActionRouter.java:69)
at org.apache.jmeter.gui.action.ActionRouter$1.run(ActionRouter.java:63)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
I think a test condition must be adding before create the backup file (don't
copy if that is the first save)
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
Felix Schumacher <fe...@internetallee.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|REOPENED |RESOLVED
--- Comment #10 from Felix Schumacher <fe...@internetallee.de> ---
Date: Sun Jun 7 12:42:42 2015
New Revision: 1684029
URL: http://svn.apache.org/r1684029
Log:
Bug 57913 - Automated backups of last saved JMX files
Only backup file, if it exists (otherwise we get an exception on first save of
a file).
Bugzilla Id: 57913
Modified:
jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
Philippe Mouawad <p....@ubik-ingenierie.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |p.mouawad@ubik-ingenierie.c
| |om
Summary|Keep backups of last saved |Automated backups of last
|JMX files |saved JMX files
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Keep backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
Benoit Vatan <be...@gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
OS| |All
Version|2.12 |2.13
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 57913] Automated backups of last saved JMX files
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=57913
--- Comment #5 from Benoit Vatan <be...@gmail.com> ---
Here it is,
I think I have updated the patch to take all your remarks into account.
Backup files are now stored by default in ${JMETER_HOME}/backups unless
jmeter.gui.action.save.backup_directory is set to a different location.
jmeter.gui.action.save.backup_on_save has been renamed according to Felix's
advice.
Backup file names are now timestamp free, replaced by a version number
auto-incremented from the highest version found in the already existing backup
files.
Backup extensions is now .jmx instead of a timestamp.
I have rework the code to make it simpler and make use of commons-io filters.
Reworked the javado, mistyped comments and renamed variable names as well
according to your recommandations.
Properties have been moved to system.properties with the default values.
I have updated hints_and_tips documentation but I'm not sure of the format so
it might have to be checked.
Regards.
--
You are receiving this mail because:
You are the assignee for the bug.