Author: sebb
Date: Thu May  8 09:13:16 2008
New Revision: 654572

URL: http://svn.apache.org/viewvc?rev=654572&view=rev
Log:
Allow use of special name LAST to mean the last test run; applies to -t, -l, -j 
flags

Modified:
    jakarta/jmeter/trunk/bin/jmeter-n-r.cmd
    jakarta/jmeter/trunk/bin/jmeter-n.cmd
    jakarta/jmeter/trunk/bin/jmeter-t.cmd
    jakarta/jmeter/trunk/docs/changes.html
    jakarta/jmeter/trunk/docs/usermanual/get-started.html
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/usermanual/get-started.xml

Modified: jakarta/jmeter/trunk/bin/jmeter-n-r.cmd
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter-n-r.cmd?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter-n-r.cmd (original)
+++ jakarta/jmeter/trunk/bin/jmeter-n-r.cmd Thu May  8 09:13:16 2008
@@ -36,6 +36,10 @@
 
 rem Check file is supplied
 if a == a%1 goto winNT2
+
+rem Allow special name LAST
+if aLAST == a%1 goto winNT3
+
 rem Check it has extension .jmx
 if a%~x1 == a.jmx goto winNT3
 :winNT2

Modified: jakarta/jmeter/trunk/bin/jmeter-n.cmd
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter-n.cmd?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter-n.cmd (original)
+++ jakarta/jmeter/trunk/bin/jmeter-n.cmd Thu May  8 09:13:16 2008
@@ -36,6 +36,10 @@
 
 rem Check file is supplied
 if a == a%1 goto winNT2
+
+rem Allow special name LAST
+if aLAST == a%1 goto winNT3
+
 rem Check it has extension .jmx
 if a%~x1 == a.jmx goto winNT3
 :winNT2

Modified: jakarta/jmeter/trunk/bin/jmeter-t.cmd
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter-t.cmd?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter-t.cmd (original)
+++ jakarta/jmeter/trunk/bin/jmeter-t.cmd Thu May  8 09:13:16 2008
@@ -34,6 +34,10 @@
 
 rem Check file is supplied
 if a == a%1 goto winNT2
+
+rem Allow special name LAST
+if aLAST == a%1 goto winNT3
+
 rem Check it has extension .jmx
 if a%~x1 == a.jmx goto winNT3
 :winNT2

Modified: jakarta/jmeter/trunk/docs/changes.html
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/changes.html?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/changes.html (original)
+++ jakarta/jmeter/trunk/docs/changes.html Thu May  8 09:13:16 2008
@@ -652,6 +652,11 @@
                                                </li>
                                                                        
 
+                                                                               
                <li     >
+                                                               Allow use of 
special name LAST to mean the last test run; applies to -t, -l, -j flags
+                                               </li>
+                                                                       
+
                                                </ul>
                                                                                
                                                                                
<h4     >
                                                                Non-functional 
changes
@@ -920,7 +925,6 @@
                                                                Aggregate Graph 
and Aggregate Report Column Header is KB/Sec; fixed the values to be KB rather 
than bytes
                                                </li>
                                                                        
-
 
                                                                                
                <li     >
                                                                
@@ -2511,6 +2515,7 @@
                                                </h4>
                                                                                
                                                                                
<ul     >
                                                                
+
 
                                                                                
                <li     >
                                                                Post-processors 
run in reverse order (see bug 41140)

Modified: jakarta/jmeter/trunk/docs/usermanual/get-started.html
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/usermanual/get-started.html?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/docs/usermanual/get-started.html (original)
+++ jakarta/jmeter/trunk/docs/usermanual/get-started.html Thu May  8 09:13:16 
2008
@@ -724,6 +724,8 @@
 
                                                </ul>
                                                                        
+Note: the special name LAST can be used with jmeter-n.cmd, jmeter-t.cmd and 
jmeter-n-r.cmd
+and means the last test plan that was run interactively.
 
                                                </p>
                                                                                
                                                                                
<p      >
@@ -1205,6 +1207,12 @@
 if it contains paired single-quotes,  .e.g. 'jmeter_'yyyyMMddHHmmss'.log'
 
                                                </p>
+                                                                               
                                                                                
<p      >
+                                                               
+If the special name LAST is used for the -t, -j or -l flags, then JMeter takes 
that to mean the last test plan
+that was run in interactive mode.
+
+                                               </p>
                                                                          
</blockquote>
                </td></tr>
                <tr><td><br></td></tr>

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java Thu May  8 
09:13:16 2008
@@ -52,6 +52,7 @@
 import org.apache.jmeter.gui.action.ActionNames;
 import org.apache.jmeter.gui.action.ActionRouter;
 import org.apache.jmeter.gui.action.Load;
+import org.apache.jmeter.gui.action.LoadRecentProject;
 import org.apache.jmeter.gui.tree.JMeterTreeListener;
 import org.apache.jmeter.gui.tree.JMeterTreeModel;
 import org.apache.jmeter.gui.tree.JMeterTreeNode;
@@ -90,6 +91,11 @@
     public static final String HTTP_PROXY_USER = "http.proxyUser"; // 
$NON-NLS-1$
 
 
+    // If the -t flag is to "LAST", then the last loaded file (if any) is used
+    private static final String USE_LAST_JMX = "LAST";
+    // If the -j  or -l flag is set to LAST or LAST.log|LAST.jtl, then the 
last loaded file name is used to
+    // generate the log file name by removing .JMX and replacing it with 
.log|.jtl
+
     private static final int PROXY_PASSWORD     = 'a';// $NON-NLS-1$
     private static final int JMETER_HOME_OPT    = 'd';// $NON-NLS-1$
     private static final int HELP_OPT           = 'h';// $NON-NLS-1$
@@ -204,7 +210,7 @@
        /**
         * Starts up JMeter in GUI mode
         */
-       private void startGui(CLOption testFile) {
+       private void startGui(String testFile) {
 
                PluginManager.install(this, true);
                JMeterTreeModel treeModel = new JMeterTreeModel();
@@ -216,11 +222,10 @@
                ComponentUtil.centerComponentInWindow(main, 80);
                main.show();
                ActionRouter.getInstance().actionPerformed(new 
ActionEvent(main, 1, ActionNames.ADD_ALL));
-        String arg; 
-               if (testFile != null && (arg = testFile.getArgument()) != null) 
{
+               if (testFile != null) {
             FileInputStream reader = null;
                        try {
-                File f = new File(arg);
+                File f = new File(testFile);
                                log.info("Loading file: " + f);
                                reader = new FileInputStream(f);
                                HashTree tree = SaveService.loadTree(reader);
@@ -332,17 +337,30 @@
                 // Start the server
                                
startServer(JMeterUtils.getPropDefault("server_port", 0));// $NON-NLS-1$
                                startOptionalServers();
-                       } else if (parser.getArgumentById(NONGUI_OPT) == null) {
-                               startGui(parser.getArgumentById(TESTFILE_OPT));
-                               startOptionalServers();
                        } else {
-                               CLOption 
rem=parser.getArgumentById(REMOTE_OPT_PARAM);
-                               if (rem==null) { 
rem=parser.getArgumentById(REMOTE_OPT); }
-                               
startNonGui(parser.getArgumentById(TESTFILE_OPT), 
-                                               
parser.getArgumentById(LOGFILE_OPT), 
-                                               rem);
-                               startOptionalServers();
-                       }
+                   String testFile=null;
+                   CLOption testFileOpt = parser.getArgumentById(TESTFILE_OPT);
+                   if (testFileOpt != null){
+                       testFile = testFileOpt.getArgument();
+                       if (USE_LAST_JMX.equals(testFile)) {
+                           testFile = LoadRecentProject.getRecentFile(0);// 
most recent
+                       }
+                   }
+                if (parser.getArgumentById(NONGUI_OPT) == null) {
+                       startGui(testFile);
+                       startOptionalServers();
+                } else {
+                       CLOption rem=parser.getArgumentById(REMOTE_OPT_PARAM);
+                       if (rem==null) { 
rem=parser.getArgumentById(REMOTE_OPT); }
+                       CLOption jtl = parser.getArgumentById(LOGFILE_OPT);
+                       String jtlFile = null;
+                       if (jtl != null){
+                           jtlFile=processLAST(jtl.getArgument(), ".jtl"); // 
$NON-NLS-1$
+                       }
+                       startNonGui(testFile, jtlFile, rem);
+                       startOptionalServers();
+                }
+            }
                } catch (IllegalUserActionException e) {
                        System.out.println(e.getMessage());
                        System.out.println("Incorrect Usage");
@@ -476,11 +494,12 @@
                                        + "jmeter.properties");// $NON-NLS-1$
                }
 
-               if (parser.getArgumentById(JMLOGFILE_OPT) != null){
-                       String 
jmlogfile=parser.getArgumentById(JMLOGFILE_OPT).getArgument();
-                       
JMeterUtils.setProperty(LoggingManager.LOG_FILE,jmlogfile);
-               }
-               
+        if (parser.getArgumentById(JMLOGFILE_OPT) != null){
+            String 
jmlogfile=parser.getArgumentById(JMLOGFILE_OPT).getArgument();
+            jmlogfile = processLAST(jmlogfile, ".log");// $NON-NLS-1$
+            JMeterUtils.setProperty(LoggingManager.LOG_FILE,jmlogfile);
+        }
+        
                JMeterUtils.initLogging();
                JMeterUtils.initLocale();
                // Bug 33845 - allow direct override of Home dir
@@ -602,7 +621,6 @@
                                        File propFile = new File(name);
                                        if (propFile.canRead()) {
                                                log.info("Setting Global 
properties from the file "+name);
-                                               fis = null;
                                                try {
                                                        fis = new 
FileInputStream(propFile);
                                                    remoteProps.load(fis);
@@ -633,6 +651,21 @@
        
        }
 
+       /*
+        * Checks for LAST or LASTsuffix.
+        * Returns the LAST name with .JMX replaced by suffix.
+        */
+    private String processLAST(String jmlogfile, String suffix) {
+        if (USE_LAST_JMX.equals(jmlogfile) || 
USE_LAST_JMX.concat(suffix).equals(jmlogfile)){
+            String last = LoadRecentProject.getRecentFile(0);// most recent
+            final String JMX_SUFFIX = ".JMX"; // $NON-NLS-1$
+            if (last.toUpperCase(Locale.ENGLISH).endsWith(JMX_SUFFIX)){
+                jmlogfile=last.substring(0, last.length() - 
JMX_SUFFIX.length()).concat(suffix);
+            }
+        }
+        return jmlogfile;
+    }
+
        private void startServer(int port) {
                try {
                        new RemoteJMeterEngineImpl(port);
@@ -643,7 +676,7 @@
                }
        }
 
-       private void startNonGui(CLOption testFile, CLOption logFile, CLOption 
remoteStart)
+       private void startNonGui(String testFile, String logFile, CLOption 
remoteStart)
                        throws IllegalUserActionException {
                // add a system property so samplers can check to see if JMeter
                // is running in NonGui mode
@@ -666,14 +699,10 @@
                if (testFile == null) {
                        throw new IllegalUserActionException("Non-GUI runs 
require a test plan");
                }
-               String argument = testFile.getArgument();
-        if (argument == null) {
-            throw new IllegalUserActionException("Non-GUI runs require a test 
plan");
-        }
         if (logFile == null) {
-                       driver.run(argument, null, remoteStart != 
null,remote_hosts_string);
+                       driver.run(testFile, null, remoteStart != 
null,remote_hosts_string);
                } else {
-                       driver.run(argument, logFile.getArgument(), remoteStart 
!= null,remote_hosts_string);
+                       driver.run(testFile, logFile, remoteStart != 
null,remote_hosts_string);
                }
        }
 
@@ -724,7 +753,7 @@
                        }
                        List engines = new LinkedList();
                        tree.add(tree.getArray()[0], new ListenToTest(parent, 
(remoteStart && remoteStop) ? engines : null));
-                       println("Created the tree successfully");
+                       println("Created the tree successfully using 
"+testFile);
                        JMeterEngine engine = null;
                        if (!remoteStart) {
                                engine = new StandardJMeterEngine();

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Thu May  8 09:13:16 2008
@@ -193,6 +193,7 @@
 <li>Bug 44872 - Add "All Files" filter to Open File dialogs</li>
 <li>Mirror server can now be run independently (mirror-server.cmd and 
mirror-server.sh)</li>
 <li>Bug 19128 - Added multiple file POST support to HTTP Samplers</li>
+<li>Allow use of special name LAST to mean the last test run; applies to -t, 
-l, -j flags</li>
 </ul>
 
 <h4>Non-functional changes</h4>

Modified: jakarta/jmeter/trunk/xdocs/usermanual/get-started.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/get-started.xml?rev=654572&r1=654571&r2=654572&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/get-started.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/get-started.xml Thu May  8 09:13:16 
2008
@@ -206,6 +206,8 @@
 <li>jmeter-t.cmd - drop a JMX file on this to load it in GUI mode</li>
 <li>jmeter-server.bat - start JMeter in server mode</li>
 </ul>
+Note: the special name LAST can be used with jmeter-n.cmd, jmeter-t.cmd and 
jmeter-n-r.cmd
+and means the last test plan that was run interactively.
 </p>
 
 <p>
@@ -411,6 +413,10 @@
 Note: the JMeter log file name is formatted as a SimpleDateFormat (applied to 
the current date) 
 if it contains paired single-quotes,  .e.g. 'jmeter_'yyyyMMddHHmmss'.log'
 </p>
+<p>
+If the special name LAST is used for the -t, -j or -l flags, then JMeter takes 
that to mean the last test plan
+that was run in interactive mode.
+</p>
 </subsection>
 </section>
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to